ACPI: thinkpad-acpi: add sysfs support to hotkey subdriver
[powerpc.git] / drivers / misc / asus-laptop.c
index 861c399..4b23212 100644 (file)
@@ -195,11 +195,9 @@ static struct backlight_device *asus_backlight_device;
  */
 static int read_brightness(struct backlight_device *bd);
 static int update_bl_status(struct backlight_device *bd);
-static struct backlight_properties asusbl_data = {
-       .owner = THIS_MODULE,
+static struct backlight_ops asusbl_ops = {
        .get_brightness = read_brightness,
        .update_status = update_bl_status,
-       .max_brightness = 15,
 };
 
 /* These functions actually update the LED's, and are called from a
@@ -213,7 +211,7 @@ static struct workqueue_struct *led_workqueue;
                                     enum led_brightness value);        \
        static void object##_led_update(struct work_struct *ignored);   \
        static int object##_led_wk;                                     \
-       DECLARE_WORK(object##_led_work, object##_led_update);           \
+       static DECLARE_WORK(object##_led_work, object##_led_update);    \
        static struct led_classdev object##_led = {                     \
                .name           = "asus:" ledname,                      \
                .brightness_set = object##_led_set,                     \
@@ -349,13 +347,8 @@ static void lcd_blank(int blank)
        struct backlight_device *bd = asus_backlight_device;
 
        if (bd) {
-               down(&bd->sem);
-               if (likely(bd->props)) {
-                       bd->props->power = blank;
-                       if (likely(bd->props->update_status))
-                               bd->props->update_status(bd);
-               }
-               up(&bd->sem);
+               bd->props.power = blank;
+               backlight_update_status(bd);
        }
 }
 
@@ -387,13 +380,13 @@ static int set_brightness(struct backlight_device *bd, int value)
 static int update_bl_status(struct backlight_device *bd)
 {
        int rv;
-       int value = bd->props->brightness;
+       int value = bd->props.brightness;
 
        rv = set_brightness(bd, value);
        if (rv)
                return rv;
 
-       value = (bd->props->power == FB_BLANK_UNBLANK) ? 1 : 0;
+       value = (bd->props.power == FB_BLANK_UNBLANK) ? 1 : 0;
        return set_lcd_state(value);
 }
 
@@ -1019,7 +1012,7 @@ static int asus_backlight_init(struct device *dev)
 
        if (brightness_set_handle && lcd_switch_handle) {
                bd = backlight_device_register(ASUS_HOTK_FILE, dev,
-                                              NULL, &asusbl_data);
+                                              NULL, &asusbl_ops);
                if (IS_ERR(bd)) {
                        printk(ASUS_ERR
                               "Could not register asus backlight device\n");
@@ -1029,14 +1022,10 @@ static int asus_backlight_init(struct device *dev)
 
                asus_backlight_device = bd;
 
-               down(&bd->sem);
-               if (likely(bd->props)) {
-                       bd->props->brightness = read_brightness(NULL);
-                       bd->props->power = FB_BLANK_UNBLANK;
-                       if (likely(bd->props->update_status))
-                               bd->props->update_status(bd);
-               }
-               up(&bd->sem);
+               bd->props.max_brightness = 15;
+               bd->props.brightness = read_brightness(NULL);
+               bd->props.power = FB_BLANK_UNBLANK;
+               backlight_update_status(bd);
        }
        return 0;
 }
@@ -1088,11 +1077,6 @@ static int __init asus_laptop_init(void)
        if (acpi_disabled)
                return -ENODEV;
 
-       if (!acpi_specific_hotkey_enabled) {
-               printk(ASUS_ERR "Using generic hotkey driver\n");
-               return -ENODEV;
-       }
-
        result = acpi_bus_register_driver(&asus_hotk_driver);
        if (result < 0)
                return result;