summaryrefslogtreecommitdiff
path: root/target/linux/brcm47xx/patches-3.10/790-tg3-phylib.patch
diff options
context:
space:
mode:
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.patch197
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));