net: dsa: sja1105: Make room for P/Q/R/S FDB operations
The DSA callbacks were written with the E/T (first generation) in mind, which is quite different. For P/Q/R/S completely new implementations need to be provided, which are held as function pointers in the priv->info structure. We are taking a slightly roundabout way for this (a function from sja1105_main.c reads a structure defined in sja1105_spi.c that points to a function defined in sja1105_main.c), but it is what it is. The FDB dump callback works for both families, hence no function pointer for that. Signed-off-by: Vladimir Oltean <olteanv@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
90c96cca35
commit
9dfa69118f
@@ -541,6 +541,8 @@ struct sja1105_info sja1105e_info = {
|
||||
.static_ops = sja1105e_table_ops,
|
||||
.dyn_ops = sja1105et_dyn_ops,
|
||||
.reset_cmd = sja1105et_reset_cmd,
|
||||
.fdb_add_cmd = sja1105et_fdb_add,
|
||||
.fdb_del_cmd = sja1105et_fdb_del,
|
||||
.regs = &sja1105et_regs,
|
||||
.name = "SJA1105E",
|
||||
};
|
||||
@@ -550,6 +552,8 @@ struct sja1105_info sja1105t_info = {
|
||||
.static_ops = sja1105t_table_ops,
|
||||
.dyn_ops = sja1105et_dyn_ops,
|
||||
.reset_cmd = sja1105et_reset_cmd,
|
||||
.fdb_add_cmd = sja1105et_fdb_add,
|
||||
.fdb_del_cmd = sja1105et_fdb_del,
|
||||
.regs = &sja1105et_regs,
|
||||
.name = "SJA1105T",
|
||||
};
|
||||
@@ -559,6 +563,8 @@ struct sja1105_info sja1105p_info = {
|
||||
.static_ops = sja1105p_table_ops,
|
||||
.dyn_ops = sja1105pqrs_dyn_ops,
|
||||
.reset_cmd = sja1105pqrs_reset_cmd,
|
||||
.fdb_add_cmd = sja1105pqrs_fdb_add,
|
||||
.fdb_del_cmd = sja1105pqrs_fdb_del,
|
||||
.regs = &sja1105pqrs_regs,
|
||||
.name = "SJA1105P",
|
||||
};
|
||||
@@ -568,6 +574,8 @@ struct sja1105_info sja1105q_info = {
|
||||
.static_ops = sja1105q_table_ops,
|
||||
.dyn_ops = sja1105pqrs_dyn_ops,
|
||||
.reset_cmd = sja1105pqrs_reset_cmd,
|
||||
.fdb_add_cmd = sja1105pqrs_fdb_add,
|
||||
.fdb_del_cmd = sja1105pqrs_fdb_del,
|
||||
.regs = &sja1105pqrs_regs,
|
||||
.name = "SJA1105Q",
|
||||
};
|
||||
@@ -577,6 +585,8 @@ struct sja1105_info sja1105r_info = {
|
||||
.static_ops = sja1105r_table_ops,
|
||||
.dyn_ops = sja1105pqrs_dyn_ops,
|
||||
.reset_cmd = sja1105pqrs_reset_cmd,
|
||||
.fdb_add_cmd = sja1105pqrs_fdb_add,
|
||||
.fdb_del_cmd = sja1105pqrs_fdb_del,
|
||||
.regs = &sja1105pqrs_regs,
|
||||
.name = "SJA1105R",
|
||||
};
|
||||
@@ -587,5 +597,7 @@ struct sja1105_info sja1105s_info = {
|
||||
.dyn_ops = sja1105pqrs_dyn_ops,
|
||||
.regs = &sja1105pqrs_regs,
|
||||
.reset_cmd = sja1105pqrs_reset_cmd,
|
||||
.fdb_add_cmd = sja1105pqrs_fdb_add,
|
||||
.fdb_del_cmd = sja1105pqrs_fdb_del,
|
||||
.name = "SJA1105S",
|
||||
};
|
||||
|
Reference in New Issue
Block a user