iwlagn: report correct temperature for WiFi/BT devices.
authorFry, Donald H <donald.h.fry@intel.com>
Fri, 25 Feb 2011 17:44:48 +0000 (09:44 -0800)
committerWey-Yi Guy <wey-yi.w.guy@intel.com>
Thu, 3 Mar 2011 18:05:11 +0000 (10:05 -0800)
The temperature reported by 'cat /sys/class/net/wlan?/device/temperature'
is incorrect for devices with BT capability.  Report the value from the
correct statistics structure.  Tested with 130, 100, 6205 and 5300.

Signed-off-by: Don Fry <donald.h.fry@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
drivers/net/wireless/iwlwifi/iwl-agn-lib.c

index fd142be..87a9fd8 100644 (file)
@@ -533,9 +533,10 @@ int iwlagn_send_tx_power(struct iwl_priv *priv)
 
 void iwlagn_temperature(struct iwl_priv *priv)
 {
-       /* store temperature from statistics (in Celsius) */
-       priv->temperature =
-               le32_to_cpu(priv->_agn.statistics.general.common.temperature);
+       /* store temperature from correct statistics (in Celsius) */
+       priv->temperature = le32_to_cpu((iwl_bt_statistics(priv)) ?
+               priv->_agn.statistics_bt.general.common.temperature :
+               priv->_agn.statistics.general.common.temperature);
        iwl_tt_handler(priv);
 }