1. 26 3月, 2010 5 次提交
  2. 25 3月, 2010 1 次提交
  3. 20 3月, 2010 3 次提交
  4. 10 3月, 2010 1 次提交
  5. 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
  6. 13 2月, 2010 1 次提交
  7. 12 2月, 2010 4 次提交
  8. 26 1月, 2010 3 次提交
    • R
      iwlwifi: cleanup spectrum measurement command support · 81963d68
      Reinette Chatre 提交于
      In iwlagn the support for spectrum measurement command has been
      disabled since v2.6.29 without any requests for it. In addition to this
      when this command is indeed enabled it has been found to trigger firmware
      SYSASSERT on at least 4965 and 5100 hardware (see
      http://bugzilla.intellinuxwireless.org/show_bug.cgi?id=1952 ). Since then
      this code has been bitrotting and cannot just be enabled without porting.
      
      Remove support for spectrum measurement command from iwlagn. It can be
      added back if there is a future need and the firmware problem it triggers
      has been fixed. Support for the spectrim measurement notification remains
      as it has been enabled all the time.
      
      In addition to this remove the 3945 spectrum measurement command Kconfig
      option and make this command always supported. The code added by this
      enabling is minimal and only run when user triggers a spectrum measurement
      request via sysfs.
      Signed-off-by: NReinette Chatre <reinette.chatre@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      81963d68
    • T
      iwlwifi: Tune radio to prevent unexpected behavior · 3e4fb5fa
      Trieu 'Andrew' Nguyen 提交于
      We have seen the throughput dropped due to external noisy environment
      and the radio is out of tune.  There are lot of plcp errors indicating
      this condition. Eventually the station can get de-authenticated by the
      Access Point.  By resetting and tuning the radio, the plcp errors are
      reduced or eliminated and the throughput starts to rise.
      
      To prevent unexpected behavior such as drop in throughput or deauthentication,
      - The change provides the driver feature to monitor and tune the radio base on
      the statistics notification from the uCode.
      - It also allows the setting of the plcp error rate threshold via
      the plcp_delta under debugfs interface.
      Signed-off-by: NTrieu 'Andrew' Nguyen <trieux.t.nguyen@intel.com>
      Signed-off-by: NReinette Chatre <reinette.chatre@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      3e4fb5fa
    • W
      iwlwifi: configure missed beacon threshold · a13d276f
      Wey-Yi Guy 提交于
      Add support to configure missed beacon threshold, by default, if receive
      "missed beacon" notification from uCode and has more than 5 consecutive
      beacon missed, then perform sensitivity calibration; with this change,
      allow user to adjust the missed beacon threshold from debugfs in case
      more sensitivity calibration required for better performance in noisy
      environment
      
      The default value (=5) should be good enough for the normal condition,
      but for very noisy environment, more sensitivity calibration could help
      improve the throughput, so by setting the missed beacon threshold to
      lower number, user might experience better performance result.
      Signed-off-by: NWey-Yi Guy <wey-yi.w.guy@intel.com>
      Signed-off-by: NReinette Chatre <reinette.chatre@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      a13d276f
  9. 20 1月, 2010 4 次提交
  10. 29 12月, 2009 1 次提交
  11. 22 12月, 2009 1 次提交
  12. 24 11月, 2009 1 次提交
    • B
      iwlagn: Use iwl_write8() for CSR_INT_COALESCING register · 74ba67ed
      Ben Cahill 提交于
      CSR_INT_COALESCING previously had only one, but now has two single-byte fields.
      With only one single-byte field (lowest order byte) it was okay to write via
      iwl_write32(), but now with two, an iwl_write32() to the lower order field
      clobbers the other field (odd-address CSR_INT_PERIODIC_REG, offset 0x5), and an
      iwl_write32() to CSR_INT_PERIODIC_REG could clobber the lowest byte of the
      next-higher register (CSR_INT, offset 0x8).
      
      Fortunately, no bad side effects have been produced by the iwl_write32()
      usage, due to order of execution (low order byte was always written before
      higher order byte), and the fact that writing "0" to the low byte of the
      next higher register has no effect (only action is when writing "1"s).
      
      Nonetheless, this cleans up the accesses so no bad side effects might occur
      in the future, if execution order changes, or more bit fields get added to
      CSR_INT_COALESCING.
      
      Add some comments regarding periodic interrupt usage.
      Signed-off-by: NBen Cahill <ben.m.cahill@intel.com>
      Signed-off-by: NReinette Chatre <reinette.chatre@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      74ba67ed
  13. 19 11月, 2009 2 次提交
    • 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
    • W
      iwlwifi: update reply_statistics_cmd with 'clear' parameter · ef8d5529
      Wey-Yi Guy 提交于
      When issue REPLY_STATISTICS_CMD to uCode, two possible flag
      can be set in the configuration flags
      
      bit 0: Clear statistics
             0: Do not clear Statistics counters
             1: Clear to zero Statistics counters
      
      Allow "clear" parameter to be set from the caller.
      
      Add debugfs file to clear the statistics counters to help monitor and
      debug the uCode behavior.
      Signed-off-by: NWey-Yi Guy <wey-yi.w.guy@intel.com>
      Signed-off-by: NReinette Chatre <reinette.chatre@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      ef8d5529
  14. 12 11月, 2009 2 次提交
  15. 28 10月, 2009 4 次提交
    • Z
      iwlwifi: fix use after free bug for paged rx · 29b1b268
      Zhu Yi 提交于
      In the paged rx patch (4854fde2), I introduced a bug that could possibly
      touch an already freed page. It is fixed by avoiding the access in this
      patch. I've also added some comments so that other people touching the
      code won't make the same mistake. In the future, if we cannot avoid
      access the page after being handled to the upper layer, we can use
      get_page/put_page to handle it. For now, it's just not necessary.
      
      It also fixed a debug message print bug reported by Stanislaw Gruszka
      <sgruszka@redhat.com>.
      Signed-off-by: NZhu Yi <yi.zhu@intel.com>
      Signed-off-by: NReinette Chatre <reinette.chatre@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      29b1b268
    • W
      iwlwifi: separate led function from statistic notification · 1ed2a3d2
      Wey-Yi Guy 提交于
      Detach led background task from statistic notification routine. if led
      blinking is required; the blink rate is based on the traffic condition.
      It do not relate to statistics notification. In addition to that, there is
      not a requirement for statistics notification has to occur all the time.
      Signed-off-by: NWey-Yi Guy <wey-yi.w.guy@intel.com>
      Signed-off-by: NReinette Chatre <reinette.chatre@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      1ed2a3d2
    • Z
      iwlwifi: use paged Rx · 2f301227
      Zhu Yi 提交于
      This switches the iwlwifi driver to use paged skb from linear skb for Rx
      buffer. So that it relieves some Rx buffer allocation pressure for the
      memory subsystem. Currently iwlwifi (4K for 3945) requests 8K bytes for
      Rx buffer. Due to the trailing skb_shared_info in the skb->data,
      alloc_skb() will do the next order allocation, which is 16K bytes. This
      is suboptimal and more likely to fail when the system is under memory
      usage pressure. Switching to paged Rx skb lets us allocate the RXB
      directly by alloc_pages(), so that only order 1 allocation is required.
      
      It also adjusts the area spin_lock (with IRQ disabled) protected in the
      tasklet because tasklet guarentees to run only on one CPU and the new
      unprotected code can be preempted by the IRQ handler. This saves us from
      spawning another workqueue to make skb_linearize/__pskb_pull_tail happy
      (which cannot be called in hard irq context).
      
      Finally, mac80211 doesn't support paged Rx yet. So we linearize the skb
      for all the management frames and software decryption or defragmentation
      required data frames before handed to mac80211. For all the other frames,
      we __pskb_pull_tail 64 bytes in the linear area of the skb for mac80211
      to handle them properly.
      Signed-off-by: NZhu Yi <yi.zhu@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      2f301227
    • W
      iwlwifi: showing accumulative ucode statistics counters · 92a35bda
      Wey-Yi Guy 提交于
      Adding accumulative statistics counters in iwlwifi driver.
      Statistics counters are reported by uCode every beacon interval; but can
      be reset by uCode when needed. The accumulative statistics counters is
      maintained by driver to keep track of the history of all the counters.
      
      Update the ucode stats files in debugfs to display both latest and
      accumulative counters.
      Signed-off-by: NWey-Yi Guy <wey-yi.w.guy@intel.com>
      Signed-off-by: NReinette Chatre <reinette.chatre@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      92a35bda
  16. 08 10月, 2009 1 次提交
  17. 23 9月, 2009 2 次提交
    • R
      iwlwifi: reduce noise when skb allocation fails · f82a924c
      Reinette Chatre 提交于
      Replenishment of receive buffers is done in the tasklet handling
      received frames as well as in a workqueue. When we are in the tasklet
      we cannot sleep and thus attempt atomic skb allocations. It is generally
      not a big problem if this fails since iwl_rx_allocate is always followed
      by a call to iwl_rx_queue_restock which will queue the work to replenish
      the buffers at a time when sleeping is allowed.
      
      We thus add the __GFP_NOWARN to the skb allocation in iwl_rx_allocate to
      reduce the noise if such an allocation fails while we still have enough
      buffers. We do maintain the warning and the error message when we are low
      on buffers to communicate to the user that there is a potential problem with
      memory availability on system
      
      This addresses issue reported upstream in thread "iwlagn: order 2 page
      allocation failures" in
      http://thread.gmane.org/gmane.linux.kernel.wireless.general/39187Signed-off-by: NReinette Chatre <reinette.chatre@intel.com>
      Acked-by: NMel Gorman <mel@csn.ul.ie>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      f82a924c
    • R
      iwlwifi: fix potential rx buffer loss · de0bd508
      Reinette Chatre 提交于
      RX handling maintains a few lists that keep track of the RX buffers.
      Buffers move from one list to the other as they are used, replenished, and
      again made available for usage. In one such instance, when a buffer is used
      it enters the "rx_used" list. When buffers are replenished an skb is
      attached to the buffer and it is moved to the "rx_free" list. The problem
      here is that the buffer is first removed from the "rx_used" list _before_ the
      skb is allocated. Thus, if the skb allocation fails this buffer remains
      removed from the "rx_used" list and is thus lost for future usage.
      
      Fix this by first allocating the skb before trying to attach it to a list.
      We add an additional check to not do this unnecessarily.
      Reported-by: NRick Farrington <rickdic@hotmail.com>
      Signed-off-by: NReinette Chatre <reinette.chatre@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      de0bd508
  18. 15 9月, 2009 1 次提交
    • R
      iwlwifi: fix potential rx buffer loss · 0aae511c
      Reinette Chatre 提交于
      RX handling maintains a few lists that keep track of the RX buffers.
      Buffers move from one list to the other as they are used, replenished, and
      again made available for usage. In one such instance, when a buffer is used
      it enters the "rx_used" list. When buffers are replenished an skb is
      attached to the buffer and it is moved to the "rx_free" list. The problem
      here is that the buffer is first removed from the "rx_used" list _before_ the
      skb is allocated. Thus, if the skb allocation fails this buffer remains
      removed from the "rx_used" list and is thus lost for future usage.
      
      Fix this by first allocating the skb before trying to attach it to a list.
      We add an additional check to not do this unnecessarily.
      Reported-by: NRick Farrington <rickdic@hotmail.com>
      Signed-off-by: NReinette Chatre <reinette.chatre@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      0aae511c
  19. 01 9月, 2009 1 次提交
  20. 29 8月, 2009 1 次提交