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 /arch/blackfin/mach-bf518 | |
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>
Diffstat (limited to 'arch/blackfin/mach-bf518')
-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 = { |