Skip to content
  • nbd's avatar
    ath79: dev-eth: Don't advertise 1gbit in link code word on ar9331 · a2a0b9f4
    nbd authored
    
    
    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: default avatarHarald Welte <laforge@gnumonks.org>
    
    Backport of r42432
    
    git-svn-id: svn://svn.openwrt.org/openwrt/branches/barrier_breaker@42434 3c298f89-4303-0410-b956-a3cf2f4a3e73
    a2a0b9f4