lkml.org 
[lkml]   [2022]   [Nov]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: [PATCH net-next v2 1/3] net: dsa: microchip: move max mtu to one location
    Date
    On Mon, 2022-11-07 at 14:57 +0100, Oleksij Rempel wrote:
    > EXTERNAL EMAIL: Do not click links or open attachments unless you
    > know the content is safe
    >
    > There are no HW specific registers, so we can process all of them
    > in one location.

    Tested in KSZ9893 and LAN937x by changing the mtu to max_mtu using
    ifconfig. It works fine.

    >
    > Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
    > ---
    > drivers/net/dsa/microchip/ksz9477.c | 5 -----
    > drivers/net/dsa/microchip/ksz9477.h | 1 -
    > drivers/net/dsa/microchip/ksz9477_reg.h | 2 --
    > drivers/net/dsa/microchip/ksz_common.c | 21 ++++++++++++++++-----
    > drivers/net/dsa/microchip/ksz_common.h | 3 ++-
    > 5 files changed, 18 insertions(+), 14 deletions(-)
    >
    > diff --git a/drivers/net/dsa/microchip/ksz9477.c
    > b/drivers/net/dsa/microchip/ksz9477.c
    > index a6a0321a8931..e3adb126fdff 100644
    > --- a/drivers/net/dsa/microchip/ksz9477.c
    > +++ b/drivers/net/dsa/microchip/ksz9477.c
    > @@ -60,11 +60,6 @@ int ksz9477_change_mtu(struct ksz_device *dev, int
    > port, int mtu)
    > REG_SW_MTU_MASK, max_frame);
    > }
    >
    > -int ksz9477_max_mtu(struct ksz_device *dev, int port)
    > -{
    > - return KSZ9477_MAX_FRAME_SIZE - VLAN_ETH_HLEN - ETH_FCS_LEN;
    > -}
    > -
    > static int ksz9477_wait_vlan_ctrl_ready(struct ksz_device *dev)
    > {
    > unsigned int val;
    > diff --git a/drivers/net/dsa/microchip/ksz9477.h
    > b/drivers/net/dsa/microchip/ksz9477.h
    > index 00862c4cfb7f..7c5bb3032772 100644
    > --- a/drivers/net/dsa/microchip/ksz9477.h
    > +++ b/drivers/net/dsa/microchip/ksz9477.h
    > @@ -50,7 +50,6 @@ int ksz9477_mdb_add(struct ksz_device *dev, int
    > port,
    > int ksz9477_mdb_del(struct ksz_device *dev, int port,
    > const struct switchdev_obj_port_mdb *mdb, struct
    > dsa_db db);
    > int ksz9477_change_mtu(struct ksz_device *dev, int port, int mtu);
    > -int ksz9477_max_mtu(struct ksz_device *dev, int port);
    > void ksz9477_config_cpu_port(struct dsa_switch *ds);
    > int ksz9477_enable_stp_addr(struct ksz_device *dev);
    > int ksz9477_reset_switch(struct ksz_device *dev);
    > diff --git a/drivers/net/dsa/microchip/ksz9477_reg.h
    > b/drivers/net/dsa/microchip/ksz9477_reg.h
    > index 53c68d286dd3..cc457fa64939 100644
    > --- a/drivers/net/dsa/microchip/ksz9477_reg.h
    > +++ b/drivers/net/dsa/microchip/ksz9477_reg.h
    > @@ -1615,6 +1615,4 @@
    > #define PTP_TRIG_UNIT_M (BIT(MAX_TRIG_UNIT) -
    > 1)
    > #define PTP_TS_UNIT_M (BIT(MAX_TIMESTAMP_UNIT) - 1)
    >
    > -#define KSZ9477_MAX_FRAME_SIZE 9000
    > -
    > #endif /* KSZ9477_REGS_H */
    > diff --git a/drivers/net/dsa/microchip/ksz_common.c
    > b/drivers/net/dsa/microchip/ksz_common.c
    > index d612181b3226..486ad03d0acf 100644
    > --- a/drivers/net/dsa/microchip/ksz_common.c
    > +++ b/drivers/net/dsa/microchip/ksz_common.c
    > @@ -14,6 +14,7 @@
    > #include <linux/phy.h>
    > #include <linux/etherdevice.h>
    > #include <linux/if_bridge.h>
    > +#include <linux/if_vlan.h>
    > #include <linux/irq.h>
    > #include <linux/irqdomain.h>
    > #include <linux/of_mdio.h>
    > @@ -206,7 +207,6 @@ static const struct ksz_dev_ops ksz9477_dev_ops =
    > {
    > .mdb_add = ksz9477_mdb_add,
    > .mdb_del = ksz9477_mdb_del,
    > .change_mtu = ksz9477_change_mtu,
    > - .max_mtu = ksz9477_max_mtu,
    > .phylink_mac_link_up = ksz9477_phylink_mac_link_up,
    > .config_cpu_port = ksz9477_config_cpu_port,
    > .enable_stp_addr = ksz9477_enable_stp_addr,
    > @@ -243,7 +243,6 @@ static const struct ksz_dev_ops lan937x_dev_ops =
    > {
    > .mdb_add = ksz9477_mdb_add,
    > .mdb_del = ksz9477_mdb_del,
    > .change_mtu = lan937x_change_mtu,
    > - .max_mtu = ksz9477_max_mtu,
    > .phylink_mac_link_up = ksz9477_phylink_mac_link_up,
    > .config_cpu_port = lan937x_config_cpu_port,
    > .enable_stp_addr = ksz9477_enable_stp_addr,
    > @@ -2473,10 +2472,22 @@ static int ksz_max_mtu(struct dsa_switch *ds,
    > int port)
    > {
    > struct ksz_device *dev = ds->priv;
    >
    > - if (!dev->dev_ops->max_mtu)
    > - return -EOPNOTSUPP;
    > + switch (dev->chip_id) {
    > + case KSZ8563_CHIP_ID:
    > + case KSZ9477_CHIP_ID:
    > + case KSZ9567_CHIP_ID:
    > + case KSZ9893_CHIP_ID:
    > + case KSZ9896_CHIP_ID:
    > + case KSZ9897_CHIP_ID:
    > + case LAN9370_CHIP_ID:
    > + case LAN9371_CHIP_ID:
    > + case LAN9372_CHIP_ID:
    > + case LAN9373_CHIP_ID:
    > + case LAN9374_CHIP_ID:
    > + return KSZ9477_MAX_FRAME_SIZE - VLAN_ETH_HLEN -
    > ETH_FCS_LEN;
    > + }
    >
    > - return dev->dev_ops->max_mtu(dev, port);
    > + return -EOPNOTSUPP;
    > }
    >
    > static void ksz_set_xmii(struct ksz_device *dev, int port,
    > diff --git a/drivers/net/dsa/microchip/ksz_common.h
    > b/drivers/net/dsa/microchip/ksz_common.h
    > index 9cfa179575ce..7de5070637ec 100644
    > --- a/drivers/net/dsa/microchip/ksz_common.h
    > +++ b/drivers/net/dsa/microchip/ksz_common.h
    > @@ -320,7 +320,6 @@ struct ksz_dev_ops {
    > void (*get_caps)(struct ksz_device *dev, int port,
    > struct phylink_config *config);
    > int (*change_mtu)(struct ksz_device *dev, int port, int mtu);
    > - int (*max_mtu)(struct ksz_device *dev, int port);
    > void (*freeze_mib)(struct ksz_device *dev, int port, bool
    > freeze);
    > void (*port_init_cnt)(struct ksz_device *dev, int port);
    > void (*phylink_mac_config)(struct ksz_device *dev, int port,
    > @@ -585,6 +584,8 @@ static inline int is_lan937x(struct ksz_device
    > *dev)
    >
    > #define PORT_SRC_PHY_INT 1
    >
    > +#define KSZ9477_MAX_FRAME_SIZE 9000
    > +
    > /* Regmap tables generation */
    > #define KSZ_SPI_OP_RD 3
    > #define KSZ_SPI_OP_WR 2
    > --
    > 2.30.2
    >
    \
     
     \ /
      Last update: 2022-11-08 06:16    [W:3.435 / U:0.168 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site