Commit 4d39d88c authored by Hans de Goede's avatar Hans de Goede Committed by Matthew Garrett

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: default avatarHans de Goede <hdegoede@redhat.com>
Signed-off-by: default avatarMatthew Garrett <matthew.garrett@nebula.com>
parent 3f56588a
...@@ -404,7 +404,6 @@ static int dell_rfkill_set(void *data, bool blocked) ...@@ -404,7 +404,6 @@ static int dell_rfkill_set(void *data, bool blocked)
int disable = blocked ? 1 : 0; int disable = blocked ? 1 : 0;
unsigned long radio = (unsigned long)data; unsigned long radio = (unsigned long)data;
int hwswitch_bit = (unsigned long)data - 1; int hwswitch_bit = (unsigned long)data - 1;
int ret = 0;
get_buffer(); get_buffer();
dell_send_request(buffer, 17, 11); dell_send_request(buffer, 17, 11);
...@@ -412,17 +411,15 @@ static int dell_rfkill_set(void *data, bool blocked) ...@@ -412,17 +411,15 @@ static int dell_rfkill_set(void *data, bool blocked)
/* If the hardware switch controls this radio, and the hardware /* If the hardware switch controls this radio, and the hardware
switch is disabled, don't allow changing the software state */ switch is disabled, don't allow changing the software state */
if ((hwswitch_state & BIT(hwswitch_bit)) && if ((hwswitch_state & BIT(hwswitch_bit)) &&
!(buffer->output[1] & BIT(16))) { !(buffer->output[1] & BIT(16)))
ret = -EINVAL;
goto out; goto out;
}
buffer->input[0] = (1 | (radio<<8) | (disable << 16)); buffer->input[0] = (1 | (radio<<8) | (disable << 16));
dell_send_request(buffer, 17, 11); dell_send_request(buffer, 17, 11);
out: out:
release_buffer(); release_buffer();
return ret; return 0;
} }
static void dell_rfkill_update_sw_state(struct rfkill *rfkill, int radio, static void dell_rfkill_update_sw_state(struct rfkill *rfkill, int radio,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment