Message ID | 20190115230613.28334-2-f.fainelli@gmail.com |
---|---|
State | Accepted |
Delegated to: | David Miller |
Headers | show |
Series | net: dsa: Split platform data to header file | expand |
> diff --git a/include/net/dsa.h b/include/net/dsa.h > index b3eefe8e18fd..6178b648d08a 100644 > --- a/include/net/dsa.h > +++ b/include/net/dsa.h > @@ -21,6 +21,7 @@ > #include <linux/ethtool.h> > #include <linux/net_tstamp.h> > #include <linux/phy.h> > +#include <linux/platform_data/dsa.h> > #include <net/devlink.h> > #include <net/switchdev.h> Hi Florian Could there be one more patch at the end which removes this? I think it is here just as an intermediary step? Thanks Andrew
On 1/16/19 2:29 PM, Andrew Lunn wrote: >> diff --git a/include/net/dsa.h b/include/net/dsa.h >> index b3eefe8e18fd..6178b648d08a 100644 >> --- a/include/net/dsa.h >> +++ b/include/net/dsa.h >> @@ -21,6 +21,7 @@ >> #include <linux/ethtool.h> >> #include <linux/net_tstamp.h> >> #include <linux/phy.h> >> +#include <linux/platform_data/dsa.h> >> #include <net/devlink.h> >> #include <net/switchdev.h> > > Hi Florian > > Could there be one more patch at the end which removes this? I think > it is here just as an intermediary step? Yes, we can have only dsa2.c and legacy.c include that file from there on, I will resubmit with that change, thanks!
On 1/16/19 3:06 PM, Florian Fainelli wrote: > On 1/16/19 2:29 PM, Andrew Lunn wrote: >>> diff --git a/include/net/dsa.h b/include/net/dsa.h >>> index b3eefe8e18fd..6178b648d08a 100644 >>> --- a/include/net/dsa.h >>> +++ b/include/net/dsa.h >>> @@ -21,6 +21,7 @@ >>> #include <linux/ethtool.h> >>> #include <linux/net_tstamp.h> >>> #include <linux/phy.h> >>> +#include <linux/platform_data/dsa.h> >>> #include <net/devlink.h> >>> #include <net/switchdev.h> >> >> Hi Florian >> >> Could there be one more patch at the end which removes this? I think >> it is here just as an intermediary step? > > Yes, we can have only dsa2.c and legacy.c include that file from there > on, I will resubmit with that change, thanks! We actually need to keep that include in there, because we use DSA_MAX_SWITCHES in net/dsa.h and splitting that define away could be a bit tedious since it is used by dsa_platform_data which was exposed before. Another option could be to not expose dsa_platform_data all, only dsa_chip_data which describes a single switch, and then we can have a nice and lean platform_data/dsa.h file that only has a few definitions. Which route do you prefer?
On Wed, Jan 16, 2019 at 03:50:44PM -0800, Florian Fainelli wrote: > On 1/16/19 3:06 PM, Florian Fainelli wrote: > > On 1/16/19 2:29 PM, Andrew Lunn wrote: > >>> diff --git a/include/net/dsa.h b/include/net/dsa.h > >>> index b3eefe8e18fd..6178b648d08a 100644 > >>> --- a/include/net/dsa.h > >>> +++ b/include/net/dsa.h > >>> @@ -21,6 +21,7 @@ > >>> #include <linux/ethtool.h> > >>> #include <linux/net_tstamp.h> > >>> #include <linux/phy.h> > >>> +#include <linux/platform_data/dsa.h> > >>> #include <net/devlink.h> > >>> #include <net/switchdev.h> > >> > >> Hi Florian > >> > >> Could there be one more patch at the end which removes this? I think > >> it is here just as an intermediary step? > > > > Yes, we can have only dsa2.c and legacy.c include that file from there > > on, I will resubmit with that change, thanks! > > We actually need to keep that include in there, because we use > DSA_MAX_SWITCHES in net/dsa.h and splitting that define away could be a > bit tedious since it is used by dsa_platform_data which was exposed before. Hi Florian O.K, so lets keep the patchset as it is. Thanks Andrew
diff --git a/MAINTAINERS b/MAINTAINERS index 4d04cebb4a71..a592b9992b46 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -10576,6 +10576,7 @@ F: Documentation/devicetree/bindings/net/dsa/ F: net/dsa/ F: include/net/dsa.h F: include/linux/dsa/ +F: include/linux/platform_data/dsa.h F: drivers/net/dsa/ NETWORKING [GENERAL] diff --git a/include/linux/platform_data/dsa.h b/include/linux/platform_data/dsa.h new file mode 100644 index 000000000000..d4d9bf2060a6 --- /dev/null +++ b/include/linux/platform_data/dsa.h @@ -0,0 +1,68 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef __DSA_PDATA_H +#define __DSA_PDATA_H + +struct device; +struct net_device; + +#define DSA_MAX_SWITCHES 4 +#define DSA_MAX_PORTS 12 +#define DSA_RTABLE_NONE -1 + +struct dsa_chip_data { + /* + * How to access the switch configuration registers. + */ + struct device *host_dev; + int sw_addr; + + /* + * Reference to network devices + */ + struct device *netdev[DSA_MAX_PORTS]; + + /* set to size of eeprom if supported by the switch */ + int eeprom_len; + + /* Device tree node pointer for this specific switch chip + * used during switch setup in case additional properties + * and resources needs to be used + */ + struct device_node *of_node; + + /* + * The names of the switch's ports. Use "cpu" to + * designate the switch port that the cpu is connected to, + * "dsa" to indicate that this port is a DSA link to + * another switch, NULL to indicate the port is unused, + * or any other string to indicate this is a physical port. + */ + char *port_names[DSA_MAX_PORTS]; + struct device_node *port_dn[DSA_MAX_PORTS]; + + /* + * An array of which element [a] indicates which port on this + * switch should be used to send packets to that are destined + * for switch a. Can be NULL if there is only one switch chip. + */ + s8 rtable[DSA_MAX_SWITCHES]; +}; + +struct dsa_platform_data { + /* + * Reference to a Linux network interface that connects + * to the root switch chip of the tree. + */ + struct device *netdev; + struct net_device *of_netdev; + + /* + * Info structs describing each of the switch chips + * connected via this network interface. + */ + int nr_chips; + struct dsa_chip_data *chip; +}; + + +#endif /* __DSA_PDATA_H */ diff --git a/include/net/dsa.h b/include/net/dsa.h index b3eefe8e18fd..6178b648d08a 100644 --- a/include/net/dsa.h +++ b/include/net/dsa.h @@ -21,6 +21,7 @@ #include <linux/ethtool.h> #include <linux/net_tstamp.h> #include <linux/phy.h> +#include <linux/platform_data/dsa.h> #include <net/devlink.h> #include <net/switchdev.h> @@ -44,66 +45,6 @@ enum dsa_tag_protocol { DSA_TAG_LAST, /* MUST BE LAST */ }; -#define DSA_MAX_SWITCHES 4 -#define DSA_MAX_PORTS 12 - -#define DSA_RTABLE_NONE -1 - -struct dsa_chip_data { - /* - * How to access the switch configuration registers. - */ - struct device *host_dev; - int sw_addr; - - /* - * Reference to network devices - */ - struct device *netdev[DSA_MAX_PORTS]; - - /* set to size of eeprom if supported by the switch */ - int eeprom_len; - - /* Device tree node pointer for this specific switch chip - * used during switch setup in case additional properties - * and resources needs to be used - */ - struct device_node *of_node; - - /* - * The names of the switch's ports. Use "cpu" to - * designate the switch port that the cpu is connected to, - * "dsa" to indicate that this port is a DSA link to - * another switch, NULL to indicate the port is unused, - * or any other string to indicate this is a physical port. - */ - char *port_names[DSA_MAX_PORTS]; - struct device_node *port_dn[DSA_MAX_PORTS]; - - /* - * An array of which element [a] indicates which port on this - * switch should be used to send packets to that are destined - * for switch a. Can be NULL if there is only one switch chip. - */ - s8 rtable[DSA_MAX_SWITCHES]; -}; - -struct dsa_platform_data { - /* - * Reference to a Linux network interface that connects - * to the root switch chip of the tree. - */ - struct device *netdev; - struct net_device *of_netdev; - - /* - * Info structs describing each of the switch chips - * connected via this network interface. - */ - int nr_chips; - struct dsa_chip_data *chip; -}; - struct packet_type; struct dsa_switch;
Instead of having net/dsa.h contain both the internal switch tree/driver structures, split the relevant platform_data parts into include/linux/platform_data/dsa.h and make that header be included by net/dsa.h in order not to break any setup. A subsequent set of patches will update code including net/dsa.h to include only the platform_data header. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> --- MAINTAINERS | 1 + include/linux/platform_data/dsa.h | 68 +++++++++++++++++++++++++++++++ include/net/dsa.h | 61 +-------------------------- 3 files changed, 70 insertions(+), 60 deletions(-) create mode 100644 include/linux/platform_data/dsa.h