[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>
This commit is contained in:
parent
1c9d5e41e3
commit
a62056f0b0
|
@ -1768,7 +1768,8 @@ static int ipw2100_up(struct ipw2100_priv *priv, int deferred)
|
||||||
|
|
||||||
if (priv->stop_rf_kill) {
|
if (priv->stop_rf_kill) {
|
||||||
priv->stop_rf_kill = 0;
|
priv->stop_rf_kill = 0;
|
||||||
queue_delayed_work(priv->workqueue, &priv->rf_kill, HZ);
|
queue_delayed_work(priv->workqueue, &priv->rf_kill,
|
||||||
|
round_jiffies(HZ));
|
||||||
}
|
}
|
||||||
|
|
||||||
deferred = 1;
|
deferred = 1;
|
||||||
|
@ -2098,7 +2099,7 @@ static void isr_indicate_rf_kill(struct ipw2100_priv *priv, u32 status)
|
||||||
/* Make sure the RF Kill check timer is running */
|
/* Make sure the RF Kill check timer is running */
|
||||||
priv->stop_rf_kill = 0;
|
priv->stop_rf_kill = 0;
|
||||||
cancel_delayed_work(&priv->rf_kill);
|
cancel_delayed_work(&priv->rf_kill);
|
||||||
queue_delayed_work(priv->workqueue, &priv->rf_kill, HZ);
|
queue_delayed_work(priv->workqueue, &priv->rf_kill, round_jiffies(HZ));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void isr_scan_complete(struct ipw2100_priv *priv, u32 status)
|
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)
|
||||||
/* Make sure the RF_KILL check timer is running */
|
/* Make sure the RF_KILL check timer is running */
|
||||||
priv->stop_rf_kill = 0;
|
priv->stop_rf_kill = 0;
|
||||||
cancel_delayed_work(&priv->rf_kill);
|
cancel_delayed_work(&priv->rf_kill);
|
||||||
queue_delayed_work(priv->workqueue, &priv->rf_kill, HZ);
|
queue_delayed_work(priv->workqueue, &priv->rf_kill,
|
||||||
|
round_jiffies(HZ));
|
||||||
} else
|
} else
|
||||||
schedule_reset(priv);
|
schedule_reset(priv);
|
||||||
}
|
}
|
||||||
|
@ -5969,7 +5971,8 @@ static void ipw2100_rf_kill(struct work_struct *work)
|
||||||
if (rf_kill_active(priv)) {
|
if (rf_kill_active(priv)) {
|
||||||
IPW_DEBUG_RF_KILL("RF Kill active, rescheduling GPIO check\n");
|
IPW_DEBUG_RF_KILL("RF Kill active, rescheduling GPIO check\n");
|
||||||
if (!priv->stop_rf_kill)
|
if (!priv->stop_rf_kill)
|
||||||
queue_delayed_work(priv->workqueue, &priv->rf_kill, HZ);
|
queue_delayed_work(priv->workqueue, &priv->rf_kill,
|
||||||
|
round_jiffies(HZ));
|
||||||
goto exit_unlock;
|
goto exit_unlock;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue