1. 08 4月, 2011 1 次提交
  2. 25 8月, 2010 1 次提交
  3. 20 1月, 2010 1 次提交
  4. 28 10月, 2009 2 次提交
  5. 08 10月, 2009 1 次提交
    • W
      iwlwifi: reliable entering of critical temperature state · 7812b167
      Wey-Yi Guy 提交于
      When uCode detects critical temperature it should send "card state
      notification" interrupt to driver and then shut itself down to prevent
      overheating. There is a race condition where uCode shuts down before it
      can deliver the interrupt to driver.
      Additional method provided here for driver to enter CT_KILL state based
      on temperature reading.
      
      How it works:
      Method 1:
      If driver receive "card state notification" interrupt from uCode; it
      enters "CT_KILL" state immediately
      
      Method 2:
      If the last temperature report by Card reach Critical temperature,
      driver will send "statistic notification" request to uCode to verify the
      temperature reading, if driver can not get reply from uCode within
      300ms, driver will enter CT_KILL state automatically.
      
      Method 3:
      If the last temperature report by Card did not reach Critical
      temperature, but uCode already shut down due to critical temperature.
      All the host commands send to uCode will not get process by uCode;
      when command queue reach the limit, driver will check the last reported
      temperature reading, if it is within pre-defined margin, enter "CT_KILL"
      state immediately. In this case, when uCode ready to exit from "CT_KILL" state,
      driver need to restart the adapter in order to reset all the queues and
      resume normal operation.
      
      One additional issue being address here, when system is in CT_KILL
      state, both tx and rx already stopped, but driver still can send host
      command to uCode, it will flood the command queue since card was not
      responding; adding STATUS_CT_KILL flag to reject enqueue host commands
      to uCode if it is in CT_KILL state, when uCode is ready to come out of
      CT_KILL, driver will clear  the STATUS_CT_KILL bit and allow enqueue the host
      commands to uCode to recover from CT_KILL state.
      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>
      7812b167
  6. 14 8月, 2009 2 次提交
    • J
      iwlwifi: automatically adjust sleep level · e312c24c
      Johannes Berg 提交于
      Depending on required latency requested by pm_qos (via mac80211)
      we can automatically adjust the sleep state. Also, mac80211 has
      a user-visible dynamic sleep feature where we are supposed to
      stay awake after sending/receiving frames to better receive
      response frames to our packets, this can be integrated into the
      sleep command.
      
      Currently, and this patch doesn't change that yet, we default
      to using sleep level 1 if PS is enabled. With a module parameter
      to iwlcore, automatic adjustment to changing network latency
      requirements can be enabled -- this isn't yet the default due
      to requiring more testing.
      
      The goal is to enable automatic adjustment and then go into the
      deepest possible sleep state possible depending on the networking
      latency requirements.
      
      This patch does, however, enable IEEE80211_HW_SUPPORTS_DYNAMIC_PS
      to avoid the double-timer (one in software and one in the device)
      when transmitting -- the exact timeout may be ignored but that is
      not of big concern.
      
      Note also that we keep the hard-coded power indices around for
      thermal throttling -- the specification of that calls for using
      the specified power levels. Those can also be selected in debugfs
      to allow easier testing of such parameters.
      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>
      e312c24c
    • J
      iwlwifi: refactor some thermal throttle code · 3ad3b92a
      Johannes Berg 提交于
      Some of the thermal throttle data structures and code
      are really very intermingled with the sleep (power)
      control code. They really do belong together in a way
      since the thermal throttle code uses powersaving to
      achieve its goal, but it's making it hard to work on
      the powersave code. Split this up to make that easier.
      I've also changed the antenna defines to an enum and
      used the same enum for RX and TX.
      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>
      3ad3b92a
  7. 28 7月, 2009 2 次提交
    • W
      iwlwifi: Thermal Throttling Management - part 2 · 46f9381a
      Wey-Yi Guy 提交于
      Part 2 of Thermal Throttling Management -
      
      Thermal Throttling feature is used to put NIC into low power state when
      driver detect the Radio temperature reach pre-defined threshold
      
      Two Thermal Throttling Management Methods; this patch introduce the
      Advance Thermal Throttling:
      TI-0: system power index, no tx/rx restriction, HT enabled
      TI-1: power index 5, 1 spatial stream Tx, multiple spatial stream Rx, HT
      enabled
      TI-2: power index 5: 1 spatial stream Tx, 1 spatial stream Rx, HT
      disabled
      TI-CT-KILL: power index 5, no Tx, no Rx, HT disabled
      
      For advance Thermal Throttling, CT_KILL_ENTER threshold and CT_KILL_EXIT
      threshold are different; uCode will not stay awake until reach
      CT_KILL_EXIT threshold.
      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>
      46f9381a
    • W
      iwlwifi: Thermal Throttling Management - Part 1 · 39b73fb1
      Wey-Yi Guy 提交于
      Part 1 of Thermal Throttling Management -
      
      Thermal Throttling feature is used to put NIC into low power state when
      driver detect the Radio temperature reach pre-defined threshold
      
      Two Thermal Throttling Management Methods; this patch introduce the
      Legacy Thermal Management:
         IWL_TI_0: normal temperature, system power state
         IWL_TI_1: high temperature detect, low power state
         IWL_TI_2: higher temperature detected, lower power state
         IWL_TI_CT_KILL: critical temperature detected, lowest power state
      
      Once get into CT_KILL state, uCode go into sleep, driver will stop all
      the active queues, then move to IWL_TI_CT_KILL state; also set up 5
      seconds timer to toggle CSR flag, uCode wake up upon CSR flag change,
      then measure the temperature.
      If temperature is above CT_KILL exit threshold, uCode go backto sleep;
      if temperature is below CT_KILL exit threshold, uCode send Card State
      Notification response with appropriate CT_KILL status flag, and uCode
      remain awake, Driver receive Card State Notification Response and update
      the card temperature to the CT_KILL exit threshold.
      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>
      39b73fb1
  8. 12 5月, 2009 1 次提交
  9. 10 2月, 2009 2 次提交
  10. 30 1月, 2009 3 次提交
  11. 13 12月, 2008 1 次提交
  12. 12 9月, 2008 2 次提交
  13. 09 9月, 2008 1 次提交
  14. 05 8月, 2008 2 次提交
  15. 08 5月, 2008 2 次提交