diff options
author | Corentin Chary <corentincj@iksaif.net> | 2009-08-28 08:56:47 -0400 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2009-08-28 15:21:12 -0400 |
commit | abfa57e15acaa6e1ec567c250e5212bc55d79e43 (patch) | |
tree | 381ebd9e3a14f50bec0f31d967f16580140a5274 /drivers/platform | |
parent | 1d4a3800c764d111d67462a14589ed1611b2f55e (diff) |
asus-laptop: Add *_led_get() functions
Add support for getting led brightness directly from
the hardware. Currently we don't need it, but it is needed
to support keyboard backlight/led.
Signed-off-by: Corentin Chary <corentincj@iksaif.net>
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/platform')
-rw-r--r-- | drivers/platform/x86/asus-laptop.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/platform/x86/asus-laptop.c b/drivers/platform/x86/asus-laptop.c index 23449508d86b..88cc9a1045b4 100644 --- a/drivers/platform/x86/asus-laptop.c +++ b/drivers/platform/x86/asus-laptop.c | |||
@@ -246,12 +246,15 @@ static struct workqueue_struct *led_workqueue; | |||
246 | #define ASUS_LED(object, ledname) \ | 246 | #define ASUS_LED(object, ledname) \ |
247 | static void object##_led_set(struct led_classdev *led_cdev, \ | 247 | static void object##_led_set(struct led_classdev *led_cdev, \ |
248 | enum led_brightness value); \ | 248 | enum led_brightness value); \ |
249 | static enum led_brightness object##_led_get( \ | ||
250 | struct led_classdev *led_cdev); \ | ||
249 | static void object##_led_update(struct work_struct *ignored); \ | 251 | static void object##_led_update(struct work_struct *ignored); \ |
250 | static int object##_led_wk; \ | 252 | static int object##_led_wk; \ |
251 | static DECLARE_WORK(object##_led_work, object##_led_update); \ | 253 | static DECLARE_WORK(object##_led_work, object##_led_update); \ |
252 | static struct led_classdev object##_led = { \ | 254 | static struct led_classdev object##_led = { \ |
253 | .name = "asus::" ledname, \ | 255 | .name = "asus::" ledname, \ |
254 | .brightness_set = object##_led_set, \ | 256 | .brightness_set = object##_led_set, \ |
257 | .brightness_get = object##_led_get, \ | ||
255 | } | 258 | } |
256 | 259 | ||
257 | ASUS_LED(mled, "mail"); | 260 | ASUS_LED(mled, "mail"); |
@@ -399,6 +402,11 @@ static void write_status(acpi_handle handle, int out, int mask) | |||
399 | { \ | 402 | { \ |
400 | int value = object##_led_wk; \ | 403 | int value = object##_led_wk; \ |
401 | write_status(object##_set_handle, value, (mask)); \ | 404 | write_status(object##_set_handle, value, (mask)); \ |
405 | } \ | ||
406 | static enum led_brightness object##_led_get( \ | ||
407 | struct led_classdev *led_cdev) \ | ||
408 | { \ | ||
409 | return led_cdev->brightness; \ | ||
402 | } | 410 | } |
403 | 411 | ||
404 | ASUS_LED_HANDLER(mled, MLED_ON); | 412 | ASUS_LED_HANDLER(mled, MLED_ON); |