1. 23 Mar, 2010 32 commits
  2. 19 Mar, 2010 8 commits
    • Wey-Yi Guy's avatar
      iwlwifi: code cleanup for connectivity recovery · fa8f130c
      Wey-Yi Guy authored
      Split the connectivity check and recovery routine into separated
      functions based on the types
         1. iwl_good_ack_health() - check for ack count
         2. iwl_good_plcp_health() - check for plcp error
      
      Based on the type of errors being detected, different recovery methods
      will be used to bring the system back to normal operational state.
      
      Because different NIC has different HW and uCode, the behavior is also
      different; these functions thus now form part of the ops infrastructure,
      so we can have more control on how to monitor and recover from error condition
      case per device.
      Signed-off-by: default avatarWey-Yi Guy <wey-yi.w.guy@intel.com>
      Signed-off-by: default avatarReinette Chatre <reinette.chatre@intel.com>
      fa8f130c
    • Wey-Yi Guy's avatar
      iwlwifi: Recover TX flow failure · d5a0ffa3
      Wey-Yi Guy authored
      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 BA_TIMEOUT_MAX, no tx packets can be delivered.
      Reloading the uCode and bring the system back to normal operational
      state.
      Signed-off-by: default avatarTrieu 'Andrew' Nguyen <trieux.t.nguyen@intel.com>
      Signed-off-by: default avatarWey-Yi Guy <wey-yi.w.guy@intel.com>
      Signed-off-by: default avatarReinette Chatre <reinette.chatre@intel.com>
      d5a0ffa3
    • Wey-Yi Guy's avatar
      iwlwifi: move plcp check to separated function · beac5498
      Wey-Yi Guy authored
      Move the plcp error checking into stand alone function and pointed by ops
      to accommodate devices not needing this recovery.
      Signed-off-by: default avatarTrieu 'Andrew' Nguyen <trieux.t.nguyen@intel.com>
      Signed-off-by: default avatarWey-Yi Guy <wey-yi.w.guy@intel.com>
      Signed-off-by: default avatarReinette Chatre <reinette.chatre@intel.com>
      beac5498
    • Wey-Yi Guy's avatar
      iwlwifi: Recover TX flow stall due to stuck queue · b74e31a9
      Wey-Yi Guy authored
      Monitors the internal TX queues periodically.  When a queue is stuck
      for some unknown conditions causing the throughput to drop and the
      transfer is stop, the driver will force firmware reload and bring the
      system back to normal operational state.
      
      The iwlwifi devices behave differently in this regard so this feature is
      made part of the ops infrastructure so we can have more control on how to
      monitor and recover from tx queue stall case per device.
      Signed-off-by: default avatarTrieu 'Andrew' Nguyen <trieux.t.nguyen@intel.com>
      Signed-off-by: default avatarWey-Yi Guy <wey-yi.w.guy@intel.com>
      Signed-off-by: default avatarReinette Chatre <reinette.chatre@intel.com>
      b74e31a9
    • Shanyu Zhao's avatar
      iwlwifi: clean up driver names for 1000/5000/6000 · c11362c0
      Shanyu Zhao authored
      Align the driver names with official product names for 1000/5000/6000
      series. This change mainly affects the debug messages show up in system
      log. No functional changes.
      Signed-off-by: default avatarShanyu Zhao <shanyu.zhao@intel.com>
      Signed-off-by: default avatarReinette Chatre <reinette.chatre@intel.com>
      c11362c0
    • Johannes Berg's avatar
      iwlwifi: sta_id cannot be invalid in rs_initialize_lq · fe0b3b96
      Johannes Berg authored
      The only caller of this is iwl_rs_rate_init
      which is only called with a valid sta_id.
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: default avatarReinette Chatre <reinette.chatre@intel.com>
      fe0b3b96
    • Reinette Chatre's avatar
      iwlwifi: implement new mac80211 station add/remove calls · fe6b23dd
      Reinette Chatre authored
      mac80211 recently implemented two new callbacks that are used to request
      station add/remove from the driver. The benefot from these new callbacks
      are that they enable the driver to sleep while performing this work.
      
      This is a big patch since a few things need to be coordinated in this move.
      First we need to decouple station management from rate scaling, which
      caused a lot of code to be moved and/or deleted. Next we needed to tie in
      with mac80211's station management callback and let it direct our station
      management as well as trigger the rate scaling initialization.
      Signed-off-by: default avatarReinette Chatre <reinette.chatre@intel.com>
      fe6b23dd
    • Reinette Chatre's avatar
      iwlwifi: only add broadcast station once · 7e246191
      Reinette Chatre authored
      Currently the broadcast station is added after every RXON command. Change
      this to only add the broadcast station when interface is added by mac80211.
      With this we need some extra work to ensure broadcast station is always
      present since station table is cleared when RXON without ASSOC bit set is
      sent. To deal with this we re-add all driver known stations to uCode after
      such an RXON command is sent.
      
      We also do some cleanup and remove the various calls to clear the station
      table. We now only clear the station table in two scenarios:
      - only clear uCode portion of station table when RXON command without ASSOC
      bit is sent
      - clear uCode and driver portion when interface goes down or is removed.
      
      We need to do this clearing when interface goes down to deal with the
      device restart/reconfigure routines which do not remove the interface, but
      do add the interface during reconfiguration.
      
      Previously the keys were also cleared when station table in driver is
      cleared, this is not done anymore since mac80211 will take care that keys
      are set and cleared correctly.
      
      There is a known issue with this change. Associating with different AP
      without bringing interface down fails with a firmware error. This is
      because of the lack of full station notification support and the later
      patches in this series that complete the station notification support will
      fix this.
      Signed-off-by: default avatarReinette Chatre <reinette.chatre@intel.com>
      7e246191