net: phy: mdio-gpio: Add phy_ignore_ta_mask to platform data
authorAndrew Lunn <andrew@lunn.ch>
Sat, 8 Dec 2018 15:12:13 +0000 (16:12 +0100)
committerDavid S. Miller <davem@davemloft.net>
Sun, 9 Dec 2018 05:33:30 +0000 (21:33 -0800)
The Marvell 6390 Ethernet switch family does not perform MDIO
turnaround correctly. Many hardware MDIO bus masters don't care about
this, but the bitbangging implementation in Linux does by default. Add
phy_ignore_ta_mask to the platform data so that the bitbangging code
can be told which devices are known to get TA wrong.

v2
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/phy/mdio-gpio.c
include/linux/platform_data/mdio-gpio.h

index 1e296dd4067ac5a07fb5ada5dad915f12f06a30d..ea9a0e3397789646bacab837e60afc111bc1f2d4 100644 (file)
@@ -130,8 +130,10 @@ static struct mii_bus *mdio_gpio_bus_init(struct device *dev,
        else
                strncpy(new_bus->id, "gpio", MII_BUS_ID_SIZE);
 
-       if (pdata)
+       if (pdata) {
                new_bus->phy_mask = pdata->phy_mask;
+               new_bus->phy_ignore_ta_mask = pdata->phy_ignore_ta_mask;
+       }
 
        dev_set_drvdata(dev, new_bus);
 
index a5d5ff5e174c3f6060f5dfcfeb8f06300732ebd1..13874fa6e7679fe9754479621adcab0332312356 100644 (file)
@@ -8,6 +8,7 @@
 
 struct mdio_gpio_platform_data {
        u32 phy_mask;
+       u32 phy_ignore_ta_mask;
 };
 
 #endif /* __LINUX_MDIO_GPIO_PDATA_H */