diff options
| author | Sonic Zhang <sonic.zhang@analog.com> | 2010-11-23 05:00:15 -0500 |
|---|---|---|
| committer | Mike Frysinger <vapier@gentoo.org> | 2011-01-10 07:18:24 -0500 |
| commit | d57bc0feaa958bc8a6a0b9d3a29f78c699e50d2a (patch) | |
| tree | 87ce0faa31576525306124139865c14488b6d7b0 | |
| parent | 874f6cfd3a05d5452064531078cae9b19a5e790c (diff) | |
Blackfin: bf518f-ezbrd: fix dsa resources
On bf518-ezbrd with DSA Ethernet switch enabled, on chip MAC is
connecting to phy at address 3. If allowing the netdevice framework to
probe both 3 phys of the switch when registering MAC phy, phy at address
1 is checked for link active status other than phy at address 3. If
connecting a cable to port 2 and leave port 1 open, link status in phy
2 and 3 are online, while that in phy 1 is offline. So, the phy layer
sets wrong offline status to net device on port 3. In this case, no data
can be transferred via ethernet port 2.
Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
| -rw-r--r-- | arch/blackfin/mach-bf518/boards/ezbrd.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/arch/blackfin/mach-bf518/boards/ezbrd.c b/arch/blackfin/mach-bf518/boards/ezbrd.c index 0c75aa35faf4..8d55a8dad7ab 100644 --- a/arch/blackfin/mach-bf518/boards/ezbrd.c +++ b/arch/blackfin/mach-bf518/boards/ezbrd.c | |||
| @@ -104,24 +104,23 @@ static const unsigned short bfin_mac_peripherals[] = { | |||
| 104 | 104 | ||
| 105 | static struct bfin_phydev_platform_data bfin_phydev_data[] = { | 105 | static struct bfin_phydev_platform_data bfin_phydev_data[] = { |
| 106 | { | 106 | { |
| 107 | .addr = 1, | 107 | #if defined(CONFIG_NET_DSA_KSZ8893M) || defined(CONFIG_NET_DSA_KSZ8893M_MODULE) |
| 108 | .irq = IRQ_MAC_PHYINT, | ||
| 109 | }, | ||
| 110 | { | ||
| 111 | .addr = 2, | ||
| 112 | .irq = IRQ_MAC_PHYINT, | ||
| 113 | }, | ||
| 114 | { | ||
| 115 | .addr = 3, | 108 | .addr = 3, |
| 109 | #else | ||
| 110 | .addr = 1, | ||
| 111 | #endif | ||
| 116 | .irq = IRQ_MAC_PHYINT, | 112 | .irq = IRQ_MAC_PHYINT, |
| 117 | }, | 113 | }, |
| 118 | }; | 114 | }; |
| 119 | 115 | ||
| 120 | static struct bfin_mii_bus_platform_data bfin_mii_bus_data = { | 116 | static struct bfin_mii_bus_platform_data bfin_mii_bus_data = { |
| 121 | .phydev_number = 3, | 117 | .phydev_number = 1, |
| 122 | .phydev_data = bfin_phydev_data, | 118 | .phydev_data = bfin_phydev_data, |
| 123 | .phy_mode = PHY_INTERFACE_MODE_MII, | 119 | .phy_mode = PHY_INTERFACE_MODE_MII, |
| 124 | .mac_peripherals = bfin_mac_peripherals, | 120 | .mac_peripherals = bfin_mac_peripherals, |
| 121 | #if defined(CONFIG_NET_DSA_KSZ8893M) || defined(CONFIG_NET_DSA_KSZ8893M_MODULE) | ||
| 122 | .phy_mask = 0xfff7, /* Only probe the port phy connect to the on chip MAC */ | ||
| 123 | #endif | ||
| 125 | }; | 124 | }; |
| 126 | 125 | ||
| 127 | static struct platform_device bfin_mii_bus = { | 126 | static struct platform_device bfin_mii_bus = { |
