1. 24 1月, 2012 1 次提交
  2. 18 1月, 2012 1 次提交
  3. 13 1月, 2012 1 次提交
    • T
      ath6kl: Add support for uAPSD · c1762a3f
      Thirumalai Pachamuthu 提交于
      * A new APSD power save queue is added in the station structure.
      * When a station has APSD capability and goes to power save, the frame
        designated to the station will be buffered in APSD queue.
      * When the host receives a frame which the firmware marked as trigger,
        host delivers the buffered frame from the APSD power save queue.
        Number of frames to deliver is decided by MAX SP length.
      * When a station moves from sleep to awake state, all frames buffered
        in APSD power save queue are sent to the firmware.
      * When a station is disconnected, all frames bufferes in APSD power save
        queue are dropped.
      * When the host queues the first frame to the APSD queue or removes the
        last frame from the APSD queue, it is indicated to the firmware using
        WMI_AP_APSD_BUFFERED_TRAFFIC_CMD.
      
      kvalo: fix buggy handling of sks queues, made it more obvious
      the user priority when wmm is disabled, remove unneed else block and
      combined some variable declarations
      Signed-off-by: NThirumalai Pachamuthu <tpachamu@qca.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      c1762a3f
  4. 03 1月, 2012 2 次提交
  5. 16 11月, 2011 1 次提交
  6. 13 11月, 2011 2 次提交
    • V
      ath6kl: Fix packet drop when ath6kl_cookie runs out · 901db39c
      Vasanthakumar Thiagarajan 提交于
      "ath6kl: Maintain virtual interface in a list" mistakenly stops the
      netq only when the mode is ibss. This causes packet drops in sta mode
      when the available cookies (buffer abstraction in ath6kl and also used
      for tx throttling) runs out for the highest priority traffic. This patch
      just fixes this regression though the original code may still need fixes
      which can be addressed in separate patches.
      Reported-by: NKalle Valo <kvalo@qca.qualcomm.com>
      Signed-off-by: NVasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      901db39c
    • V
      ath6kl: Fix accessing wrong skb->data in ath6kl_tx_complete() · f3803eb2
      Vasanthakumar Thiagarajan 提交于
      When buffer alignmnet is applied, the data pointer of skb taken from
      cookie will no longer point to the first byte of the actual data.
      But the skb->data pointer is used in ath6kl_tx_complete() to get
      the index of the virtual interface which will not give the correct
      interface index and sometimes may give the following WARN_ON() message.
      Use packet->buf instead of skb->data to fix this.
      
      WARNING: at drivers/net/wireless/ath/ath6kl/wmi.c:88 ath6kl_get_vif_by_index+0x5b/0x60 [ath6kl]()
      Hardware name: 2842K3U
      Modules linked in: ath6kl mmc_block cfg80211 binfmt_misc ppdev nfs nfsd lockd nfs_acl auth_rpcgss sunrpc exportfs snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_intel
      +snd_hda_codec snd_hwdep snd_pcm_oss snd_mixer_oss snd_pcm snd_seq_dummy thinkpad_acpi snd_seq_oss snd_seq_midi snd_rawmidi joydev fbcon tileblit font bitblit softcursor
      +snd_seq_midi_event snd_seq snd_timer snd_seq_device i915 uvcvideo drm_kms_helper drm psmouse serio_raw snd i2c_algo_bit sdhci_pci videodev intel_agp soundcore intel_gtt jmb38x_ms
      +memstick sdhci snd_page_alloc nvram lp parport agpgart video ahci r8169 mii libahci [last unloaded: ath6kl]
      Pid: 15482, comm: kworker/u:1 Tainted: G        W   3.1.0-rc10-wl+ #2
      Call Trace:
       [<c0144d72>] warn_slowpath_common+0x72/0xa0
       [<fb7c94fb>] ? ath6kl_get_vif_by_index+0x5b/0x60 [ath6kl]
       [<fb7c94fb>] ? ath6kl_get_vif_by_index+0x5b/0x60 [ath6kl]
       [<c0144dc2>] warn_slowpath_null+0x22/0x30
       [<fb7c94fb>] ath6kl_get_vif_by_index+0x5b/0x60 [ath6kl]
       [<fb7c7028>] ath6kl_tx_complete+0x128/0x4d0 [ath6kl]
       [<c04df920>] ? mmc_request_done+0x80/0x80
       [<fb7b9e2e>] htc_tx_complete+0x5e/0x70 [ath6kl]
       [<c05e4cf6>] ? _raw_spin_unlock_bh+0x16/0x20
       [<fb7ce588>] ? ath6kl_sdio_scatter_req_add+0x48/0x60 [ath6kl]
       [<fb7b9f42>] htc_async_tx_scat_complete+0xb2/0x120 [ath6kl]
       [<fb7ce9e7>] ath6kl_sdio_scat_rw+0x87/0x370 [ath6kl]
       [<c0101e12>] ? __switch_to+0xd2/0x190
       [<c01397b5>] ? finish_task_switch+0x45/0xd0
       [<c05e272e>] ? __schedule+0x3ae/0x8b0
       [<fb7cf00a>] ath6kl_sdio_write_async_work+0x4a/0xf0 [ath6kl]
       [<c015d266>] process_one_work+0x116/0x3c0
       [<fb7cefc0>] ? ath6kl_sdio_read_write_sync+0xb0/0xb0 [ath6kl]
       [<c015f5b0>] worker_thread+0x140/0x3b0
       [<c015f470>] ? manage_workers+0x1f0/0x1f0
       [<c0163424>] kthread+0x74/0x80
       [<c01633b0>] ? kthread_worker_fn+0x160/0x160
       [<c05ebdc6>] kernel_thread_helper+0x6/0x10
      Reported-by: NAarthi Thiruvengadam <athiruve@qca.qualcomm.com>
      Signed-off-by: NVasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      f3803eb2
  7. 11 11月, 2011 16 次提交
  8. 29 9月, 2011 1 次提交
    • K
      ath6kl: add prefix parameter to ath6kl_dbg_dump() · ef094103
      Kalle Valo 提交于
      Makes it easier to recognise longs dumps.
      
      Obligatory screenshot using "rx" prefix:
      
      ath6kl: ath6kl_rx
      rx 00000000: 10 10 00 00 00 00 08 30 00 00 00 00 00 00 f9 0b  .......0........
      rx 00000010: 2c 44 08 30 00 00 f9 0b 0c a4 02 00 00 00 73 d2  ,D.0..........s.
      rx 00000020: 94 00 f9 0b 04 8c 01 00 02 00 07 02 02 00 f9 0b  ................
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      ef094103
  9. 28 9月, 2011 1 次提交
    • J
      ath6kl: fix TCP corruption · 00b1edf1
      Jouni Malinen 提交于
      Commit 94e532d1 ("ath6kl: Fix system freeze under heavy data load")
      aligns the skb data without checking if the skb is cloned. Because of
      this ath6kl can corrupt the local TCP stack information that can result
      in TCP retransmission failing and TCP connections stalling.
      
      To avoid the corruption we need to copy the skb. Now the alignment
      in ath6kl_htc_tx_buf_align() doesn't corrupt TCP packets anymore (and is
      not even used for the cloned skb's that got copied since the alignment
      of the data is handled at the copy time).
      Signed-off-by: NJouni Malinen <jouni@qca.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      00b1edf1
  10. 23 9月, 2011 1 次提交
    • K
      ath6kl: pass only unicast frames for aggregation · 5694f962
      Kalle Valo 提交于
      When pinging form ar6003 to the AP RTT was high even when power save was
      disabled:
      
      100 packets transmitted, 97 received, 3% packet loss, time 99125ms
      rtt min/avg/max/mdev = 1.875/46.733/795.506/139.181 ms
      
      After some investigation one reason for this was that received
      multicast traffic confused the aggrecation logic and caused 400 ms
      timeouts when receiving multicast frames from AP.
      
      A simple way to fix is to pass only unicast frames for aggregation. This
      improves RTT:
      
      100 packets transmitted, 99 received, 1% packet loss, time 99144ms
      rtt min/avg/max/mdev = 2.083/13.084/403.390/56.794 ms
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      5694f962
  11. 31 8月, 2011 7 次提交
  12. 10 8月, 2011 3 次提交
    • K
      ath6kl: fix function name conflicts with ath9k · ad226ec2
      Kalle Valo 提交于
      Stephen reported that compilation fails if both ath6kl and ath9k are
      compiled in:
      
      drivers/net/wireless/ath/ath6kl/built-in.o: In function `htc_start':
      (.opd+0x600): multiple definition of `htc_start'
      drivers/net/wireless/ath/ath9k/built-in.o:(.opd+0x3e40): first defined here
      drivers/net/wireless/ath/ath6kl/built-in.o: In function `.htc_stop':
      (.text+0x7b40): multiple definition of `.htc_stop'
      drivers/net/wireless/ath/ath9k/built-in.o:(.text+0x67b34): first defined he=
      re
      drivers/net/wireless/ath/ath6kl/built-in.o: In function `.htc_start':
      (.text+0x7d18): multiple definition of `.htc_start'
      drivers/net/wireless/ath/ath9k/built-in.o:(.text+0x67ba0): first defined he=
      re
      drivers/net/wireless/ath/ath6kl/built-in.o: In function `htc_stop':
      (.opd+0x5e8): multiple definition of `htc_stop'
      drivers/net/wireless/ath/ath9k/built-in.o:(.opd+0x3e28): first defined here
      
      To fix this add ath6kl prefix to all public functions in htc.c.
      Reported-by: NStephen Rothwell <sfr@canb.auug.org.au>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      ad226ec2
    • K
      ath6kl: change aggreation timeout message from an error to a debug message · 37ca6335
      Kalle Valo 提交于
      When I connect to my Linksys WT610N AP supporting 11n I see a lot of
      aggreation timeout errors:
      
      [  408.885053] ath6kl: aggr timeout (st 3109 end 3140)
      [  463.872108] ath6kl: aggr timeout (st 3671 end 3702)
      [  495.010060] ath6kl: aggr timeout (st 3983 end 4014)
      [  503.604047] ath6kl: aggr timeout (st 4065 end 0)
      [  518.963047] ath6kl: aggr timeout (st 141 end 172)
      [  525.014066] ath6kl: aggr timeout (st 205 end 236)
      [  573.957051] ath6kl: aggr timeout (st 701 end 732)
      [  585.019067] ath6kl: aggr timeout (st 816 end 847)
      
      But still the connection seems to work. To not clutter the logs change
      the error message to a debug message. But add a fixme comment so that
      this will be investigated.
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      37ca6335
    • K
      Add ath6kl cleaned up driver · bdcd8170
      Kalle Valo 提交于
      Last May we started working on cleaning up ath6kl driver which is
      currently in staging. The work has happened in a separate
      ath6kl-cleanup tree:
      
      http://git.kernel.org/?p=linux/kernel/git/kvalo/ath6kl-cleanup.git;a=summary
      
      After over 1100 (!) patches we have now reached a state where I would
      like to start discussing about pushing the driver to the wireless
      trees and replacing the staging driver.
      
      The driver is now a lot smaller and looks like a proper Linux driver.
      The size of the driver (measured with simple wc -l) dropped from 49
      kLOC to 18 kLOC and the number of the .c and .h files dropped from 107
      to 22. Most importantly the number of subdirectories reduced from 26
      to zero :)
      
      There are two remaining checkpatch warnings in the driver which we
      decided to omit for now:
      
      drivers/net/wireless/ath/ath6kl/debug.c:31:
        WARNING: printk() should include KERN_ facility level
      drivers/net/wireless/ath/ath6kl/sdio.c:527:
        WARNING: msleep < 20ms can sleep for up to 20ms;
        see Documentation/timers/timers-howto.txt
      
      The driver has endian annotations for all the hardware specific
      structures and there are no sparse errors. Unfortunately I don't have
      any big endian hardware to test that right now.
      
      We have been testing the driver both on x86 and arm platforms. The
      code is also compiled with sparc and parisc cross compilers.
      
      Notable missing features compared to the current staging driver are:
      
      o HCI over SDIO support
      o nl80211 testmode
      o firmware logging
      o suspend support
      
      Testmode, firmware logging and suspend support will be added soon. HCI
      over SDIO support will be more difficult as the HCI driver needs to
      share code with the wifi driver. This is something we need to research
      more.
      
      Also I want to point out the changes I did for signed endian support.
      As I wasn't able to find any support for signed endian annotations I
      decided to follow what NTFS has done and added my own. Grep for sle16
      and sle32, especially from wmi.h.
      
      Various people have been working on the cleanup, the hall of
      fame based on number of patches is:
      
         543  Vasanthakumar Thiagarajan
         403  Raja Mani
         252  Kalle Valo
          16  Vivek Natarajan
          12  Suraj Sumangala
           3  Joe Perches
           2  Jouni Malinen
      Signed-off-by: NVasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
      Signed-off-by: NRaja Mani <rmani@qca.qualcomm.com>
      Signed-off-by: NVivek Natarajan <nataraja@qca.qualcomm.com>
      Signed-off-by: NSuraj Sumangala <surajs@qca.qualcomm.com>
      Signed-off-by: NJoe Perches <joe@perches.com>
      Signed-off-by: NJouni Malinen <jouni@qca.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      bdcd8170