1. 28 7月, 2010 4 次提交
  2. 15 6月, 2010 1 次提交
  3. 05 6月, 2010 1 次提交
    • V
      ath9k: Fix bug in rate table · 9e55ba7b
      Vasanthakumar Thiagarajan 提交于
      The following commit added an entry in 11na and 11ng rate
      table but missed to update its rate count field. This
      inconsistency between the rate count and the actual number
      of rates in the table will leave out the final rate entry
      (mcs15 with half gi in ht40) while forming the valid
      rate indices. Not having mcs15+shortGI in ht40 will have
      a performance impact (on max throughput) of about 10% both
      in nght40 and naht40 mode.
      
      	Author: Vasanthakumar Thiagarajan <vasanth@atheros.com>
      	Date:   Thu May 13 18:42:38 2010 -0700
      
          	ath9k: Enable Short GI in 20 Mhz for ar9287 and later chips
      
          	This patch enables short GI rx at all rates and tx at mcs15
          	for 20 Mhz channel width also.
      Signed-off-by: NVasanthakumar Thiagarajan <vasanth@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      9e55ba7b
  4. 03 6月, 2010 1 次提交
  5. 20 4月, 2010 1 次提交
  6. 17 4月, 2010 1 次提交
  7. 30 3月, 2010 1 次提交
    • T
      include cleanup: Update gfp.h and slab.h includes to prepare for breaking... · 5a0e3ad6
      Tejun Heo 提交于
      include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
      
      percpu.h is included by sched.h and module.h and thus ends up being
      included when building most .c files.  percpu.h includes slab.h which
      in turn includes gfp.h making everything defined by the two files
      universally available and complicating inclusion dependencies.
      
      percpu.h -> slab.h dependency is about to be removed.  Prepare for
      this change by updating users of gfp and slab facilities include those
      headers directly instead of assuming availability.  As this conversion
      needs to touch large number of source files, the following script is
      used as the basis of conversion.
      
        http://userweb.kernel.org/~tj/misc/slabh-sweep.py
      
      The script does the followings.
      
      * Scan files for gfp and slab usages and update includes such that
        only the necessary includes are there.  ie. if only gfp is used,
        gfp.h, if slab is used, slab.h.
      
      * When the script inserts a new include, it looks at the include
        blocks and try to put the new include such that its order conforms
        to its surrounding.  It's put in the include block which contains
        core kernel includes, in the same order that the rest are ordered -
        alphabetical, Christmas tree, rev-Xmas-tree or at the end if there
        doesn't seem to be any matching order.
      
      * If the script can't find a place to put a new include (mostly
        because the file doesn't have fitting include block), it prints out
        an error message indicating which .h file needs to be added to the
        file.
      
      The conversion was done in the following steps.
      
      1. The initial automatic conversion of all .c files updated slightly
         over 4000 files, deleting around 700 includes and adding ~480 gfp.h
         and ~3000 slab.h inclusions.  The script emitted errors for ~400
         files.
      
      2. Each error was manually checked.  Some didn't need the inclusion,
         some needed manual addition while adding it to implementation .h or
         embedding .c file was more appropriate for others.  This step added
         inclusions to around 150 files.
      
      3. The script was run again and the output was compared to the edits
         from #2 to make sure no file was left behind.
      
      4. Several build tests were done and a couple of problems were fixed.
         e.g. lib/decompress_*.c used malloc/free() wrappers around slab
         APIs requiring slab.h to be added manually.
      
      5. The script was run on all .h files but without automatically
         editing them as sprinkling gfp.h and slab.h inclusions around .h
         files could easily lead to inclusion dependency hell.  Most gfp.h
         inclusion directives were ignored as stuff from gfp.h was usually
         wildly available and often used in preprocessor macros.  Each
         slab.h inclusion directive was examined and added manually as
         necessary.
      
      6. percpu.h was updated not to include slab.h.
      
      7. Build test were done on the following configurations and failures
         were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my
         distributed build env didn't work with gcov compiles) and a few
         more options had to be turned off depending on archs to make things
         build (like ipr on powerpc/64 which failed due to missing writeq).
      
         * x86 and x86_64 UP and SMP allmodconfig and a custom test config.
         * powerpc and powerpc64 SMP allmodconfig
         * sparc and sparc64 SMP allmodconfig
         * ia64 SMP allmodconfig
         * s390 SMP allmodconfig
         * alpha SMP allmodconfig
         * um on x86_64 SMP allmodconfig
      
      8. percpu.h modifications were reverted so that it could be applied as
         a separate patch and serve as bisection point.
      
      Given the fact that I had only a couple of failures from tests on step
      6, I'm fairly confident about the coverage of this conversion patch.
      If there is a breakage, it's likely to be something in one of the arch
      headers which should be easily discoverable easily on most builds of
      the specific arch.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Guess-its-ok-by: NChristoph Lameter <cl@linux-foundation.org>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>
      5a0e3ad6
  8. 11 3月, 2010 1 次提交
  9. 04 3月, 2010 1 次提交
    • S
      mac80211: Fix HT rate control configuration · 4fa00437
      Sujith 提交于
      Handling HT configuration changes involved setting the channel
      with the new HT parameters and then issuing a rate_update()
      notification to the driver.
      
      This behavior changed after the off-channel changes. Now, the channel
      is not updated with the new HT params in enable_ht() - instead, it
      is now done when the scan work terminates. This results in the driver
      depending on stale information, defaulting to non-HT mode always.
      
      Fix this by passing the new channel type to the driver.
      
      Cc: stable@kernel.org
      Signed-off-by: NSujith <Sujith.Manoharan@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      4fa00437
  10. 20 2月, 2010 1 次提交
    • F
      ath9k: fix rate control fallback rate selection · 5c0ba62f
      Felix Fietkau 提交于
      When selecting the tx fallback rate, rc.c used a separate variable
      'nrix' for storing the next rate index, however it did not use that as
      reference for further rate index lowering. Because of that, it ended up
      reusing the same rate for multiple multi-rate retry stages, thus
      decreasing delivery probability under changing link conditions.
      
      This patch removes the separate (unnecessary) variable and fixes
      fallback the way it was intended to work.
      This should result in increased throughput and better link stability.
      Signed-off-by: NFelix Fietkau <nbd@openwrt.org>
      Cc: stable@kernel.org
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      5c0ba62f
  11. 26 1月, 2010 1 次提交
    • F
      ath9k: improve max rate retry handling · 65896510
      Felix Fietkau 提交于
      ath9k currently forces hw->max_rate_tries to 4 to work around rate
      control inefficiencies. This has some negative side effects, such as
      rate_control_send_low also using a maximum of 4 tries, which could
      negatively affect reliability of unicast management frames.
      This patch pushes the retry limit to the rate control instead, and
      allows it to use more tries on the last stage to prevent unnecessary
      packet loss.
      Signed-off-by: NFelix Fietkau <nbd@openwrt.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      65896510
  12. 04 12月, 2009 1 次提交
  13. 29 11月, 2009 3 次提交
    • L
      ath9k: Fix maximum tx fifo settings for single stream devices · f4709fdf
      Luis R. Rodriguez 提交于
      Atheros single stream AR9285 and AR9271 have half the PCU TX FIFO
      buffer size of that of dual stream devices. Dual stream devices
      have a max PCU TX FIFO size of 8 KB while single stream devices
      have 4 KB. Single stream devices have an issue though and require
      hardware only to use half of the amount of its capable PCU TX FIFO
      size, 2 KB and this requires a change in software.
      
      Technically a change would not have been required (except for frame
      burst considerations of 128 bytes) if these devices would have been
      able to use the full 4 KB of the PCU TX FIFO size but our systems
      engineers recommend 2 KB to be used only. We enforce this through
      software by reducing the max frame triggger level to 2 KB.
      
      Fixing the max frame trigger level should then have a few benefits:
      
        * The PER will now be adjusted as designed for underruns when the
          max trigger level is reached. This should help alleviate the
          bus as the rate control algorithm chooses a slower rate which
          should ensure frames are transmitted properly under high system
          bus load.
      
        * The poll we use on our TX queues should now trigger and work
          as designed for single stream devices. The hardware passes
          data from each TX queue on the PCU TX FIFO queue respecting each
          queue's priority. The new trigger level ensures this seeding of
          the PCU TX FIFO queue occurs as designed which could mean avoiding
          false resets and actually reseting hw correctly when a TX queue
          is indeed stuck.
      
        * Some undocumented / unsupported behaviour could have been triggered
          when the max trigger level level was being set to 4 KB on single
          stream devices. Its not clear what this issue was to me yet.
      
      Cc: Kyungwan Nam <kyungwan.nam@atheros.com>
      Cc: Bennyam Malavazi <bennyam.malavazi@atheros.com>
      Cc: Stephen Chen <stephen.chen@atheros.com>
      Cc: Shan Palanisamy <shan.palanisamy@atheros.com>
      Cc: Paul Shaw <paul.shaw@atheros.com>
      Signed-off-by: NVasanthakumar Thiagarajan <vasanth@atheros.com>
      Signed-off-by: NLuis R. Rodriguez <lrodriguez@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      f4709fdf
    • F
      ath9k: clean up rc rate table · 1fe8234a
      Felix Fietkau 提交于
      Remove some fields from struct ath_rate_table that are now unused.
      Signed-off-by: NFelix Fietkau <nbd@openwrt.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      1fe8234a
    • F
      ath9k: properly use the mac80211 rate control api · 545750d3
      Felix Fietkau 提交于
      This patch changes ath9k to pass proper MCS indexes and flags
      between the RC and the rest of the driver code.
      sc->cur_rate_table remains, as it's used by the RC code internally,
      but the rest of the driver code no longer uses it, so a potential
      new RC for ath9k would not have to update it.
      Signed-off-by: NFelix Fietkau <nbd@openwrt.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      545750d3
  14. 19 11月, 2009 2 次提交
  15. 31 10月, 2009 1 次提交
  16. 08 10月, 2009 3 次提交
  17. 05 8月, 2009 2 次提交
  18. 25 7月, 2009 14 次提交