1. 25 8月, 2011 1 次提交
  2. 22 8月, 2011 2 次提交
  3. 08 7月, 2011 1 次提交
    • A
      wl12xx: start/stop queues according to global per-AC counters · f1a46384
      Arik Nemtsov 提交于
      Split tx_queue_count to count per-AC skb's queued, instead of relying on
      the skb-queue len. The skb queues used were only valid in STA-mode, as
      AP-mode uses per-link queues.
      
      This fixes a major regression in AP-mode, caused by the patch
      "wl12xx: implement Tx watermarks per AC". With that patch applied, we
      effectively had no regulation of Tx queues in AP-mode. Therefore a
      sustained high rate of Tx could cause exhaustion of the skb memory pool.
      Signed-off-by: NArik Nemtsov <arik@wizery.com>
      Signed-off-by: NLuciano Coelho <coelho@ti.com>
      f1a46384
  4. 06 7月, 2011 2 次提交
  5. 02 5月, 2011 1 次提交
    • A
      wl12xx: fix race condition during recovery in AP mode · 7dece1c8
      Arik Nemtsov 提交于
      When operating as AP, the TX queues are not stopped when we start
      recovery. mac80211 is notified only after the fact. When there is
      pending TX, it will be queued even after the FW is down. This leads to
      situations where the TX queues are stopped (because of the TX-watermark
      mechanism), and are never woken up when we return from recovery.
      
      Fix this by explicitly stopping the TX queues when before initiating
      recovery.
      Signed-off-by: NArik Nemtsov <arik@wizery.com>
      Signed-off-by: NLuciano Coelho <coelho@ti.com>
      7dece1c8
  6. 19 4月, 2011 5 次提交
    • I
      wl12xx: Clean up the dummy packet mechanism · 990f5de7
      Ido Yariv 提交于
      The current implementation allocates a skb each time one is requested by
      the firmware. Since dummy packets are handled differently than regular
      packets, the skb needs to be marked. Currently, this is done by
      setting the pkt_type member to 5. This might not be safe, as we cannot
      be sure that there won't be any other packets with this pkt_type value.
      
      Since the packet does not change from one request to another, we can
      simply allocate a dummy packet template and always send it. All changes
      to the skb done during packet preparation must be reverted, so the same
      skb can be reused.
      
      The dummy packets are not transmitted, therefore there's no need to set
      the BSSID or our own MAC address.
      
      In addition, the header portion of the packet was zeroed by mistake, so
      fix that as well.
      Signed-off-by: NIdo Yariv <ido@wizery.com>
      Signed-off-by: NLuciano Coelho <coelho@ti.com>
      990f5de7
    • I
      wl12xx: Clean up the block size alignment code · 0da13da7
      Ido Yariv 提交于
      Simplify and clean up the block size alignment code:
      1. Set the block size according to the padding field type, as it cannot
         exceed the maximum value this field can hold.
      2. Move the alignment code into a function instead of duplicating it in
         multiple places.
      3. In the current implementation, the block_size member can be
         misleading because a zero value actually means that there's no need to
         align. Declare a block size alignment quirk instead.
      Signed-off-by: NIdo Yariv <ido@wizery.com>
      Signed-off-by: NLuciano Coelho <coelho@ti.com>
      0da13da7
    • L
      wl12xx: use 1 spare TX block instead of two · e7ddf549
      Luciano Coelho 提交于
      All the new firmware versions (>=6.1.3.50.58 for STA and >=6.2.0.0.47
      for AP) use 1 spare TX block.  We still want to support older
      firmwares that require 2 spare blocks, so added a quirk to handle the
      difference.
      
      Also implemented a generic way of setting quirks that depend on the
      firmware revision.
      Signed-off-by: NLuciano Coelho <coelho@ti.com>
      e7ddf549
    • S
      wl12xx: 1281/1283 support - Add dummy packet support · ae47c45f
      Shahar Levi 提交于
      Support sending dummy packet to wl128x FW as results of
      dummy packet event. That is part of dynamic TX mem blocks mechanism.
      
      Only send dummy packet when not in AP mode.
      
      [Even though the DUMMY_PACKET_EVENT_ID and the
      STA_REMOVE_COMPLETE_EVENT_ID events are defined to the same value, we
      need to treat them separately in the code.  Keep the check and enable
      STA_REMOVE_COMPLETE_EVENT_ID for AP mode and DUMMY_PACKET_EVENT_ID for
      STA.  Moved one warning to a cleaner place.  Use WL1271_TID_MGMT for
      dummy packets -- Luca]
      Signed-off-by: NShahar Levi <shahar_levi@ti.com>
      Reviewed-by: NLuciano Coelho <coelho@ti.com>
      Signed-off-by: NLuciano Coelho <coelho@ti.com>
      ae47c45f
    • S
      wl12xx: 1281/1283 support - Add acx commands · 48a61477
      Shahar Levi 提交于
      New acx command that sets: Rx fifo enable reduced bus transactions
      in RX path. Tx bus transactions padding to SDIO block size that
      improve preference in Tx and essential for working with SDIO HS (48Mhz).
      The max SDIO block size is 256 when working with Tx bus transactions
      padding to SDIO block.
      
      Add new ops to SDIO & SPI that handles the win size change in case of
      transactions padding (relevant only for SDIO).
      
      [Fix endianess issues; simplify sdio-specific block_size handling;
      minor changes in comments; use "aligned_len" in one calculation
      instead of "pad" to avoid confusion -- Luca]
      Signed-off-by: NShahar Levi <shahar_levi@ti.com>
      Reviewed-by: NLuciano Coelho <coelho@ti.com>
      Signed-off-by: NLuciano Coelho <coelho@ti.com>
      48a61477
  7. 23 2月, 2011 2 次提交
  8. 25 1月, 2011 2 次提交
  9. 22 11月, 2010 1 次提交
  10. 16 11月, 2010 2 次提交
  11. 28 9月, 2010 1 次提交
  12. 03 6月, 2010 2 次提交
  13. 07 4月, 2010 1 次提交
  14. 01 4月, 2010 1 次提交
  15. 24 3月, 2010 1 次提交
  16. 10 3月, 2010 2 次提交
  17. 20 2月, 2010 1 次提交
  18. 28 10月, 2009 1 次提交
    • L
      wl1271: fix endianess issues · d0f63b20
      Luciano Coelho 提交于
      We were not handling endianess correctly.  The wl1271 chip runs on
      little-endian values.  This patch makes sure that all the communication with
      the wl1271 firmware is done in little-endian by using cpu_to_le* and
      le*_to_cpu where appropriate.
      
      Also, all the struct definitions for data exchanged with the firmware has
      been changed to use __le16/32 types instead of u16/32.
      
      This fixes a few sparse warnings, such as these:
      
      drivers/net/wireless/wl12xx/wl1271_cmd.c:554:42: warning: incorrect type in assignment (different base types)
      drivers/net/wireless/wl12xx/wl1271_cmd.c:555:42: warning: incorrect type in assignment (different base types)
      drivers/net/wireless/wl12xx/wl1271_cmd.c:577:58: warning: incorrect type in assignment (different base types)
      drivers/net/wireless/wl12xx/wl1271_cmd.c:579:58: warning: incorrect type in assignment (different base types)
      drivers/net/wireless/wl12xx/wl1271_cmd.c:676:18: warning: incorrect type in assignment (different base types)
      drivers/net/wireless/wl12xx/wl1271_cmd.c:787:22: warning: incorrect type in assignment (different base types)
      drivers/net/wireless/wl12xx/wl1271_cmd.c:789:21: warning: incorrect type in assignment (different base types)
      drivers/net/wireless/wl12xx/wl1271_tx.c:98:47: warning: incorrect type in argument 1 (different base types)
      drivers/net/wireless/wl12xx/wl1271_acx.c:932:32: warning: incorrect type in assignment (different base types)
      drivers/net/wireless/wl12xx/wl1271_boot.c:191:32: warning: incorrect type in argument 1 (different base types)
      drivers/net/wireless/wl12xx/wl1271_boot.c:197:38: warning: incorrect type in argument 1 (different base types)
      drivers/net/wireless/wl12xx/wl1271_boot.c:199:37: warning: incorrect type in argument 1 (different base types)
      drivers/net/wireless/wl12xx/wl1271_init.c:255:40: warning: incorrect type in assignment (different base types)
      drivers/net/wireless/wl12xx/wl1271_init.c:275:53: warning: incorrect type in assignment (different base types)
      Reported-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NLuciano Coelho <luciano.coelho@nokia.com>
      Reviewed-by: NJuuso Oikarinen <juuso.oikarinen@nokia.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      d0f63b20
  19. 14 8月, 2009 1 次提交