* [PATCH] xo1-rfkill: only act when blocked state is changed
@ 2012-04-18 17:08 Daniel Drake
2012-05-03 20:33 ` Matthew Garrett
0 siblings, 1 reply; 2+ messages in thread
From: Daniel Drake @ 2012-04-18 17:08 UTC (permalink / raw)
To: mjg; +Cc: platform-driver-x86, pgf, dilinger
The XO-1 rfkill driver should only send EC commands when changing
between blocked/unblocked state.
The rfkill switch is asked to be unblocked on every resume (even when
the card was never blocked before) and sending a EC_WLAN_LEAVE_RESET
command here upsets the resume sequence of the libertas driver. Adding
the check to avoid the spurious EC_WLAN_LEAVE_RESET fixes the wifi resume
behaviour.
The rfkill state is maintained by the hardware over suspend/resume
so no extra consideration is needed here.
Signed-off-by: Daniel Drake <dsd@laptop.org>
---
drivers/platform/x86/xo1-rfkill.c | 13 ++++++++++++-
1 files changed, 12 insertions(+), 1 deletions(-)
diff --git a/drivers/platform/x86/xo1-rfkill.c b/drivers/platform/x86/xo1-rfkill.c
index 41781ed..b57ad86 100644
--- a/drivers/platform/x86/xo1-rfkill.c
+++ b/drivers/platform/x86/xo1-rfkill.c
@@ -15,15 +15,26 @@
#include <asm/olpc.h>
+static bool card_blocked;
+
static int rfkill_set_block(void *data, bool blocked)
{
unsigned char cmd;
+ int r;
+
+ if (blocked == card_blocked)
+ return 0;
+
if (blocked)
cmd = EC_WLAN_ENTER_RESET;
else
cmd = EC_WLAN_LEAVE_RESET;
- return olpc_ec_cmd(cmd, NULL, 0, NULL, 0);
+ r = olpc_ec_cmd(cmd, NULL, 0, NULL, 0);
+ if (r == 0)
+ card_blocked = blocked;
+
+ return r;
}
static const struct rfkill_ops rfkill_ops = {
--
1.7.7.6
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] xo1-rfkill: only act when blocked state is changed
2012-04-18 17:08 [PATCH] xo1-rfkill: only act when blocked state is changed Daniel Drake
@ 2012-05-03 20:33 ` Matthew Garrett
0 siblings, 0 replies; 2+ messages in thread
From: Matthew Garrett @ 2012-05-03 20:33 UTC (permalink / raw)
To: Daniel Drake; +Cc: platform-driver-x86, pgf, dilinger
Applied to -next, thanks
--
Matthew Garrett | mjg59@srcf.ucam.org
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2012-05-03 20:34 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-04-18 17:08 [PATCH] xo1-rfkill: only act when blocked state is changed Daniel Drake
2012-05-03 20:33 ` Matthew Garrett
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.