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); |
