iwlwifi: do not allow set tx power over channel power limit
authorWey-Yi Guy <wey-yi.w.guy@intel.com>
Fri, 21 Aug 2009 20:34:15 +0000 (13:34 -0700)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 28 Aug 2009 18:40:36 +0000 (14:40 -0400)
When setting tx power in sysfs, check against max channel tx power
limit instead of IWL_TX_POWER_TARGET_POWER_MAX.

Different devices have different max tx power limit; using
IWL_TX_POWER_TARGET_POWER_MAX can excess the limitaion and give wrong
information.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/iwlwifi/iwl-core.c

index 43781dc9adfd1425f489073ace1c26821d0a1940..faafcaeae0a67de097f1610fdb8db50154a535fa 100644 (file)
@@ -1708,10 +1708,10 @@ int iwl_set_tx_power(struct iwl_priv *priv, s8 tx_power, bool force)
                return -EINVAL;
        }
 
-       if (tx_power > IWL_TX_POWER_TARGET_POWER_MAX) {
-               IWL_WARN(priv, "Requested user TXPOWER %d above upper limit %d.\n",
-                        tx_power,
-                        IWL_TX_POWER_TARGET_POWER_MAX);
+       if (tx_power > priv->tx_power_channel_lmt) {
+               IWL_WARN(priv,
+                       "Requested user TXPOWER %d above upper limit %d.\n",
+                        tx_power, priv->tx_power_channel_lmt);
                return -EINVAL;
        }