1. 19 11月, 2009 1 次提交
    • J
      iwlwifi: handle unicast PS buffering · 6ab10ff8
      Johannes Berg 提交于
      Using the new mac80211 functionality, this makes
      iwlwifi handle unicast PS buffering correctly.
      The device works like this:
      
       * when a station goes to sleep, the microcode notices
         this and marks the station as asleep
       * when the station is marked asleep, the microcode
         refuses to transmit to the station and rejects all
         frames queued to it with the failure status code
         TX_STATUS_FAIL_DEST_PS (a previous patch handled
         this correctly)
       * when we need to send frames to the station _although_
         it is asleep, we need to tell the ucode how many,
         and this is asynchronous with sending so we cannot
         just send the frames, we need to wait for all other
         frames to be flushed, and then update the counter
         before sending out the poll response frames. This
         is handled partially in the driver and partially in
         mac80211.
      
      In order to do all this correctly, we need to
       * keep track of how many frames are pending for each
         associated client station (avoid doing it for other
         stations to avoid the atomic ops)
       * tell mac80211 that we driver-block the PS status
         while there are still frames pending on the queues,
         and once they are all rejected (due to the dest sta
         being in PS) unblock mac80211
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NReinette Chatre <reinette.chatre@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      6ab10ff8
  2. 03 11月, 2009 1 次提交
  3. 04 6月, 2009 1 次提交
  4. 06 3月, 2009 1 次提交
  5. 30 1月, 2009 2 次提交
  6. 13 12月, 2008 1 次提交
  7. 26 11月, 2008 2 次提交
  8. 01 7月, 2008 1 次提交
  9. 15 6月, 2008 1 次提交
  10. 04 6月, 2008 2 次提交
  11. 22 5月, 2008 2 次提交
  12. 08 5月, 2008 2 次提交
  13. 17 4月, 2008 4 次提交
  14. 09 4月, 2008 1 次提交
  15. 02 4月, 2008 1 次提交