From: John Jacques <john.jacq...@lsi.com>

Get the auto-negotiate mode working on ARM.

Signed-off-by: John Jacques <john.jacq...@lsi.com>
---
 drivers/net/ethernet/lsi/lsi_acp_net.c | 36 +++++++++++++++-------------------
 1 file changed, 16 insertions(+), 20 deletions(-)

diff --git a/drivers/net/ethernet/lsi/lsi_acp_net.c 
b/drivers/net/ethernet/lsi/lsi_acp_net.c
index d5204f1..1753efd 100644
--- a/drivers/net/ethernet/lsi/lsi_acp_net.c
+++ b/drivers/net/ethernet/lsi/lsi_acp_net.c
@@ -92,6 +92,7 @@
 
 /* Define to disable full duplex mode on Amarillo boards */
 #undef AMARILLO_WA
+/*#define AMARILLO_WA*/
 
 #define LSI_DRV_NAME           "acp-femac"
 #define LSI_MDIO_NAME          "acp-femac-mdio"
@@ -261,6 +262,8 @@ skip_first:
                        0 == pdata->phy_link_speed ? SPEED_10 : SPEED_100;
                phydev->duplex =
                        0 == pdata->phy_link_duplex ? DUPLEX_HALF : DUPLEX_FULL;
+       } else {
+               phydev->autoneg = AUTONEG_ENABLE;
        }
 
        ret = phy_connect_direct(dev, phydev,
@@ -283,15 +286,18 @@ skip_first:
                /* Enable access to shadow register @ 0x1d */
                rc = acp_mdio_read(phydev->addr, PHY_BCM_TEST_REG, &val);
                val |= 0x80;
-               rc = acp_mdio_write(phydev->addr, PHY_BCM_TEST_REG, val);
+               rc |= acp_mdio_write(phydev->addr, PHY_BCM_TEST_REG, val);
 
                /* Set RX FIFO size to 0x7 */
-               rc = acp_mdio_write(phydev->addr, PHY_AUXILIARY_MODE3, 0x7);
+               rc |= acp_mdio_read(phydev->addr, PHY_AUXILIARY_MODE3, &val);
+               val &= 0xf;
+               val |= 0x7;
+               rc |= acp_mdio_write(phydev->addr, PHY_AUXILIARY_MODE3, val);
 
                /* Disable access to shadow register @ 0x1d */
-               rc = acp_mdio_read(phydev->addr, PHY_BCM_TEST_REG, &val);
+               rc |= acp_mdio_read(phydev->addr, PHY_BCM_TEST_REG, &val);
                val &= ~0x80;
-               rc = acp_mdio_write(phydev->addr, PHY_BCM_TEST_REG, val);
+               rc |= acp_mdio_write(phydev->addr, PHY_BCM_TEST_REG, val);
        }
 #endif
        netdev_info(dev,
@@ -1831,35 +1837,24 @@ static int __devinit appnic_probe_config_dt(struct 
net_device *dev,
        else
                pdata->dma_interrupt = field[0];
 #endif
+
        field = of_get_property(np, "mdio-clock", NULL);
        if (!field)
                goto device_tree_failed;
        else
-#ifdef CONFIG_ARM
-               pdata->mdio_clock = swab32(field[0]);
-#else
-               pdata->mdio_clock = field[0];
-#endif
+               pdata->mdio_clock = ntohl(field[0]);
 
        field = of_get_property(np, "phy-address", NULL);
        if (!field)
                goto device_tree_failed;
        else
-#ifdef CONFIG_ARM
-               pdata->phy_address = swab32(field[0]);
-#else
-               pdata->phy_address = field[0];
-#endif
+               pdata->phy_address = ntohl(field[0]);
 
        field = of_get_property(np, "ad-value", NULL);
        if (!field)
                goto device_tree_failed;
        else
-#ifdef CONFIG_ARM
-               pdata->ad_value = swab32(field[0]);
-#else
-               pdata->ad_value = field[0];
-#endif
+               pdata->ad_value = ntohl(field[0]);
 
        macspeed = of_get_property(np, "phy-link", NULL);
 
@@ -1883,7 +1878,8 @@ static int __devinit appnic_probe_config_dt(struct 
net_device *dev,
                        pdata->phy_link_speed = 0;
                        pdata->phy_link_duplex = 0;
                } else {
-                       pr_err("Invalid phy-link value \"%s\" in DTS. 
Defaulting to \"auto\".\n",
+                       pr_err("Invalid phy-link value \"%s\" "
+                              "in DTS. Defaulting to \"auto\".\n",
                               macspeed);
                        pdata->phy_link_auto = 1;
                }
-- 
1.8.3.4

_______________________________________________
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto

Reply via email to