Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 14 Jan 2010 22:18:55 +0000 (UTC)
From:      Pyun YongHyeon <yongari@FreeBSD.org>
To:        cvs-src-old@freebsd.org
Subject:   cvs commit: src/sys/dev/ste if_ste.c if_stereg.h
Message-ID:  <201001142219.o0EMJ6BU028174@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
yongari     2010-01-14 22:18:55 UTC

  FreeBSD src repository

  Modified files:        (Branch: RELENG_7)
    sys/dev/ste          if_ste.c if_stereg.h 
  Log:
  SVN rev 202315 on 2010-01-14 22:18:55Z by yongari
  
  MFC r200904-200908,200910-200913
  
  r200904:
    Don't reinitialize controller if driver is already running. This
    reduces number of link state UP/DOWN changes.
  
  r200905:
    Reimplement controller reset. Datasheet says full reset takes about
    1ms. Since we switched to memory register mapping make sure to
    flush PCI posted write by reading the register again.
    While I'm here add additional delays in loop while driver waits the
    completion of the reset.
  
  r200906:
    Overhaul RX filter programming.
     o Let RX filter handler program promiscuous/multicast filter as
       well as broadcasting.
     o Remove unnecessary register access.
     o Simplify ioctl handler and have set_rxfilter to handle
       IFF_PROMISC and IFF_ALLMULTI change instead of directly
       programming the controller.
     o Removed unnecessary error variable reinitialization in ioctl
       handler.
     o Add IFF_DRV_RUNNING check before programming multicast filter.
     o Configure maximum allowed frame length before enabling MAC.
       Datasheet didn't say the exact ordering of programming sequence
       but it looks more natural to set maximum allowed frame length
       first prior to enabling controller.
  
  r200907:
    Don't report link status if driver is not running.
  
  r200908:
    Report the correct result of mii_mediachg(). Previously it always
    used to return success without respect to the result.
    While I'm here use mii_mediachg() in ste_init_locked which allows
    driver to use currently configured media. ste_ifmedia_upd() is
    supposed to be called whenever user changes current media settings.
  
  r200910:
    Implement hardware MAC statistics counter support. The counters
    could be accessed with dev.ste.0.stats sysctl node.
  
  r200911:
    Remove unused duplicated register definition. It seems the
    definition was made to access STE_ASICCTL register as 16bits but
    ste(4) always access the register as 32bits so it was never used
    before.
  
  r200912:
    Correct STE_COUNTDOWN register offset. The datasheet was wrong.
  
  r200913:
    We don't need to generate DMA complete interrupt for every
    transmitted frames. So request interrupt for every 16th frames. Due
    to the limitation of hardware we can't suppress the interrupt as
    driver should have to check TX status register. The TX status
    register can store up to 31 TX status so driver can't send more
    than 31 frames without reading TX status register.
    With this change controller would not generate TX completion
    interrupt for every frame, so reclaim transmitted frames in
    ste_tick().
  
  Revision  Changes    Path
  1.32.2.7  +223 -93   src/sys/dev/ste/if_ste.c
  1.15.2.7  +43 -35    src/sys/dev/ste/if_stereg.h



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