diff options
author | Stephen Hemminger <shemminger@linux-foundation.org> | 2007-06-23 00:46:50 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2007-07-10 13:59:48 -0400 |
commit | a62056f0b0cfdc175afd99fef80a68f01cdf0f4b (patch) | |
tree | 072495ec9044bc63155b7fc09e9b9672013cdad6 /drivers/net/wireless/ipw2100.c | |
parent | 1c9d5e41e32a3bfe60f44e3272c05d14ea595a71 (diff) |
[PATCH] ipw2100: RF kill switch timer power save
Similar patch to ipw2200. Round the timer used for RF kill
switch off to 1 second boundary to save power.
Build tested only, don't have this hardware.
Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ipw2100.c')
-rw-r--r-- | drivers/net/wireless/ipw2100.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/net/wireless/ipw2100.c b/drivers/net/wireless/ipw2100.c index d51daf87450f..072ede71e575 100644 --- a/drivers/net/wireless/ipw2100.c +++ b/drivers/net/wireless/ipw2100.c | |||
@@ -1768,7 +1768,8 @@ static int ipw2100_up(struct ipw2100_priv *priv, int deferred) | |||
1768 | 1768 | ||
1769 | if (priv->stop_rf_kill) { | 1769 | if (priv->stop_rf_kill) { |
1770 | priv->stop_rf_kill = 0; | 1770 | priv->stop_rf_kill = 0; |
1771 | queue_delayed_work(priv->workqueue, &priv->rf_kill, HZ); | 1771 | queue_delayed_work(priv->workqueue, &priv->rf_kill, |
1772 | round_jiffies(HZ)); | ||
1772 | } | 1773 | } |
1773 | 1774 | ||
1774 | deferred = 1; | 1775 | deferred = 1; |
@@ -2098,7 +2099,7 @@ static void isr_indicate_rf_kill(struct ipw2100_priv *priv, u32 status) | |||
2098 | /* Make sure the RF Kill check timer is running */ | 2099 | /* Make sure the RF Kill check timer is running */ |
2099 | priv->stop_rf_kill = 0; | 2100 | priv->stop_rf_kill = 0; |
2100 | cancel_delayed_work(&priv->rf_kill); | 2101 | cancel_delayed_work(&priv->rf_kill); |
2101 | queue_delayed_work(priv->workqueue, &priv->rf_kill, HZ); | 2102 | queue_delayed_work(priv->workqueue, &priv->rf_kill, round_jiffies(HZ)); |
2102 | } | 2103 | } |
2103 | 2104 | ||
2104 | static void isr_scan_complete(struct ipw2100_priv *priv, u32 status) | 2105 | static void isr_scan_complete(struct ipw2100_priv *priv, u32 status) |
@@ -4233,7 +4234,8 @@ static int ipw_radio_kill_sw(struct ipw2100_priv *priv, int disable_radio) | |||
4233 | /* Make sure the RF_KILL check timer is running */ | 4234 | /* Make sure the RF_KILL check timer is running */ |
4234 | priv->stop_rf_kill = 0; | 4235 | priv->stop_rf_kill = 0; |
4235 | cancel_delayed_work(&priv->rf_kill); | 4236 | cancel_delayed_work(&priv->rf_kill); |
4236 | queue_delayed_work(priv->workqueue, &priv->rf_kill, HZ); | 4237 | queue_delayed_work(priv->workqueue, &priv->rf_kill, |
4238 | round_jiffies(HZ)); | ||
4237 | } else | 4239 | } else |
4238 | schedule_reset(priv); | 4240 | schedule_reset(priv); |
4239 | } | 4241 | } |
@@ -5969,7 +5971,8 @@ static void ipw2100_rf_kill(struct work_struct *work) | |||
5969 | if (rf_kill_active(priv)) { | 5971 | if (rf_kill_active(priv)) { |
5970 | IPW_DEBUG_RF_KILL("RF Kill active, rescheduling GPIO check\n"); | 5972 | IPW_DEBUG_RF_KILL("RF Kill active, rescheduling GPIO check\n"); |
5971 | if (!priv->stop_rf_kill) | 5973 | if (!priv->stop_rf_kill) |
5972 | queue_delayed_work(priv->workqueue, &priv->rf_kill, HZ); | 5974 | queue_delayed_work(priv->workqueue, &priv->rf_kill, |
5975 | round_jiffies(HZ)); | ||
5973 | goto exit_unlock; | 5976 | goto exit_unlock; |
5974 | } | 5977 | } |
5975 | 5978 | ||