diff options
Diffstat (limited to 'target/linux/brcm47xx/patches-3.10/201-b44-check-register-instead-of-PHY-address-to-detect-.patch')
-rw-r--r-- | target/linux/brcm47xx/patches-3.10/201-b44-check-register-instead-of-PHY-address-to-detect-.patch | 116 |
1 files changed, 0 insertions, 116 deletions
diff --git a/target/linux/brcm47xx/patches-3.10/201-b44-check-register-instead-of-PHY-address-to-detect-.patch b/target/linux/brcm47xx/patches-3.10/201-b44-check-register-instead-of-PHY-address-to-detect-.patch deleted file mode 100644 index a9b3fa87c6..0000000000 --- a/target/linux/brcm47xx/patches-3.10/201-b44-check-register-instead-of-PHY-address-to-detect-.patch +++ /dev/null @@ -1,116 +0,0 @@ -From d61941952d5e7d062c3884e6d81bd503a37702b4 Mon Sep 17 00:00:00 2001 -From: Hauke Mehrtens <hauke@hauke-m.de> -Date: Fri, 20 Dec 2013 02:16:06 +0100 -Subject: [PATCH 201/208] b44: check register instead of PHY address to detect - external PHY - -The Ethernet core supported by b44 supports an internal PHY integrated -into the mac core, which is supported by the b44 driver and an external -PHY to which the mac core is connected. This external PHY could be a -switch connected through MII, which is often the case when this core is -used on home routers. The usage of an external PHY was assumed when the -PHY address 30 was used and an internal PHY was assumed when the PHY -address was different. To verify that b44_phy_reset() was called and -checked if it worked, otherwise PHY address 30 was assumed, an external -PHY. It is better to check the register which says which PHY is -connected to the MAC instead of checking the PHY address. -The interface to an external PHY was only activated when this register -was set. - -This also changes B44_FLAG_INTERNAL_PHY to B44_FLAG_EXTERNAL_PHY, it is -easier to check. - -Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> -Signed-off-by: David S. Miller <davem@davemloft.net> ---- - drivers/net/ethernet/broadcom/b44.c | 18 +++++++++--------- - drivers/net/ethernet/broadcom/b44.h | 2 +- - 2 files changed, 10 insertions(+), 10 deletions(-) - ---- a/drivers/net/ethernet/broadcom/b44.c -+++ b/drivers/net/ethernet/broadcom/b44.c -@@ -284,7 +284,7 @@ static int __b44_writephy(struct b44 *bp - - static inline int b44_readphy(struct b44 *bp, int reg, u32 *val) - { -- if (bp->phy_addr == B44_PHY_ADDR_NO_PHY) -+ if (bp->flags & B44_FLAG_EXTERNAL_PHY) - return 0; - - return __b44_readphy(bp, bp->phy_addr, reg, val); -@@ -292,7 +292,7 @@ static inline int b44_readphy(struct b44 - - static inline int b44_writephy(struct b44 *bp, int reg, u32 val) - { -- if (bp->phy_addr == B44_PHY_ADDR_NO_PHY) -+ if (bp->flags & B44_FLAG_EXTERNAL_PHY) - return 0; - - return __b44_writephy(bp, bp->phy_addr, reg, val); -@@ -321,7 +321,7 @@ static int b44_phy_reset(struct b44 *bp) - u32 val; - int err; - -- if (bp->phy_addr == B44_PHY_ADDR_NO_PHY) -+ if (bp->flags & B44_FLAG_EXTERNAL_PHY) - return 0; - err = b44_writephy(bp, MII_BMCR, BMCR_RESET); - if (err) -@@ -423,7 +423,7 @@ static int b44_setup_phy(struct b44 *bp) - - b44_wap54g10_workaround(bp); - -- if (bp->phy_addr == B44_PHY_ADDR_NO_PHY) -+ if (bp->flags & B44_FLAG_EXTERNAL_PHY) - return 0; - if ((err = b44_readphy(bp, B44_MII_ALEDCTRL, &val)) != 0) - goto out; -@@ -521,7 +521,7 @@ static void b44_check_phy(struct b44 *bp - { - u32 bmsr, aux; - -- if (bp->phy_addr == B44_PHY_ADDR_NO_PHY) { -+ if (bp->flags & B44_FLAG_EXTERNAL_PHY) { - bp->flags |= B44_FLAG_100_BASE_T; - bp->flags |= B44_FLAG_FULL_DUPLEX; - if (!netif_carrier_ok(bp->dev)) { -@@ -1315,7 +1315,7 @@ static void b44_chip_reset(struct b44 *b - if (!(br32(bp, B44_DEVCTRL) & DEVCTRL_IPP)) { - bw32(bp, B44_ENET_CTRL, ENET_CTRL_EPSEL); - br32(bp, B44_ENET_CTRL); -- bp->flags &= ~B44_FLAG_INTERNAL_PHY; -+ bp->flags |= B44_FLAG_EXTERNAL_PHY; - } else { - u32 val = br32(bp, B44_DEVCTRL); - -@@ -1324,7 +1324,7 @@ static void b44_chip_reset(struct b44 *b - br32(bp, B44_DEVCTRL); - udelay(100); - } -- bp->flags |= B44_FLAG_INTERNAL_PHY; -+ bp->flags &= ~B44_FLAG_EXTERNAL_PHY; - } - } - -@@ -1828,8 +1828,8 @@ static int b44_get_settings(struct net_d - DUPLEX_FULL : DUPLEX_HALF; - cmd->port = 0; - cmd->phy_address = bp->phy_addr; -- cmd->transceiver = (bp->flags & B44_FLAG_INTERNAL_PHY) ? -- XCVR_INTERNAL : XCVR_EXTERNAL; -+ cmd->transceiver = (bp->flags & B44_FLAG_EXTERNAL_PHY) ? -+ XCVR_EXTERNAL : XCVR_INTERNAL; - cmd->autoneg = (bp->flags & B44_FLAG_FORCE_LINK) ? - AUTONEG_DISABLE : AUTONEG_ENABLE; - if (cmd->autoneg == AUTONEG_ENABLE) ---- a/drivers/net/ethernet/broadcom/b44.h -+++ b/drivers/net/ethernet/broadcom/b44.h -@@ -376,7 +376,7 @@ struct b44 { - #define B44_FLAG_ADV_10FULL 0x02000000 - #define B44_FLAG_ADV_100HALF 0x04000000 - #define B44_FLAG_ADV_100FULL 0x08000000 --#define B44_FLAG_INTERNAL_PHY 0x10000000 -+#define B44_FLAG_EXTERNAL_PHY 0x10000000 - #define B44_FLAG_RX_RING_HACK 0x20000000 - #define B44_FLAG_TX_RING_HACK 0x40000000 - #define B44_FLAG_WOL_ENABLE 0x80000000 |