diff options
author | Sonic Zhang <sonic.zhang@analog.com> | 2010-11-23 10:00:15 +0000 |
---|---|---|
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) | |
download | linux-d57bc0feaa958bc8a6a0b9d3a29f78c699e50d2a.tar.gz linux-d57bc0feaa958bc8a6a0b9d3a29f78c699e50d2a.tar.bz2 linux-d57bc0feaa958bc8a6a0b9d3a29f78c699e50d2a.zip |
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[] = { static struct bfin_phydev_platform_data bfin_phydev_data[] = { { - .addr = 1, - .irq = IRQ_MAC_PHYINT, - }, - { - .addr = 2, - .irq = IRQ_MAC_PHYINT, - }, - { +#if defined(CONFIG_NET_DSA_KSZ8893M) || defined(CONFIG_NET_DSA_KSZ8893M_MODULE) .addr = 3, +#else + .addr = 1, +#endif .irq = IRQ_MAC_PHYINT, }, }; static struct bfin_mii_bus_platform_data bfin_mii_bus_data = { - .phydev_number = 3, + .phydev_number = 1, .phydev_data = bfin_phydev_data, .phy_mode = PHY_INTERFACE_MODE_MII, .mac_peripherals = bfin_mac_peripherals, +#if defined(CONFIG_NET_DSA_KSZ8893M) || defined(CONFIG_NET_DSA_KSZ8893M_MODULE) + .phy_mask = 0xfff7, /* Only probe the port phy connect to the on chip MAC */ +#endif }; static struct platform_device bfin_mii_bus = { |