1. 14 Aug, 2010 2 commits
    • Wey-Yi Guy's avatar
      iwlwifi: use long monitor timer to avoid un-necessary reload · 3198c68c
      Wey-Yi Guy authored
      
      
      For 5000 and 6000g2b series of devices, use long monitor timer to check
      stuck tx queues.
      
      .6000g2b series device, it is WiFi/BT combo device, there are some cases,
      tx queues are not move for a period of time because the WiFi/BT coex.
      
      .5000 series device, it is being reported firmware got reload more
      often than necessary, so extend the timer to avoid un-necessary reload.
      
      Signed-off-by: default avatarWey-Yi Guy <wey-yi.w.guy@intel.com>
      3198c68c
    • Wey-Yi Guy's avatar
      iwlwifi: long monitor timer · ce60659a
      Wey-Yi Guy authored
      
      
      Change the name for monitor timer, also adding define for long monitor
      timer; long monitor timer can be used for the type of devices require longer
      time to determine the uCode is stuck on tx and needed reload.
      
      Signed-off-by: default avatarWey-Yi Guy <wey-yi.w.guy@intel.com>
      ce60659a
  2. 09 Aug, 2010 1 commit
    • Johannes Berg's avatar
      iwlagn: fix rts cts protection · 94597ab2
      Johannes Berg authored
      
      
      Currently the driver will try to protect all frames,
      which leads to a lot of odd things like sending an
      RTS with a zeroed RA before multicast frames, which
      is clearly bogus.
      
      In order to fix all of this, we need to take a step
      back and see what we need to achieve:
       * we need RTS/CTS protection if requested by
         the AP for the BSS, mac80211 tells us this
       * in that case, CTS-to-self should only be
         enabled when mac80211 tells us
       * additionally, as a hardware workaround, on
         some devices we have to protect aggregated
         frames with RTS
      
      To achieve the first two items, set up the RXON
      accordingly and set the protection required flag
      in the transmit command when mac80211 requests
      protection for the frame.
      
      To achieve the last item, set the rate-control
      RTS-requested flag for all stations that we have
      aggregation sessions with, and set the protection
      required flag when sending aggregated frames (on
      those devices where this is required).
      
      Since otherwise bugs can occur, do not allow the
      user to override the RTS-for-aggregation setting
      from sysfs any more.
      
      Finally, also clean up the way all these flags get
      set in the driver and move everything into the
      device-specific functions.
      
      Cc: stable@kernel.org [2.6.35]
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: default avatarWey-Yi Guy <wey-yi.w.guy@intel.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      94597ab2
  3. 23 Jul, 2010 2 commits
  4. 02 Jul, 2010 3 commits
    • Wey-Yi Guy's avatar
      iwlwifi: generic parameter define for _agn device · bf3c7fdd
      Wey-Yi Guy authored
      
      
      Code clean up to change name from having 5000 as part of name which easy
      to confuse and think it is for 5000 series devices to more
      generic _agn name since it is being used by multiple _agn devices.
      
      No functional changes.
      
      Signed-off-by: default avatarWey-Yi Guy <wey-yi.w.guy@intel.com>
      Signed-off-by: default avatarReinette Chatre <reinette.chatre@intel.com>
      bf3c7fdd
    • Wey-Yi Guy's avatar
      iwlwifi: add support for device tx flush request · 65550636
      Wey-Yi Guy authored
      
      
      "Flush" request can come from two different sources, it can either from
      mac80211, or from device when the operation is needed. Here
      adding the support for device issue "flush" request.
      
      When receive tx complete with status is TX_STATUS_FAIL_RFKILL_FLUSH,
      issue REPLY_TXFIFO_FLUSH command to uCode to flush out all the tx frames
      in queues.
      
      In this condition, since mac80211 has no knowledge of "flush" operation,
      driver need to stop all the tx queues and wait for the operation
      completed before wake up the queues for frames transmission.
      
      Signed-off-by: default avatarWey-Yi Guy <wey-yi.w.guy@intel.com>
      Signed-off-by: default avatarReinette Chatre <reinette.chatre@intel.com>
      65550636
    • Wey-Yi Guy's avatar
      iwlwifi: add mac80211 flush callback support · 716c74b0
      Wey-Yi Guy authored
      
      
      Adding flush callback support in the driver. Two type of flush can be
      issued by mac80211:
      1. drop = true: frame drop is ok, issue REPLY_TXFIFO_FLUSH host command
      to uCode to drop all the frames in tx fifo queues; then return the
      control back to mac80211
      2. drop = false: wait for either all the frames in tx fifo queues been
      transmitted, or timeout; then return the control back to mac80211
      
      If the flush request coming from mac80211, mac80211 will make sure there
      are no additional frames push down to driver before flush operation is
      completed.
      
      Signed-off-by: default avatarWey-Yi Guy <wey-yi.w.guy@intel.com>
      Signed-off-by: default avatarReinette Chatre <reinette.chatre@intel.com>
      716c74b0
  5. 25 Jun, 2010 2 commits
  6. 21 Jun, 2010 1 commit
  7. 06 Jun, 2010 3 commits
  8. 03 Jun, 2010 1 commit
    • John W. Linville's avatar
      Revert "iwlwifi: move _agn statistics related structure" · 2daf6c15
      John W. Linville authored
      This reverts commit a2064b7a
      
      .
      
      when CONFIG_IWLAGN=n:
      
      drivers/net/wireless/iwlwifi/iwl-rx.c:254: error: 'struct iwl_priv' has no member named '_agn'
      drivers/net/wireless/iwlwifi/iwl-rx.c:303: error: 'struct iwl_priv' has no member named '_agn'
      drivers/net/wireless/iwlwifi/iwl-rx.c:304: error: 'struct iwl_priv' has no member named '_agn'
      drivers/net/wireless/iwlwifi/iwl-rx.c:305: error: 'struct iwl_priv' has no member named '_agn'
      drivers/net/wireless/iwlwifi/iwl-rx.c:306: error: 'struct iwl_priv' has no member named '_agn'
      
      and many more.
      
      Conflicts:
      
      	drivers/net/wireless/iwlwifi/iwl-agn-debugfs.c
      	drivers/net/wireless/iwlwifi/iwl-debugfs.c
      	drivers/net/wireless/iwlwifi/iwl-dev.h
      	drivers/net/wireless/iwlwifi/iwl-rx.c
      
      Reported-by: default avatarRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      2daf6c15
  9. 13 May, 2010 1 commit
  10. 10 May, 2010 5 commits
  11. 30 Apr, 2010 1 commit
  12. 16 Apr, 2010 1 commit
  13. 09 Apr, 2010 1 commit
  14. 02 Apr, 2010 1 commit
    • Wey-Yi Guy's avatar
      iwlwifi: merge module parameters into single place · 2b068618
      Wey-Yi Guy authored
      
      
      Module parameters used to be defined in both iwl-5000.c and iwl-4965.c,
      after the code re-structure, merge into iwl-agn.c for easy to read and
      maintenance.
      
      Number of module parameters are deprecated after this merge. These are also
      scheduled for removal by 2.6.40.
      
      The current supported parameters are:
      
       parm: debug50:50XX debug output mask (deprecated) (uint)
       parm: debug:debug output mask (uint)
       parm: swcrypto50:using crypto in software (default 0 [hardware])
      (deprecated) (bool)
       parm: swcrypto:using crypto in software (default 0 [hardware]) (int)
       parm: queues_num50:number of hw queues in 50xx series (deprecated)
      (int)
       parm: queues_num:number of hw queues. (int)
       parm: 11n_disable50:disable 50XX 11n functionality (deprecated) (int)
       parm: 11n_disable:disable 11n functionality (int)
       parm: amsdu_size_8K50:enable 8K amsdu size in 50XX series (deprecated)
      (int)
       parm: amsdu_size_8K:enable 8K amsdu size (int)
       parm: fw_restart50:restart firmware in case of error (deprecated) (int)
       parm: fw_restart:restart firmware in case of error (int)
       parm: disable_hw_scan:disable hardware scanning (default 0) (int)
      
      Remove "antenna" module parameter, it is not being used in "agn" driver.
      
      Signed-off-by: default avatarWey-Yi Guy <wey-yi.w.guy@intel.com>
      Signed-off-by: default avatarReinette Chatre <reinette.chatre@intel.com>
      2b068618
  15. 25 Mar, 2010 10 commits
  16. 19 Mar, 2010 5 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: 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
    • 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