diff options
Diffstat (limited to 'target/linux/brcm47xx/patches-3.10/790-tg3-phylib.patch')
-rw-r--r-- | target/linux/brcm47xx/patches-3.10/790-tg3-phylib.patch | 197 |
1 files changed, 0 insertions, 197 deletions
diff --git a/target/linux/brcm47xx/patches-3.10/790-tg3-phylib.patch b/target/linux/brcm47xx/patches-3.10/790-tg3-phylib.patch deleted file mode 100644 index a1ab0d2..0000000 --- a/target/linux/brcm47xx/patches-3.10/790-tg3-phylib.patch +++ /dev/null @@ -1,197 +0,0 @@ ---- a/drivers/net/ethernet/broadcom/tg3.c -+++ b/drivers/net/ethernet/broadcom/tg3.c -@@ -1367,7 +1367,7 @@ static int tg3_mdio_read(struct mii_bus - - spin_lock_bh(&tp->lock); - -- if (tg3_readphy(tp, reg, &val)) -+ if (__tg3_readphy(tp, mii_id, reg, &val)) - val = -EIO; - - spin_unlock_bh(&tp->lock); -@@ -1382,7 +1382,7 @@ static int tg3_mdio_write(struct mii_bus - - spin_lock_bh(&tp->lock); - -- if (tg3_writephy(tp, reg, val)) -+ if (__tg3_writephy(tp, mii_id, reg, val)) - ret = -EIO; - - spin_unlock_bh(&tp->lock); -@@ -1400,7 +1400,7 @@ static void tg3_mdio_config_5785(struct - u32 val; - struct phy_device *phydev; - -- phydev = tp->mdio_bus->phy_map[TG3_PHY_MII_ADDR]; -+ phydev = tp->mdio_bus->phy_map[tp->phy_addr]; - switch (phydev->drv->phy_id & phydev->drv->phy_id_mask) { - case PHY_ID_BCM50610: - case PHY_ID_BCM50610M: -@@ -1505,6 +1505,13 @@ static int tg3_mdio_init(struct tg3 *tp) - TG3_CPMU_PHY_STRAP_IS_SERDES; - if (is_serdes) - tp->phy_addr += 7; -+ } else if (tg3_flag(tp, IS_SSB_CORE) && tg3_flag(tp, ROBOSWITCH)) { -+ int addr; -+ -+ addr = ssb_gige_get_phyaddr(tp->pdev); -+ if (addr < 0) -+ return addr; -+ tp->phy_addr = addr; - } else - tp->phy_addr = TG3_PHY_MII_ADDR; - -@@ -1525,7 +1532,7 @@ static int tg3_mdio_init(struct tg3 *tp) - tp->mdio_bus->read = &tg3_mdio_read; - tp->mdio_bus->write = &tg3_mdio_write; - tp->mdio_bus->reset = &tg3_mdio_reset; -- tp->mdio_bus->phy_mask = ~(1 << TG3_PHY_MII_ADDR); -+ tp->mdio_bus->phy_mask = ~(1 << tp->phy_addr); - tp->mdio_bus->irq = &tp->mdio_irq[0]; - - for (i = 0; i < PHY_MAX_ADDR; i++) -@@ -1546,7 +1553,7 @@ static int tg3_mdio_init(struct tg3 *tp) - return i; - } - -- phydev = tp->mdio_bus->phy_map[TG3_PHY_MII_ADDR]; -+ phydev = tp->mdio_bus->phy_map[tp->phy_addr]; - - if (!phydev || !phydev->drv) { - dev_warn(&tp->pdev->dev, "No PHY devices\n"); -@@ -1963,7 +1970,7 @@ static void tg3_setup_flow_control(struc - u32 old_tx_mode = tp->tx_mode; - - if (tg3_flag(tp, USE_PHYLIB)) -- autoneg = tp->mdio_bus->phy_map[TG3_PHY_MII_ADDR]->autoneg; -+ autoneg = tp->mdio_bus->phy_map[tp->phy_addr]->autoneg; - else - autoneg = tp->link_config.autoneg; - -@@ -1999,7 +2006,7 @@ static void tg3_adjust_link(struct net_d - u8 oldflowctrl, linkmesg = 0; - u32 mac_mode, lcl_adv, rmt_adv; - struct tg3 *tp = netdev_priv(dev); -- struct phy_device *phydev = tp->mdio_bus->phy_map[TG3_PHY_MII_ADDR]; -+ struct phy_device *phydev = tp->mdio_bus->phy_map[tp->phy_addr]; - - spin_lock_bh(&tp->lock); - -@@ -2088,7 +2095,7 @@ static int tg3_phy_init(struct tg3 *tp) - /* Bring the PHY back to a known state. */ - tg3_bmcr_reset(tp); - -- phydev = tp->mdio_bus->phy_map[TG3_PHY_MII_ADDR]; -+ phydev = tp->mdio_bus->phy_map[tp->phy_addr]; - - /* Attach the MAC to the PHY. */ - phydev = phy_connect(tp->dev, dev_name(&phydev->dev), -@@ -2115,7 +2122,7 @@ static int tg3_phy_init(struct tg3 *tp) - SUPPORTED_Asym_Pause); - break; - default: -- phy_disconnect(tp->mdio_bus->phy_map[TG3_PHY_MII_ADDR]); -+ phy_disconnect(tp->mdio_bus->phy_map[tp->phy_addr]); - return -EINVAL; - } - -@@ -2133,7 +2140,7 @@ static void tg3_phy_start(struct tg3 *tp - if (!(tp->phy_flags & TG3_PHYFLG_IS_CONNECTED)) - return; - -- phydev = tp->mdio_bus->phy_map[TG3_PHY_MII_ADDR]; -+ phydev = tp->mdio_bus->phy_map[tp->phy_addr]; - - if (tp->phy_flags & TG3_PHYFLG_IS_LOW_POWER) { - tp->phy_flags &= ~TG3_PHYFLG_IS_LOW_POWER; -@@ -2153,13 +2160,13 @@ static void tg3_phy_stop(struct tg3 *tp) - if (!(tp->phy_flags & TG3_PHYFLG_IS_CONNECTED)) - return; - -- phy_stop(tp->mdio_bus->phy_map[TG3_PHY_MII_ADDR]); -+ phy_stop(tp->mdio_bus->phy_map[tp->phy_addr]); - } - - static void tg3_phy_fini(struct tg3 *tp) - { - if (tp->phy_flags & TG3_PHYFLG_IS_CONNECTED) { -- phy_disconnect(tp->mdio_bus->phy_map[TG3_PHY_MII_ADDR]); -+ phy_disconnect(tp->mdio_bus->phy_map[tp->phy_addr]); - tp->phy_flags &= ~TG3_PHYFLG_IS_CONNECTED; - } - } -@@ -3999,7 +4006,7 @@ static int tg3_power_down_prepare(struct - struct phy_device *phydev; - u32 phyid, advertising; - -- phydev = tp->mdio_bus->phy_map[TG3_PHY_MII_ADDR]; -+ phydev = tp->mdio_bus->phy_map[tp->phy_addr]; - - tp->phy_flags |= TG3_PHYFLG_IS_LOW_POWER; - -@@ -11782,7 +11789,7 @@ static int tg3_get_settings(struct net_d - struct phy_device *phydev; - if (!(tp->phy_flags & TG3_PHYFLG_IS_CONNECTED)) - return -EAGAIN; -- phydev = tp->mdio_bus->phy_map[TG3_PHY_MII_ADDR]; -+ phydev = tp->mdio_bus->phy_map[tp->phy_addr]; - return phy_ethtool_gset(phydev, cmd); - } - -@@ -11849,7 +11856,7 @@ static int tg3_set_settings(struct net_d - struct phy_device *phydev; - if (!(tp->phy_flags & TG3_PHYFLG_IS_CONNECTED)) - return -EAGAIN; -- phydev = tp->mdio_bus->phy_map[TG3_PHY_MII_ADDR]; -+ phydev = tp->mdio_bus->phy_map[tp->phy_addr]; - return phy_ethtool_sset(phydev, cmd); - } - -@@ -12006,7 +12013,7 @@ static int tg3_nway_reset(struct net_dev - if (tg3_flag(tp, USE_PHYLIB)) { - if (!(tp->phy_flags & TG3_PHYFLG_IS_CONNECTED)) - return -EAGAIN; -- r = phy_start_aneg(tp->mdio_bus->phy_map[TG3_PHY_MII_ADDR]); -+ r = phy_start_aneg(tp->mdio_bus->phy_map[tp->phy_addr]); - } else { - u32 bmcr; - -@@ -12124,7 +12131,7 @@ static int tg3_set_pauseparam(struct net - u32 newadv; - struct phy_device *phydev; - -- phydev = tp->mdio_bus->phy_map[TG3_PHY_MII_ADDR]; -+ phydev = tp->mdio_bus->phy_map[tp->phy_addr]; - - if (!(phydev->supported & SUPPORTED_Pause) || - (!(phydev->supported & SUPPORTED_Asym_Pause) && -@@ -13558,7 +13565,7 @@ static int tg3_ioctl(struct net_device * - struct phy_device *phydev; - if (!(tp->phy_flags & TG3_PHYFLG_IS_CONNECTED)) - return -EAGAIN; -- phydev = tp->mdio_bus->phy_map[TG3_PHY_MII_ADDR]; -+ phydev = tp->mdio_bus->phy_map[tp->phy_addr]; - return phy_mii_ioctl(phydev, ifr, cmd); - } - -@@ -17194,8 +17201,10 @@ static int tg3_init_one(struct pci_dev * - tg3_flag_set(tp, FLUSH_POSTED_WRITES); - if (ssb_gige_one_dma_at_once(pdev)) - tg3_flag_set(tp, ONE_DMA_AT_ONCE); -- if (ssb_gige_have_roboswitch(pdev)) -+ if (ssb_gige_have_roboswitch(pdev)) { -+ tg3_flag_set(tp, USE_PHYLIB); - tg3_flag_set(tp, ROBOSWITCH); -+ } - if (ssb_gige_is_rgmii(pdev)) - tg3_flag_set(tp, RGMII_MODE); - } -@@ -17464,7 +17473,7 @@ static int tg3_init_one(struct pci_dev * - - if (tp->phy_flags & TG3_PHYFLG_IS_CONNECTED) { - struct phy_device *phydev; -- phydev = tp->mdio_bus->phy_map[TG3_PHY_MII_ADDR]; -+ phydev = tp->mdio_bus->phy_map[tp->phy_addr]; - netdev_info(dev, - "attached PHY driver [%s] (mii_bus:phy_addr=%s)\n", - phydev->drv->name, dev_name(&phydev->dev)); |