net: mvpp2: always disable both MACs when disabling a port
authorAntoine Tenart <antoine.tenart@bootlin.com>
Fri, 1 Mar 2019 10:52:11 +0000 (11:52 +0100)
committerDavid S. Miller <davem@davemloft.net>
Sat, 2 Mar 2019 07:23:34 +0000 (23:23 -0800)
This patch modifies the port_disable() helper to always disable both the
GMAC and the XLG MAC when called. At boot time we do not know of a port
was enabled in the firmware/bootloader, and if so what mode was used
(hence which of the two MACs was used).

This also help in implementing a logic where all blocks are disabled
when not used, and only enabled regarding the current mode used on a
given port.

Signed-off-by: Antoine Tenart <antoine.tenart@bootlin.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c

index 908dfe86db92fae7b57eab665b3df721bb5bfae1..e9cbbe871a1a2f93a9b11cd373cc534ceb1e398f 100644 (file)
@@ -1213,11 +1213,11 @@ static void mvpp2_port_disable(struct mvpp2_port *port)
                /* Disable & reset should be done separately */
                val &= ~MVPP22_XLG_CTRL0_MAC_RESET_DIS;
                writel(val, port->base + MVPP22_XLG_CTRL0_REG);
-       } else {
-               val = readl(port->base + MVPP2_GMAC_CTRL_0_REG);
-               val &= ~(MVPP2_GMAC_PORT_EN_MASK);
-               writel(val, port->base + MVPP2_GMAC_CTRL_0_REG);
        }
+
+       val = readl(port->base + MVPP2_GMAC_CTRL_0_REG);
+       val &= ~(MVPP2_GMAC_PORT_EN_MASK);
+       writel(val, port->base + MVPP2_GMAC_CTRL_0_REG);
 }
 
 /* Set IEEE 802.3x Flow Control Xon Packet Transmission Mode */