1. 31 3月, 2010 2 次提交
  2. 10 3月, 2010 1 次提交
  3. 03 3月, 2010 1 次提交
    • J
      iwlwifi: load firmware asynchronously before mac80211 registration · b08dfd04
      Johannes Berg 提交于
      At the wireless summit in Portland we discussed a way of
      loading firmware asynchronously from ->probe() before
      registration to mac80211, in order to register with the
      wireless subsystems with complete information in cases
      where firmware is required to know parameters.
      
      This is not yet the case in iwlwifi, but for some new
      features we're working on it will be the case since
      those will only be supported by new firmware images.
      
      Hence, to start with, convert iwlwifi to load firmware
      asynchronously from probe, unbinding the device when
      firmware loading fails, and only registering with the
      wireless subsystems after firmware has been loaded
      successfully.
      
      Future patches will hook into this to register the
      new firmware capabilities, depending on the firmware
      API version.
      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>
      b08dfd04
  4. 24 2月, 2010 1 次提交
    • R
      Revert "iwlwifi: Monitor and recover the aggregation TX flow failure" · ab9bdc34
      Reinette Chatre 提交于
      This reverts commit 1db5950f.
      
      The goal of "iwlwifi: Monitor and recover the aggregation TX flow failure"
      is to first detect when data transmission stalls and then to recover from
      this situation with a reset of the radio or the firmware, depending on how
      bad the transmission failures are.
      
      Unfortunately we have found that this change causes excessive resets with
      its current detection algorithm. It also performs its recovery action when
      none is really needed, like when we are not associated.
      
      Revert this change until the issues have been addressed.
      Signed-off-by: NReinette Chatre <reinette.chatre@intel.com>
      ab9bdc34
  5. 20 2月, 2010 2 次提交
  6. 12 2月, 2010 2 次提交
    • T
      iwlwifi: Monitor and recover the aggregation TX flow failure · 1db5950f
      Trieu 'Andrew' Nguyen 提交于
      This change monitors the tx statistics to detect the drop in throughput.
      When the throughput drops, the ratio of the actual_ack_count and the expected_
      ack_count also drops.  At the same time, the aggregated ba_timeout (the number
      of ba timeout retries) also rises.  If the actual_ack_count/expected_ack_count
      ratio is 0 and the number of ba timeout retries rises to 16, no tx packets
      (tcp, udp, or ping - icmp) can be delivered.  The driver recovers from this
      situation by reseting the uCode firmware.  If the actual_ack_count/expected_
      ack_count ratio drops below 50% (but not 0) and the aggregated ba_timeout
      retries just exceed 5 (but not 16), then the driver can reset the radio to
      bring the throughput up.
      Signed-off-by: NTrieu 'Andrew' Nguyen <trieux.t.nguyen@intel.com>
      Signed-off-by: NReinette Chatre <reinette.chatre@intel.com>
      1db5950f
    • R
      iwlwifi: reset card during probe · 4843b5a7
      Reinette Chatre 提交于
      To ensure that card is in a sane state during probe we add a reset call.
      This change was prompted by users of kdump who was not able to bring up the
      wireless driver in the kdump kernel. The problem here was that the primary
      kernel, which is not running at the time, left the wireless card up and
      running. When the kdump kernel starts it is thus possible to immediately
      receive interrupts from firmware after registering interrupt, but without
      being ready to deal with interrupts from firmware yet.
      Reported-by: NStanislaw Gruszka <sgruszka@redhat.com>
      Signed-off-by: NReinette Chatre <reinette.chatre@intel.com>
      4843b5a7
  7. 09 2月, 2010 2 次提交
  8. 30 1月, 2010 3 次提交
  9. 26 1月, 2010 5 次提交
  10. 23 1月, 2010 1 次提交
  11. 20 1月, 2010 2 次提交
  12. 13 1月, 2010 1 次提交
  13. 08 1月, 2010 1 次提交
  14. 23 12月, 2009 1 次提交
  15. 22 12月, 2009 5 次提交
  16. 05 12月, 2009 1 次提交
  17. 24 11月, 2009 6 次提交
  18. 20 11月, 2009 1 次提交
  19. 19 11月, 2009 2 次提交
    • J
      mac80211: convert aggregation to operate on vifs/stas · c951ad35
      Johannes Berg 提交于
      The entire aggregation code currently operates on the
      hw pointer and station addresses, but that needs to
      change to make stations purely per-vif; As one step
      preparing for that make the aggregation code callable
      with the station, or by the combination of virtual
      interface and station address.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      c951ad35
    • 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