openwrt/target/linux
nbd a2a0b9f4dd ath79: dev-eth: Don't advertise 1gbit in link code word on ar9331
While the AR9331 has a gigabit MAC towards the internal switch, the
integrated PHYs however are only 100-base-tx capable.  The existing code
however advertieses gigabit capability in the link status word.  If you
attach such a PHY to a gigabit capable switch on the remote end, with
some probability it attempts to negotiate gigabit and fails, falling
baco to the AR9331 assuming a 10mbit half-duplex link.  This has been
observed quite frequently with the Carambola2 and gigabit capable
switches.

In ath79_register_eth(), "pdata->has_gbit = 1;" is set unconditionally
for both AR9331 ethernet ports. This is most likely wrong. Despite the
two MAC IP cores being gigabit MACs, the MAC for eth1 is connected to a
100base-T PHY via MII. The has_gbit attribute is used in the ethernet
driver to determine the supported link modes.

So either pdata->has_gbit is not set to 1 anymore, or the ethernet
driver needs to be modified to determine the advertised link code word
on another criteria than pdata->has_gbit.  This patch implements the
former solution.

Signed-off-by: Harald Welte <laforge@gnumonks.org>

Backport of r42432

git-svn-id: svn://svn.openwrt.org/openwrt/branches/barrier_breaker@42434 3c298f89-4303-0410-b956-a3cf2f4a3e73
2014-09-07 09:46:41 +00:00
..
ar7 ar7: backport r42168 2014-08-16 17:35:13 +00:00
ar71xx ath79: dev-eth: Don't advertise 1gbit in link code word on ar9331 2014-09-07 09:46:41 +00:00
at91 create branch for barrier breaker (from trunk r41863) 2014-07-28 23:18:57 +00:00
atheros BB: remove all kernel versions except for 3.10 2014-07-29 10:25:43 +00:00
au1000 au1000: fix copy pasta failure 2014-08-01 10:36:16 +00:00
avr32 create branch for barrier breaker (from trunk r41863) 2014-07-28 23:18:57 +00:00
brcm47xx brcm47xx: image: build alternative TRX using less optimized LZMA 2014-09-01 13:21:42 +00:00
brcm63xx BB: remove all kernel versions except for 3.10 2014-07-29 10:25:43 +00:00
brcm2708 create branch for barrier breaker (from trunk r41863) 2014-07-28 23:18:57 +00:00
cns3xxx cns3xxx: support isolated PCI interrupts on newer Laguna PCBs 2014-09-02 17:12:34 +00:00
cns21xx create branch for barrier breaker (from trunk r41863) 2014-07-28 23:18:57 +00:00
generic BB: netfilter: consider reply direction on selective flushing 2014-08-10 10:17:03 +00:00
imx6 BB: remove all kernel versions except for 3.10 2014-07-29 10:25:43 +00:00
ixp4xx create branch for barrier breaker (from trunk r41863) 2014-07-28 23:18:57 +00:00
kirkwood BB: remove all kernel versions except for 3.10 2014-07-29 10:25:43 +00:00
lantiq lantiq: BTHOMEHUBV2B use bigger mtd partition for kernel 2014-09-01 13:22:02 +00:00
malta BB: remove all kernel versions except for 3.10 2014-07-29 10:25:43 +00:00
mpc85xx create branch for barrier breaker (from trunk r41863) 2014-07-28 23:18:57 +00:00
octeon octeon: add missing gpio_to_irq() 2014-08-07 09:55:11 +00:00
orion orion: fix 3.10 kernel minor version 2014-07-31 23:41:23 +00:00
ppc40x create branch for barrier breaker (from trunk r41863) 2014-07-28 23:18:57 +00:00
ramips ramips: fix switch config for Edimax 3G-6200n 2014-09-01 13:22:14 +00:00
rb532 create branch for barrier breaker (from trunk r41863) 2014-07-28 23:18:57 +00:00
realview BB: remove all kernel versions except for 3.10 2014-07-29 10:25:43 +00:00
uml create branch for barrier breaker (from trunk r41863) 2014-07-28 23:18:57 +00:00
x86 kernel: remove more subtargets with the wrong kernel version or which are marked broken 2014-07-29 10:55:37 +00:00
xburst create branch for barrier breaker (from trunk r41863) 2014-07-28 23:18:57 +00:00
Makefile create branch for barrier breaker (from trunk r41863) 2014-07-28 23:18:57 +00:00