|
@@ -565,10 +565,15 @@ static void rfkill_release(struct device *dev)
|
|
|
#ifdef CONFIG_PM
|
|
|
static int rfkill_suspend(struct device *dev, pm_message_t state)
|
|
|
{
|
|
|
+ struct rfkill *rfkill = to_rfkill(dev);
|
|
|
+
|
|
|
/* mark class device as suspended */
|
|
|
if (dev->power.power_state.event != state.event)
|
|
|
dev->power.power_state = state;
|
|
|
|
|
|
+ /* store state for the resume handler */
|
|
|
+ rfkill->state_for_resume = rfkill->state;
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -590,7 +595,7 @@ static int rfkill_resume(struct device *dev)
|
|
|
rfkill_toggle_radio(rfkill,
|
|
|
rfkill_epo_lock_active ?
|
|
|
RFKILL_STATE_SOFT_BLOCKED :
|
|
|
- rfkill->state,
|
|
|
+ rfkill->state_for_resume,
|
|
|
1);
|
|
|
|
|
|
mutex_unlock(&rfkill->mutex);
|