mirror of
https://github.com/torvalds/linux.git
synced 2024-11-29 07:31:29 +00:00
net: sparx5: add new VCAP constants to match data
In preparation for lan969x VCAP support, add the following three new VCAP constants to match data: - vcaps_cfg (contains configuration data for each VCAP). - vcaps (contains auto-generated information about VCAP keys and actions). - vcap_stats: (contains auto-generated string names of all the keys and actions) Add these constants to the Sparx5 match data constants and use them to initialize the VCAP's in sparx5_vcap_init(). Reviewed-by: Steen Hegelund <Steen.Hegelund@microchip.com> Reviewed-by: Jens Emil Schulz Østergaard <jensemil.schulzostergaard@microchip.com> Signed-off-by: Daniel Machon <daniel.machon@microchip.com> Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
parent
8f5a812eff
commit
8caa21e4e4
@ -30,6 +30,8 @@
|
||||
#include "sparx5_main.h"
|
||||
#include "sparx5_port.h"
|
||||
#include "sparx5_qos.h"
|
||||
#include "sparx5_vcap_ag_api.h"
|
||||
#include "sparx5_vcap_impl.h"
|
||||
|
||||
const struct sparx5_regs *regs;
|
||||
|
||||
@ -1063,6 +1065,9 @@ static const struct sparx5_consts sparx5_consts = {
|
||||
.qres_max_prio_idx = 630,
|
||||
.qres_max_colour_idx = 638,
|
||||
.tod_pin = 4,
|
||||
.vcaps = sparx5_vcaps,
|
||||
.vcaps_cfg = sparx5_vcap_inst_cfg,
|
||||
.vcap_stats = &sparx5_vcap_stats,
|
||||
};
|
||||
|
||||
static const struct sparx5_ops sparx5_ops = {
|
||||
|
@ -303,6 +303,9 @@ struct sparx5_consts {
|
||||
u32 qres_max_prio_idx; /* Maximum QRES prio index */
|
||||
u32 qres_max_colour_idx; /* Maximum QRES colour index */
|
||||
u32 tod_pin; /* PTP TOD pin */
|
||||
const struct sparx5_vcap_inst *vcaps_cfg;
|
||||
const struct vcap_info *vcaps;
|
||||
const struct vcap_statistics *vcap_stats;
|
||||
};
|
||||
|
||||
struct sparx5_ops {
|
||||
|
@ -10,6 +10,8 @@
|
||||
#ifndef __SPARX5_VCAP_AG_API_H__
|
||||
#define __SPARX5_VCAP_AG_API_H__
|
||||
|
||||
#include "vcap_api.h"
|
||||
|
||||
/* VCAPs */
|
||||
extern const struct vcap_info sparx5_vcaps[];
|
||||
extern const struct vcap_statistics sparx5_vcap_stats;
|
||||
|
@ -2053,14 +2053,14 @@ int sparx5_vcap_init(struct sparx5 *sparx5)
|
||||
|
||||
sparx5->vcap_ctrl = ctrl;
|
||||
/* select the sparx5 VCAP model */
|
||||
ctrl->vcaps = sparx5_vcaps;
|
||||
ctrl->stats = &sparx5_vcap_stats;
|
||||
ctrl->vcaps = consts->vcaps;
|
||||
ctrl->stats = consts->vcap_stats;
|
||||
/* Setup callbacks to allow the API to use the VCAP HW */
|
||||
ctrl->ops = &sparx5_vcap_ops;
|
||||
|
||||
INIT_LIST_HEAD(&ctrl->list);
|
||||
for (idx = 0; idx < ARRAY_SIZE(sparx5_vcap_inst_cfg); ++idx) {
|
||||
cfg = &sparx5_vcap_inst_cfg[idx];
|
||||
cfg = &consts->vcaps_cfg[idx];
|
||||
admin = sparx5_vcap_admin_alloc(sparx5, ctrl, cfg);
|
||||
if (IS_ERR(admin)) {
|
||||
err = PTR_ERR(admin);
|
||||
|
Loading…
Reference in New Issue
Block a user