Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 2 Nov 2010 23:35:08 +0000 (UTC)
From:      Pyun YongHyeon <yongari@FreeBSD.org>
To:        cvs-src-old@freebsd.org
Subject:   cvs commit: src/sys/dev/bge if_bge.c if_bgereg.h
Message-ID:  <201011022335.oA2NZS2a029334@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
yongari     2010-11-02 23:35:08 UTC

  FreeBSD src repository

  Modified files:        (Branch: RELENG_8)
    sys/dev/bge          if_bge.c if_bgereg.h 
  Log:
  SVN rev 214704 on 2010-11-02 23:35:08Z by yongari
  
  MFC r213485,213710,213812:
  r213485:
    Overhaul MII register access routine and remove unnecessary
    BGE_MI_MODE register accesses. Previously bge(4) used to read
    BGE_MI_MODE register to detect whether it needs to disable
    autopolling feature or not. Because we don't touch autopolling in
    other part of driver there is no reason to read BGE_MI_MODE
    register given that we know default value in advance. In order to
    achieve the goal, check whether the controller has CPMU(Central
    Power Mangement Unit) capability. If controller has CPMU feature,
    use 500KHz MII management interface(mdio/mdc) frequency regardless
    core clock frequency. Otherwise use default MII clock. While I'm
    here, add CPMU register definition.
  
    In bge_miibus_readreg(), rearrange code a bit and remove goto
    statement. In bge_miibus_writereg(), make sure to restore
    autopolling even if MII write failed. The delay time inserted after
    accessing BGE_MI_MODE register increased from 40us to 80us.
  
    The default PHY address is now stored in softc. All PHYs supported
    by bge(4) currently uses PHY address 1 but it will be changed when
    we add newer controllers. This change will make it easier to change
    default PHY address depending on PHY models.
  
    Submitted by: davidch
  
  r213710:
    Remove one last reference of BGE_MI_MODE register for auto polling.
    Previously bge(4) always enabled auto polling for non-BGE_FLAG_TBI
    controllers. With this change, auto polling is not used anymore so
    polling through mii(4) was introduced.
  
    Reviewed by:  davidch
  
  r213812:
    Fix a regression introduced in r213710. r213710 removed the use of
    auto polling such that it made all controllers obtain link status
    information from the state of the LNKRDY input signal. Broadcom
    recommends disabling auto polling such that driver should rely on
    PHY interrupts for link status change indications. Unfortunately it
    seems some controllers(BCM5703, BCM5704 and BCM5705) have PHY
    related issues so Linux took other approach to workaround it.
    bge(4) didn't follow that and it used to enable auto polling to
    workaround it. Restore this old behavior for BCM5700 family
    controllers and BCM5705 to use auto polling. For BCM5700 and
    BCM5701, it seems it does not need to enable auto polling but I
    restored it for safety.
    Special thanks to marius who tried lots of patches with patience.
  
    Reported by:  marius
    Tested by:    marius
  
  Revision    Changes    Path
  1.226.2.39  +65 -44    src/sys/dev/bge/if_bge.c
  1.83.2.21   +51 -0     src/sys/dev/bge/if_bgereg.h



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201011022335.oA2NZS2a029334>