1. 13 6月, 2013 1 次提交
  2. 09 8月, 2011 4 次提交
  3. 22 7月, 2011 1 次提交
  4. 21 7月, 2011 1 次提交
    • P
      ath5k: merge ath5k_hw and ath5k_softc · e0d687bd
      Pavel Roskin 提交于
      Both ath5k_hw and ath5k_softc represent one instance of the hardware.
      This duplication is historical and is not needed anymore.
      
      Keep the name "ath5k_hw" for the merged structure and "ah" for the
      variable pointing to it.  "ath5k_hw" is shorter than "ath5k_softc", more
      descriptive and more widely used.
      
      Put the combined structure to ath5k.h where the old ath5k_softc used to
      be. Move some code from base.h to ath5k.h as needed.
      
      Remove memory allocation for struct ath5k_hw and the corresponding error
      handling.  Merge iobase and ah_iobase fields.
      Signed-off-by: NPavel Roskin <proski@gnu.org>
      Acked-by: NNick Kossifidis <mickflemm@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      e0d687bd
  5. 12 7月, 2011 1 次提交
  6. 08 7月, 2011 3 次提交
  7. 15 4月, 2011 1 次提交
  8. 13 4月, 2011 1 次提交
  9. 12 3月, 2011 1 次提交
  10. 08 3月, 2011 1 次提交
  11. 22 1月, 2011 2 次提交
  12. 17 12月, 2010 1 次提交
    • B
      ath5k: Fix survey · f15a4bb2
      Bruno Randolf 提交于
      The old survey implementation was broken and returned nonsense data.
      
      Clear cycle counters and survey data on reset. Since the cycle counters easily
      overflow it's better to keep a local version of collected survey data (in ms
      resolution, instead of clockrate) and update this every time survey is
      retrieved. If survey is retrieved often enough to avoid cycle counter overflows
      this works fine, otherwise we could update survey more often, like ath9k does.
      Still only the survey for the current channel is kept.
      Signed-off-by: NBruno Randolf <br1@einfach.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      f15a4bb2
  13. 03 12月, 2010 2 次提交
  14. 06 10月, 2010 2 次提交
  15. 21 9月, 2010 3 次提交
  16. 15 7月, 2010 2 次提交
    • B
      ath5k: clean up rxlink handling · b3f194e5
      Bruno Randolf 提交于
      There were a few places where the sc->rxlink pointer was set to NULL "just in
      case". This helps nothing - quite to the contrary it is problematic since it
      can create self-linked rx descriptors in the middle of the list of receive
      buffers.
      
      Here is an example how this could happen (thanks Bob!):
      
      cpu 0:                                      cpu 1:
      
      ath5k_rx_stop
                                                  ath5k_tasklet_rx
      sc->rxlink = NULL;   /* just in case */
                                                    // following doesn't link used
                                                    // buffer to prev.
                                                    ath5k_rxbuf_setup()
      
      In the case of ath5k_rx_stop() and ath5k_stop_locked() buffers/descriptors are
      not changed so rxlink should not be changed as well.
      
      In ath5k_intr() we seem to  try to work around a hardware bug, as the comment
      (which is copied 1:1 from the HAL) suggests. I don't see how this could help.
      Also the HAL does not set rxlink in this case (So where does this code come
      from? It has been there since the first import of ath5k). Changed to just
      increment a statistics counter.
      
      After this patch rxlink is only set to NULL before we initialize rx descriptors
      and updated when the descriptors are linked together.
      Signed-off-by: NBruno Randolf <br1@einfach.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      b3f194e5
    • B
      ath5k: move reset to mac80211 workqueue · 5faaff74
      Bob Copeland 提交于
      We currently trigger a reset via a tasklet when certain error
      conditions are detected so that the card will (eventually)
      restart.  Unfortunately this makes locking complicated since
      reset can also be called in process context (e.g. for channel
      change).  Currently nothing protects against concurrent resets,
      which can be the source of corruption bugs.
      
      Reset takes too long to spinlock the whole thing, so this
      patch moves deferred resets into the mac80211 workqueue to
      enable use of sc->lock mutex.
      Signed-off-by: NBob Copeland <me@bobcopeland.com>
      Acked-by: NBruno Randolf <br1@einfach.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      5faaff74
  17. 15 4月, 2010 1 次提交
    • B
      ath5k: treat RXORN as non-fatal · 87d77c4e
      Bruno Randolf 提交于
      We get RXORN interrupts when all receive buffers are full. This is not
      necessarily a fatal situation. It can also happen when the bus is busy or the
      CPU is not fast enough to process all frames.
      
      Older chipsets apparently need a reset to come out of this situration, but on
      newer chips we can treat RXORN like RX, as going thru a full reset does more
      harm than good, there.
      
      The exact chip revisions which need a reset are unknown - this guess
      AR5K_SREV_AR5212 ("venice") is copied from the HAL.
      
      Inspired by openwrt 413-rxorn.patch:
      "treat rxorn like rx, reset after rxorn seems to do more harm than good"
      Signed-off-by: NBruno Randolf <br1@einfach.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      87d77c4e
  18. 08 4月, 2010 1 次提交
    • B
      ath5k: Adaptive Noise Immunity (ANI) Implementation · 2111ac0d
      Bruno Randolf 提交于
      This is an Adaptive Noise Imunity (ANI) implementation for ath5k. I have looked
      at both ath9k and HAL sources (they are nearly the same), and even though i
      have implemented some things differently, the basic algorithm is practically
      the same, for now. I hope that this can serve as a clean start to improve the
      algorithm later.
      
      This also adds a possibility to manually control ANI settings, right now only
      thru a debugfs file:
        * set lowest sensitivity (=highest noise immunity):
      	echo sens-low > /sys/kernel/debug/ath5k/phy0/ani
        * set highest sensitivity (=lowest noise immunity):
      	echo sens-high > /sys/kernel/debug/ath5k/phy0/ani
        * automatically control immunity (default):
      	echo ani-on > /sys/kernel/debug/ath5k/phy0/ani
        * to see the parameters in use and watch them change:
      	cat /sys/kernel/debug/ath5k/phy0/ani
      
      Manually setting sensitivity will turn the automatic control off. You can also
      control each of the five immunity parameters (noise immunity, spur immunity,
      firstep, ofdm weak signal detection, cck weak signal detection) manually thru
      the debugfs file.
      
      This is tested on AR5414 and nearly doubles the thruput in a noisy 2GHz band.
      Signed-off-by: NBruno Randolf <br1@einfach.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      2111ac0d
  19. 01 4月, 2010 2 次提交
  20. 11 3月, 2010 2 次提交
  21. 09 2月, 2010 1 次提交
  22. 05 12月, 2009 1 次提交
  23. 04 12月, 2009 1 次提交
  24. 12 11月, 2009 1 次提交
  25. 08 10月, 2009 2 次提交
  26. 20 8月, 2009 1 次提交