struct led_classdev lightbar_led;
        int lightbar_led_wk;
        struct led_classdev micmute_led;
+       struct led_classdev camera_led;
        struct workqueue_struct *led_workqueue;
        struct work_struct tpd_led_work;
        struct work_struct wlan_led_work;
        return err < 0 ? err : 0;
 }
 
+static enum led_brightness camera_led_get(struct led_classdev *led_cdev)
+{
+       struct asus_wmi *asus;
+       u32 result;
+
+       asus = container_of(led_cdev, struct asus_wmi, camera_led);
+       asus_wmi_get_devstate(asus, ASUS_WMI_DEVID_CAMERA_LED, &result);
+
+       return result & ASUS_WMI_DSTS_BRIGHTNESS_MASK;
+}
+
+static int camera_led_set(struct led_classdev *led_cdev,
+                          enum led_brightness brightness)
+{
+       int state = brightness != LED_OFF;
+       int err;
+
+       err = asus_wmi_set_devstate(ASUS_WMI_DEVID_CAMERA_LED, state, NULL);
+       return err < 0 ? err : 0;
+}
+
 static void asus_wmi_led_exit(struct asus_wmi *asus)
 {
        led_classdev_unregister(&asus->kbd_led);
        led_classdev_unregister(&asus->wlan_led);
        led_classdev_unregister(&asus->lightbar_led);
        led_classdev_unregister(&asus->micmute_led);
+       led_classdev_unregister(&asus->camera_led);
 
        if (asus->led_workqueue)
                destroy_workqueue(asus->led_workqueue);
                        goto error;
        }
 
+       if (asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_CAMERA_LED)) {
+               asus->camera_led.name = "asus::camera";
+               asus->camera_led.max_brightness = 1;
+               asus->camera_led.brightness_get = camera_led_get;
+               asus->camera_led.brightness_set_blocking = camera_led_set;
+
+               rv = led_classdev_register(&asus->platform_device->dev,
+                                               &asus->camera_led);
+               if (rv)
+                       goto error;
+       }
+
 error:
        if (rv)
                asus_wmi_led_exit(asus);
 
 #define ASUS_WMI_DEVID_LED6            0x00020016
 #define ASUS_WMI_DEVID_MICMUTE_LED             0x00040017
 
+/* Disable Camera LED */
+#define ASUS_WMI_DEVID_CAMERA_LED_NEG  0x00060078 /* 0 = on (unused) */
+#define ASUS_WMI_DEVID_CAMERA_LED      0x00060079 /* 1 = on */
+
 /* Backlight and Brightness */
 #define ASUS_WMI_DEVID_ALS_ENABLE      0x00050001 /* Ambient Light Sensor */
 #define ASUS_WMI_DEVID_BACKLIGHT       0x00050011