diff options
Diffstat (limited to 'target/linux/brcm63xx/patches-3.3/421-BCM63XX-use-port-id-for-deciding-external-phy.patch')
-rw-r--r-- | target/linux/brcm63xx/patches-3.3/421-BCM63XX-use-port-id-for-deciding-external-phy.patch | 87 |
1 files changed, 0 insertions, 87 deletions
diff --git a/target/linux/brcm63xx/patches-3.3/421-BCM63XX-use-port-id-for-deciding-external-phy.patch b/target/linux/brcm63xx/patches-3.3/421-BCM63XX-use-port-id-for-deciding-external-phy.patch deleted file mode 100644 index da7013d..0000000 --- a/target/linux/brcm63xx/patches-3.3/421-BCM63XX-use-port-id-for-deciding-external-phy.patch +++ /dev/null @@ -1,87 +0,0 @@ -From 85e4551e033df7cb043e93042661fc1e58799efa Mon Sep 17 00:00:00 2001 -From: Jonas Gorski <jonas.gorski@gmail.com> -Date: Sun, 8 Jul 2012 15:36:23 +0200 -Subject: [PATCH 52/84] BCM63XX: use port id for deciding external phy - -Ports 0-3 always use the internal phy, while 4+ always need an external -phy to work. ---- - .../include/asm/mach-bcm63xx/bcm63xx_dev_enet.h | 3 ++- - drivers/net/ethernet/broadcom/bcm63xx_enet.c | 15 ++++++++------- - drivers/net/ethernet/broadcom/bcm63xx_enet.h | 5 +++++ - 3 files changed, 15 insertions(+), 8 deletions(-) - ---- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_enet.h -+++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_enet.h -@@ -45,9 +45,10 @@ struct bcm63xx_enet_platform_data { - #define ENETSW_MAX_PORT 6 - #define ENETSW_PORTS_6368 6 /* 4 FE PHY + 2 RGMII */ - -+#define ENETSW_RGMII_PORT0 4 -+ - struct bcm63xx_enetsw_port { - int used; -- int external_phy; - int phy_id; - - int bypass_link; ---- a/drivers/net/ethernet/broadcom/bcm63xx_enet.c -+++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.c -@@ -2046,6 +2046,7 @@ static void swphy_poll_timer(unsigned lo - for (i = 0; i < priv->num_ports; i++) { - struct bcm63xx_enetsw_port *port; - int val, j, up, advertise, lpa, lpa2, speed, duplex, media; -+ int external_phy = bcm_enet_port_is_rgmii(i); - u8 override; - - port = &priv->used_ports[i]; -@@ -2057,7 +2058,7 @@ static void swphy_poll_timer(unsigned lo - - /* dummy read to clear */ - for (j = 0; j < 2; j++) -- val = bcmenet_sw_mdio_read(priv, port->external_phy, -+ val = bcmenet_sw_mdio_read(priv, external_phy, - port->phy_id, MII_BMSR); - - if (val == 0xffff) -@@ -2081,14 +2082,14 @@ static void swphy_poll_timer(unsigned lo - continue; - } - -- advertise = bcmenet_sw_mdio_read(priv, port->external_phy, -+ advertise = bcmenet_sw_mdio_read(priv, external_phy, - port->phy_id, MII_ADVERTISE); - -- lpa = bcmenet_sw_mdio_read(priv, port->external_phy, -- port->phy_id, MII_LPA); -+ lpa = bcmenet_sw_mdio_read(priv, external_phy, port->phy_id, -+ MII_LPA); - -- lpa2 = bcmenet_sw_mdio_read(priv, port->external_phy, -- port->phy_id, MII_STAT1000); -+ lpa2 = bcmenet_sw_mdio_read(priv, external_phy, port->phy_id, -+ MII_STAT1000); - - /* figure out media and duplex from advertise and LPA values */ - media = mii_nway_result(lpa & advertise); -@@ -2457,7 +2458,7 @@ static int bcm_enetsw_phy_is_external(st - if (!priv->used_ports[i].used) - continue; - if (priv->used_ports[i].phy_id == phy_id) -- return priv->used_ports[i].external_phy; -+ return bcm_enet_port_is_rgmii(i); - } - - printk_once(KERN_WARNING "bcm63xx_enet: could not find a used port " ---- a/drivers/net/ethernet/broadcom/bcm63xx_enet.h -+++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.h -@@ -365,4 +365,9 @@ struct bcm_enet_priv { - spinlock_t enetsw_mdio_lock; - }; - -+static inline int bcm_enet_port_is_rgmii(int portid) -+{ -+ return portid >= ENETSW_RGMII_PORT0; -+} -+ - #endif /* ! BCM63XX_ENET_H_ */ |