diff options
author | Vladimir Oltean <olteanv@gmail.com> | 2019-06-03 00:11:57 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-06-04 11:49:19 -0700 |
commit | 9dfa69118f12d6c67d34f90bfd9a825a908d5f60 (patch) | |
tree | fd8b94b488e50ab0e777c21ad59db21a4092160a /drivers/net/dsa/sja1105/sja1105_spi.c | |
parent | net: dsa: sja1105: Plug in support for TCAM searches via the dynamic interface (diff) | |
download | linux-dev-9dfa69118f12d6c67d34f90bfd9a825a908d5f60.tar.xz linux-dev-9dfa69118f12d6c67d34f90bfd9a825a908d5f60.zip |
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>
Diffstat (limited to 'drivers/net/dsa/sja1105/sja1105_spi.c')
-rw-r--r-- | drivers/net/dsa/sja1105/sja1105_spi.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/net/dsa/sja1105/sja1105_spi.c b/drivers/net/dsa/sja1105/sja1105_spi.c index 2eb70b8acfc3..b1344ed1697f 100644 --- a/drivers/net/dsa/sja1105/sja1105_spi.c +++ b/drivers/net/dsa/sja1105/sja1105_spi.c @@ -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", }; |