summaryrefslogtreecommitdiffstats
path: root/drivers/platform/x86
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2013-11-17 14:00:18 +0100
committerMatthew Garrett <matthew.garrett@nebula.com>2013-11-21 00:50:48 +0100
commitddde708217af6d5fe43c0086247c05ed317076b4 (patch)
treee696fcc1133096c7caccf7ce2718d76a14a6387d /drivers/platform/x86
parentdell-laptop: Only enable rfkill on Latitudes (diff)
downloadlinux-ddde708217af6d5fe43c0086247c05ed317076b4.tar.xz
linux-ddde708217af6d5fe43c0086247c05ed317076b4.zip
dell-laptop: If there is no hwswitch, then clear all hw-controlled bits
To ensure we don't enter any hw-switch related code paths on machines without a hw-switch. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com>
Diffstat (limited to 'drivers/platform/x86')
-rw-r--r--drivers/platform/x86/dell-laptop.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/platform/x86/dell-laptop.c b/drivers/platform/x86/dell-laptop.c
index bae932b60bab..48fabf6b6ecb 100644
--- a/drivers/platform/x86/dell-laptop.c
+++ b/drivers/platform/x86/dell-laptop.c
@@ -548,6 +548,9 @@ static int __init dell_setup_rfkill(void)
buffer->input[0] = 0x2;
dell_send_request(buffer, 17, 11);
hwswitch_state = buffer->output[1];
+ /* If there is no hwswitch, then clear all hw-controlled bits */
+ if (!(status & BIT(0)))
+ hwswitch_state &= ~7;
release_buffer();
if ((status & (1<<2|1<<8)) == (1<<2|1<<8)) {