Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 22 Dec 2009 23:57:10 +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:  <200912222357.nBMNvPQo095869@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
yongari     2009-12-22 23:57:10 UTC

  FreeBSD src repository

  Modified files:
    sys/dev/ste          if_ste.c if_stereg.h 
  Log:
  SVN rev 200884 on 2009-12-22 23:57:10Z by yongari
  
  Reimplement Tx status error handler as recommended by datasheet.
  If ste(4) encounter TX underrun or excessive collisions the TX MAC
  of controller is stalled so driver should wake it up again. TX
  underrun requires increasing TX threshold value to minimize
  further TX underruns. Previously ste(4) used to reset controller
  to recover from TX underrun, excessive collision and reclaiming
  error. However datasheet says only TX underrun requires resetting
  entire controller. So implement ste_restart_tx() that restarts TX
  MAC and do not perform full reset except TX underrun case.
  Now ste(4) uses CSR_READ_2 instead of CSR_READ_1 to read
  STE_TX_STATUS register. This way ste(4) will also read frame id
  value and we can write the same value back to STE_TX_FRAMEID
  register instead of overwriting it to 0. The datasheet was wrong
  in write back of STE_TX_STATUS so add some comments why we do so.
  Also always invoke ste_txeoc() after ste_txeof() in ste_poll as
  without reading TX status register can stall TX MAC.
  
  Revision  Changes    Path
  1.18      +71 -21    src/sys/dev/ste/if_ste.c
  1.10      +5 -0      src/sys/dev/ste/if_stereg.h



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