lkml.org 
[lkml]   [2021]   [Nov]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2 2/7] net: dsa: b53: Move struct b53_device to include/linux/dsa/b53.h
    Date
    In order to access the b53 structs from net/dsa/tag_brcm.c move the
    definitions from drivers/net/dsa/b53/b53_priv.h to the new file
    include/linux/dsa/b53.h.

    Signed-off-by: Martin Kaistra <martin.kaistra@linutronix.de>
    ---
    drivers/net/dsa/b53/b53_priv.h | 90 +----------------------------
    include/linux/dsa/b53.h | 100 +++++++++++++++++++++++++++++++++
    2 files changed, 101 insertions(+), 89 deletions(-)
    create mode 100644 include/linux/dsa/b53.h

    diff --git a/drivers/net/dsa/b53/b53_priv.h b/drivers/net/dsa/b53/b53_priv.h
    index 579da74ada64..1652e489b737 100644
    --- a/drivers/net/dsa/b53/b53_priv.h
    +++ b/drivers/net/dsa/b53/b53_priv.h
    @@ -23,44 +23,13 @@
    #include <linux/mutex.h>
    #include <linux/phy.h>
    #include <linux/etherdevice.h>
    -#include <net/dsa.h>
    +#include <linux/dsa/b53.h>

    #include "b53_regs.h"

    -struct b53_device;
    struct net_device;
    struct phylink_link_state;

    -struct b53_io_ops {
    - int (*read8)(struct b53_device *dev, u8 page, u8 reg, u8 *value);
    - int (*read16)(struct b53_device *dev, u8 page, u8 reg, u16 *value);
    - int (*read32)(struct b53_device *dev, u8 page, u8 reg, u32 *value);
    - int (*read48)(struct b53_device *dev, u8 page, u8 reg, u64 *value);
    - int (*read64)(struct b53_device *dev, u8 page, u8 reg, u64 *value);
    - int (*write8)(struct b53_device *dev, u8 page, u8 reg, u8 value);
    - int (*write16)(struct b53_device *dev, u8 page, u8 reg, u16 value);
    - int (*write32)(struct b53_device *dev, u8 page, u8 reg, u32 value);
    - int (*write48)(struct b53_device *dev, u8 page, u8 reg, u64 value);
    - int (*write64)(struct b53_device *dev, u8 page, u8 reg, u64 value);
    - int (*phy_read16)(struct b53_device *dev, int addr, int reg, u16 *value);
    - int (*phy_write16)(struct b53_device *dev, int addr, int reg, u16 value);
    - int (*irq_enable)(struct b53_device *dev, int port);
    - void (*irq_disable)(struct b53_device *dev, int port);
    - u8 (*serdes_map_lane)(struct b53_device *dev, int port);
    - int (*serdes_link_state)(struct b53_device *dev, int port,
    - struct phylink_link_state *state);
    - void (*serdes_config)(struct b53_device *dev, int port,
    - unsigned int mode,
    - const struct phylink_link_state *state);
    - void (*serdes_an_restart)(struct b53_device *dev, int port);
    - void (*serdes_link_set)(struct b53_device *dev, int port,
    - unsigned int mode, phy_interface_t interface,
    - bool link_up);
    - void (*serdes_phylink_validate)(struct b53_device *dev, int port,
    - unsigned long *supported,
    - struct phylink_link_state *state);
    -};
    -
    #define B53_INVALID_LANE 0xff

    enum {
    @@ -89,63 +58,6 @@ enum {
    #define B53_N_PORTS 9
    #define B53_N_PORTS_25 6

    -struct b53_port {
    - u16 vlan_ctl_mask;
    - struct ethtool_eee eee;
    -};
    -
    -struct b53_vlan {
    - u16 members;
    - u16 untag;
    - bool valid;
    -};
    -
    -struct b53_device {
    - struct dsa_switch *ds;
    - struct b53_platform_data *pdata;
    - const char *name;
    -
    - struct mutex reg_mutex;
    - struct mutex stats_mutex;
    - struct mutex arl_mutex;
    - const struct b53_io_ops *ops;
    -
    - /* chip specific data */
    - u32 chip_id;
    - u8 core_rev;
    - u8 vta_regs[3];
    - u8 duplex_reg;
    - u8 jumbo_pm_reg;
    - u8 jumbo_size_reg;
    - int reset_gpio;
    - u8 num_arl_bins;
    - u16 num_arl_buckets;
    - enum dsa_tag_protocol tag_protocol;
    -
    - /* used ports mask */
    - u16 enabled_ports;
    - unsigned int imp_port;
    -
    - /* connect specific data */
    - u8 current_page;
    - struct device *dev;
    - u8 serdes_lane;
    -
    - /* Master MDIO bus we got probed from */
    - struct mii_bus *bus;
    -
    - void *priv;
    -
    - /* run time configuration */
    - bool enable_jumbo;
    -
    - unsigned int num_vlans;
    - struct b53_vlan *vlans;
    - bool vlan_enabled;
    - unsigned int num_ports;
    - struct b53_port *ports;
    -};
    -
    #define b53_for_each_port(dev, i) \
    for (i = 0; i < B53_N_PORTS; i++) \
    if (dev->enabled_ports & BIT(i))
    diff --git a/include/linux/dsa/b53.h b/include/linux/dsa/b53.h
    new file mode 100644
    index 000000000000..af782a1da362
    --- /dev/null
    +++ b/include/linux/dsa/b53.h
    @@ -0,0 +1,100 @@
    +/* SPDX-License-Identifier: ISC */
    +/*
    + * Copyright (C) 2011-2013 Jonas Gorski <jogo@openwrt.org>
    + *
    + * Included by drivers/net/dsa/b53/b53_priv.h and net/dsa/tag_brcm.c
    + */
    +
    +#include <net/dsa.h>
    +
    +struct b53_device;
    +struct phylink_link_state;
    +
    +struct b53_io_ops {
    + int (*read8)(struct b53_device *dev, u8 page, u8 reg, u8 *value);
    + int (*read16)(struct b53_device *dev, u8 page, u8 reg, u16 *value);
    + int (*read32)(struct b53_device *dev, u8 page, u8 reg, u32 *value);
    + int (*read48)(struct b53_device *dev, u8 page, u8 reg, u64 *value);
    + int (*read64)(struct b53_device *dev, u8 page, u8 reg, u64 *value);
    + int (*write8)(struct b53_device *dev, u8 page, u8 reg, u8 value);
    + int (*write16)(struct b53_device *dev, u8 page, u8 reg, u16 value);
    + int (*write32)(struct b53_device *dev, u8 page, u8 reg, u32 value);
    + int (*write48)(struct b53_device *dev, u8 page, u8 reg, u64 value);
    + int (*write64)(struct b53_device *dev, u8 page, u8 reg, u64 value);
    + int (*phy_read16)(struct b53_device *dev, int addr, int reg,
    + u16 *value);
    + int (*phy_write16)(struct b53_device *dev, int addr, int reg,
    + u16 value);
    + int (*irq_enable)(struct b53_device *dev, int port);
    + void (*irq_disable)(struct b53_device *dev, int port);
    + u8 (*serdes_map_lane)(struct b53_device *dev, int port);
    + int (*serdes_link_state)(struct b53_device *dev, int port,
    + struct phylink_link_state *state);
    + void (*serdes_config)(struct b53_device *dev, int port,
    + unsigned int mode,
    + const struct phylink_link_state *state);
    + void (*serdes_an_restart)(struct b53_device *dev, int port);
    + void (*serdes_link_set)(struct b53_device *dev, int port,
    + unsigned int mode, phy_interface_t interface,
    + bool link_up);
    + void (*serdes_phylink_validate)(struct b53_device *dev, int port,
    + unsigned long *supported,
    + struct phylink_link_state *state);
    +};
    +
    +struct b53_port {
    + u16 vlan_ctl_mask;
    + struct ethtool_eee eee;
    +};
    +
    +struct b53_vlan {
    + u16 members;
    + u16 untag;
    + bool valid;
    +};
    +
    +struct b53_device {
    + struct dsa_switch *ds;
    + struct b53_platform_data *pdata;
    + const char *name;
    +
    + struct mutex reg_mutex;
    + struct mutex stats_mutex;
    + struct mutex arl_mutex;
    + const struct b53_io_ops *ops;
    +
    + /* chip specific data */
    + u32 chip_id;
    + u8 core_rev;
    + u8 vta_regs[3];
    + u8 duplex_reg;
    + u8 jumbo_pm_reg;
    + u8 jumbo_size_reg;
    + int reset_gpio;
    + u8 num_arl_bins;
    + u16 num_arl_buckets;
    + enum dsa_tag_protocol tag_protocol;
    +
    + /* used ports mask */
    + u16 enabled_ports;
    + unsigned int imp_port;
    +
    + /* connect specific data */
    + u8 current_page;
    + struct device *dev;
    + u8 serdes_lane;
    +
    + /* Master MDIO bus we got probed from */
    + struct mii_bus *bus;
    +
    + void *priv;
    +
    + /* run time configuration */
    + bool enable_jumbo;
    +
    + unsigned int num_vlans;
    + struct b53_vlan *vlans;
    + bool vlan_enabled;
    + unsigned int num_ports;
    + struct b53_port *ports;
    +};
    --
    2.20.1
    \
     
     \ /
      Last update: 2021-11-09 11:11    [W:4.919 / U:0.784 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site