diff options
author | Hans de Goede <hdegoede@redhat.com> | 2013-11-17 14:00:22 +0100 |
---|---|---|
committer | Matthew Garrett <matthew.garrett@nebula.com> | 2013-11-21 00:50:48 +0100 |
commit | 4d39d88ceb83e88953a76df8b1fa10f43f328038 (patch) | |
tree | 8359dc4e871003c692889d305b53b53b24f8a2a3 /drivers/platform | |
parent | dell-laptop: Don't read-back sw_state on machines with a hardware switch (diff) | |
download | linux-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.c | 7 |
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, |