1. 06 6月, 2012 1 次提交
  2. 05 6月, 2012 1 次提交
  3. 12 4月, 2012 4 次提交
  4. 28 2月, 2012 1 次提交
    • A
      wl12xx: set the ELP entry delay to the FW dyn-ps timeout · 5af70c86
      Arik Nemtsov 提交于
      With PSM handled in FW, the checks in wl1271_elp_work() are always true.
      Thus during active traffic we constantly enter and exit ELP (many times
      per second). As each ELP exit takes ~10ms, this can have an adverse
      effect on throughput and interactivity.
      Set the ELP timeout to the dyn-ps timeout. This period is longer and
      avoids the above problem. It also makes sense to stay out of ELP while
      we are awake on the network, to minimize delays in Tx/Rx. The same thing
      was done by the mac80211 dynamic-ps mechanism before the FW DPS changes.
      Signed-off-by: NArik Nemtsov <arik@wizery.com>
      Signed-off-by: NLuciano Coelho <coelho@ti.com>
      5af70c86
  5. 15 2月, 2012 6 次提交
  6. 21 12月, 2011 1 次提交
  7. 08 11月, 2011 1 次提交
  8. 11 10月, 2011 4 次提交
  9. 07 10月, 2011 1 次提交
  10. 14 9月, 2011 1 次提交
  11. 22 8月, 2011 1 次提交
  12. 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
  13. 27 6月, 2011 3 次提交
  14. 02 5月, 2011 1 次提交
    • E
      wl12xx: avoid premature elp entrance · a665d6e2
      Eliad Peller 提交于
      The elp_work is being enqueued on wl1271_ps_elp_sleep, but doesn't get
      cancelled on wl1271_ps_elp_wakeup. This might cause immediate entrance
      to elp when the wl->mutex is being released, rather than using the delayed
      enqueueing optimization.
      
      Cancel elp_work on wakeup request, and add a new WL1271_FLAG_ELP_REQUESTED
      flag to further synchronize the elp actions.
      
      [Fixed a couple of typos in some comments -- Luca]
      Signed-off-by: NEliad Peller <eliad@wizery.com>
      Signed-off-by: NLuciano Coelho <coelho@ti.com>
      a665d6e2
  15. 19 4月, 2011 1 次提交
    • E
      wl12xx: rearrange some ELP wake_up/sleep calls · c1b193eb
      Eliad Peller 提交于
      ELP (Extremely/Enhanced Low Power, or something like that ;)) refers to
      the powerstate of the 12xx chip, in which very low power is consumed,
      and no commands (from the host) can be issued until the chip is woken up.
      
      Wakeup/sleep commands must be protected by a wl->mutex, so it's generally
      a good idea to call wakeup/sleep along with the mutex lock/unlock (where
      needed). However, in some places the wl12xx driver calls wakeup/sleep in
      some "inner" functions. This result in some "nested" wakeup/sleep calls
      which might end up letting the chip go to sleep prematurely (e.g. during
      event handling).
      
      Fix it by rearranging the elp calls to come along with mutex_lock/unlock.
      Signed-off-by: NEliad Peller <eliad@wizery.com>
      Signed-off-by: NIdo Yariv <ido@wizery.com>
      Signed-off-by: NLuciano Coelho <coelho@ti.com>
      c1b193eb
  16. 03 3月, 2011 1 次提交
    • I
      wl12xx: Switch to a threaded interrupt handler · a620865e
      Ido Yariv 提交于
      To achieve maximal throughput, it is very important to react to
      interrupts as soon as possible. Currently the interrupt handler wakes up
      a worker for handling interrupts in process context. A cleaner and more
      efficient design would be to request a threaded interrupt handler.  This
      handler's priority is very high, and can do blocking operations such as
      SDIO/SPI transactions.
      
      Some work can be deferred, mostly calls to mac80211 APIs
      (ieee80211_rx_ni and ieee80211_tx_status). By deferring such work to a
      different worker, we can keep the irq handler thread more I/O
      responsive. In addition, on multi-core systems the two threads can be
      scheduled on different cores, which will improve overall performance.
      
      The use of WL1271_FLAG_IRQ_PENDING & WL1271_FLAG_IRQ_RUNNING was
      changed. For simplicity, always query the FW for more pending
      interrupts. Since there are relatively long bursts of interrupts, the
      extra FW status read overhead is negligible. In addition, this enables
      registering the IRQ handler with the ONESHOT option.
      Signed-off-by: NIdo Yariv <ido@wizery.com>
      Reviewed-by: NLuciano Coelho <coelho@ti.com>
      Signed-off-by: NLuciano Coelho <coelho@ti.com>
      a620865e
  17. 23 2月, 2011 2 次提交
    • A
      wl12xx: AP-mode - management of links in PS-mode · b622d992
      Arik Nemtsov 提交于
      Update the PS mode of each link according to a bitmap polled from
      fw_status. Manually notify mac80211 about PS mode changes in connected
      stations.
      
      mac80211 will only be notified about PS start when the station is in PS
      and there is a small number of TX blocks from this link ready in HW.
      This is required for waking up the remote station since the TIM is
      updated entirely by FW.
      
      When a station enters mac80211-PS-mode, we drop all the skbs in the
      low-level TX queues belonging to this sta with STAT_TX_FILTERED
      to keep our queues clean.
      Signed-off-by: NArik Nemtsov <arik@wizery.com>
      Signed-off-by: NLuciano Coelho <coelho@ti.com>
      b622d992
    • A
      wl12xx: AP-mode - count free FW TX blocks per link · 09039f42
      Arik Nemtsov 提交于
      Count the number of FW TX blocks allocated per link. We add blocks to a
      link counter when allocated for a TX descriptor. We remove blocks
      according to counters in fw_status indicating the number of freed blocks
      in FW. These counters are polled after each IRQ.
      Signed-off-by: NArik Nemtsov <arik@wizery.com>
      Signed-off-by: NLuciano Coelho <coelho@ti.com>
      09039f42
  18. 09 2月, 2011 1 次提交
  19. 22 11月, 2010 1 次提交
  20. 28 9月, 2010 4 次提交
  21. 10 4月, 2010 1 次提交
  22. 10 3月, 2010 1 次提交
  23. 20 2月, 2010 1 次提交