summaryrefslogtreecommitdiffstats
path: root/drivers/platform
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2013-11-17 14:00:22 +0100
committerMatthew Garrett <matthew.garrett@nebula.com>2013-11-21 00:50:48 +0100
commit4d39d88ceb83e88953a76df8b1fa10f43f328038 (patch)
tree8359dc4e871003c692889d305b53b53b24f8a2a3 /drivers/platform
parentdell-laptop: Don't read-back sw_state on machines with a hardware switch (diff)
downloadlinux-4d39d88ceb83e88953a76df8b1fa10f43f328038.tar.xz
linux-4d39d88ceb83e88953a76df8b1fa10f43f328038.zip
dell-laptop: Allow changing the sw_state while the radio is blocked by hw
This makes dell-laptop's rfkill code consistent with other drivers which allow sw_state changes while hw blocked. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com>
Diffstat (limited to 'drivers/platform')
-rw-r--r--drivers/platform/x86/dell-laptop.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/drivers/platform/x86/dell-laptop.c b/drivers/platform/x86/dell-laptop.c
index 80de0cca1dfa..834f499a6aec 100644
--- a/drivers/platform/x86/dell-laptop.c
+++ b/drivers/platform/x86/dell-laptop.c
@@ -404,7 +404,6 @@ static int dell_rfkill_set(void *data, bool blocked)
int disable = blocked ? 1 : 0;
unsigned long radio = (unsigned long)data;
int hwswitch_bit = (unsigned long)data - 1;
- int ret = 0;
get_buffer();
dell_send_request(buffer, 17, 11);
@@ -412,17 +411,15 @@ static int dell_rfkill_set(void *data, bool blocked)
/* If the hardware switch controls this radio, and the hardware
switch is disabled, don't allow changing the software state */
if ((hwswitch_state & BIT(hwswitch_bit)) &&
- !(buffer->output[1] & BIT(16))) {
- ret = -EINVAL;
+ !(buffer->output[1] & BIT(16)))
goto out;
- }
buffer->input[0] = (1 | (radio<<8) | (disable << 16));
dell_send_request(buffer, 17, 11);
out:
release_buffer();
- return ret;
+ return 0;
}
static void dell_rfkill_update_sw_state(struct rfkill *rfkill, int radio,