Skip to content

Commit

Permalink
rfkill: don't impose global states on resume (just restore the previo…
Browse files Browse the repository at this point in the history
…us states)

Once rfkill-input is disabled, the "global" states will only be used as
default initial states.

Since the states will always be the same after resume, we shouldn't
generate events on resume.

Signed-off-by: Alan Jenkins <[email protected]>
Signed-off-by: John W. Linville <[email protected]>
  • Loading branch information
Alan Jenkins authored and linvjw committed Jun 10, 2009
1 parent 869fb3a commit 908209c
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 8 deletions.
7 changes: 4 additions & 3 deletions include/linux/rfkill.h
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,7 @@ void rfkill_destroy(struct rfkill *rfkill);
*
* rfkill drivers that get events when the hard-blocked state changes
* use this function to notify the rfkill core (and through that also
* userspace) of the current state -- they should also use this after
* userspace) of the current state. They should also use this after
* resume if the state could have changed.
*
* You need not (but may) call this function if poll_state is assigned.
Expand All @@ -234,8 +234,9 @@ bool __must_check rfkill_set_hw_state(struct rfkill *rfkill, bool blocked);
* rfkill drivers that get events when the soft-blocked state changes
* (yes, some platforms directly act on input but allow changing again)
* use this function to notify the rfkill core (and through that also
* userspace) of the current state -- they should also use this after
* resume if the state could have changed.
* userspace) of the current state. It is not necessary to notify on
* resume; since hibernation can always change the soft-blocked state,
* the rfkill core will unconditionally restore the previous state.
*
* This function can be called in any context, even from within rfkill
* callbacks.
Expand Down
6 changes: 1 addition & 5 deletions net/rfkill/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -728,15 +728,11 @@ static int rfkill_resume(struct device *dev)
struct rfkill *rfkill = to_rfkill(dev);
bool cur;

mutex_lock(&rfkill_global_mutex);
cur = rfkill_global_states[rfkill->type].cur;
cur = !!(rfkill->state & RFKILL_BLOCK_SW);
rfkill_set_block(rfkill, cur);
mutex_unlock(&rfkill_global_mutex);

rfkill->suspended = false;

schedule_work(&rfkill->uevent_work);

rfkill_resume_polling(rfkill);

return 0;
Expand Down

0 comments on commit 908209c

Please sign in to comment.