OSDN Git Service

net: dsa: microchip: do not store max MTU for all ports
authorOleksij Rempel <o.rempel@pengutronix.de>
Mon, 5 Dec 2022 05:22:28 +0000 (06:22 +0100)
committerPaolo Abeni <pabeni@redhat.com>
Wed, 7 Dec 2022 10:57:58 +0000 (11:57 +0100)
If we have global MTU configuration, it is enough to configure it on CPU
port only.

Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/dsa/microchip/ksz9477.c
drivers/net/dsa/microchip/ksz_common.h

index 602d006..f6e7968 100644 (file)
@@ -45,19 +45,15 @@ static void ksz9477_port_cfg32(struct ksz_device *dev, int port, int offset,
 
 int ksz9477_change_mtu(struct ksz_device *dev, int port, int mtu)
 {
-       u16 frame_size, max_frame = 0;
-       int i;
-
-       frame_size = mtu + VLAN_ETH_HLEN + ETH_FCS_LEN;
+       u16 frame_size;
 
-       /* Cache the per-port MTU setting */
-       dev->ports[port].max_frame = frame_size;
+       if (!dsa_is_cpu_port(dev->ds, port))
+               return 0;
 
-       for (i = 0; i < dev->info->port_cnt; i++)
-               max_frame = max(max_frame, dev->ports[i].max_frame);
+       frame_size = mtu + VLAN_ETH_HLEN + ETH_FCS_LEN;
 
        return regmap_update_bits(dev->regmap[1], REG_SW_MTU__2,
-                                 REG_SW_MTU_MASK, max_frame);
+                                 REG_SW_MTU_MASK, frame_size);
 }
 
 static int ksz9477_wait_vlan_ctrl_ready(struct ksz_device *dev)
index 27c26ee..61228be 100644 (file)
@@ -95,7 +95,6 @@ struct ksz_port {
 
        struct ksz_port_mib mib;
        phy_interface_t interface;
-       u16 max_frame;
        u32 rgmii_tx_val;
        u32 rgmii_rx_val;
        struct ksz_device *ksz_dev;