diff options
author | Andrew Lunn <andrew@lunn.ch> | 2019-04-28 19:37:15 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-04-28 19:41:01 -0400 |
commit | d3b8c04988ca1685700e345a82a1396df79e6291 (patch) | |
tree | 382a5a63a483f39027496510da8404a90878bdb9 /net/dsa/tag_brcm.c | |
parent | dsa: Add TAG protocol to tag ops (diff) | |
download | linux-dev-d3b8c04988ca1685700e345a82a1396df79e6291.tar.xz linux-dev-d3b8c04988ca1685700e345a82a1396df79e6291.zip |
dsa: Add boilerplate helper to register DSA tag driver modules
A DSA tag driver module will need to register the tag protocols it
implements with the DSA core. Add macros containing this boiler plate.
The registration/unregistration code is currently just a stub. A Later
patch will add the real implementation.
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
v2
Fix indent of #endif
Rewrite to move list pointer into a new structure
v3
Move kdoc next to macro
Fix THIS_MODULE indentation
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/dsa/tag_brcm.c')
-rw-r--r-- | net/dsa/tag_brcm.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/net/dsa/tag_brcm.c b/net/dsa/tag_brcm.c index 39b380485e5a..63c8c6645a05 100644 --- a/net/dsa/tag_brcm.c +++ b/net/dsa/tag_brcm.c @@ -175,6 +175,7 @@ const struct dsa_device_ops brcm_netdev_ops = { .overhead = BRCM_TAG_LEN, }; +DSA_TAG_DRIVER(brcm_netdev_ops); MODULE_ALIAS_DSA_TAG_DRIVER(DSA_TAG_PROTO_BRCM); #endif @@ -203,5 +204,18 @@ const struct dsa_device_ops brcm_prepend_netdev_ops = { }; #endif -MODULE_LICENSE("GPL"); +DSA_TAG_DRIVER(brcm_prepend_netdev_ops); MODULE_ALIAS_DSA_TAG_DRIVER(DSA_TAG_PROTO_BRCM_PREPEND); + +static struct dsa_tag_driver *dsa_tag_driver_array[] = { +#if IS_ENABLED(CONFIG_NET_DSA_TAG_BRCM) + &DSA_TAG_DRIVER_NAME(brcm_netdev_ops), +#endif +#if IS_ENABLED(CONFIG_NET_DSA_TAG_BRCM_PREPEND) + &DSA_TAG_DRIVER_NAME(brcm_prepend_netdev_ops), +#endif +}; + +module_dsa_tag_drivers(dsa_tag_driver_array); + +MODULE_LICENSE("GPL"); |