union acpi_object param;
        acpi_status status;
 
-       if (data->kbd_adev->power.state != ACPI_STATE_D0) {
-               dev_warn(data->dev, "keyboard touchscreen not in D0, cannot set brightness\n");
-               return -ENXIO;
-       }
-
        dev_dbg(data->dev, "Set KBLC level to %u\n", level);
 
+       /* Ensure keyboard touchpad is on before we call KBLC() */
+       acpi_device_set_power(data->kbd_adev, ACPI_STATE_D0);
+
        input.count = 1;
        input.pointer = ¶m;
 
 
        data->brightness = value;
 
-       if (data->kbd_adev->power.state != ACPI_STATE_D0)
+       if (!test_bit(YB_KBD_IS_ON, &data->flags))
                return 0;
 
        return yogabook_wmi_set_kbd_backlight(data, data->brightness);
 {
        struct yogabook_wmi *data = dev_get_drvdata(dev);
 
-       if (test_bit(YB_KBD_IS_ON, &data->flags)) {
-               /* Ensure keyboard touchpad is on before we call KBLC() */
-               acpi_device_set_power(data->kbd_adev, ACPI_STATE_D0);
+       if (test_bit(YB_KBD_IS_ON, &data->flags))
                yogabook_wmi_set_kbd_backlight(data, data->brightness);
-       }
 
        clear_bit(YB_SUSPENDED, &data->flags);