dell-laptop: Do not skip setting blocked bit rfkill_set while hw-blocked
authorHans de Goede <hdegoede@redhat.com>
Sun, 17 Nov 2013 13:00:24 +0000 (14:00 +0100)
committerMatthew Garrett <matthew.garrett@nebula.com>
Wed, 20 Nov 2013 23:50:49 +0000 (18:50 -0500)
Instead when hw-blocked always write 1 to the blocked bit for the radio in
question. This is necessary to properly set all the blocked bits for hw-switch
controlled radios to 1 after power-on and resume.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com>
drivers/platform/x86/dell-laptop.c

index 7f59624d805df7c61bf6c03fddad39df855a8387..b33b77991523d8395b1b7b49a25c38896720a2b8 100644 (file)
@@ -409,15 +409,14 @@ static int dell_rfkill_set(void *data, bool blocked)
        dell_send_request(buffer, 17, 11);
 
        /* If the hardware switch controls this radio, and the hardware
-          switch is disabled, don't allow changing the software state */
+          switch is disabled, always disable the radio */
        if ((hwswitch_state & BIT(hwswitch_bit)) &&
            !(buffer->output[1] & BIT(16)))
-               goto out;
+               disable = 1;
 
        buffer->input[0] = (1 | (radio<<8) | (disable << 16));
        dell_send_request(buffer, 17, 11);
 
-out:
        release_buffer();
        return 0;
 }