diff options
author | Corentin Chary <corentin.chary@gmail.com> | 2012-11-29 03:12:39 -0500 |
---|---|---|
committer | Matthew Garrett <matthew.garrett@nebula.com> | 2013-02-27 08:30:38 -0500 |
commit | 2740e1bd528771dea9003a1c85f7f8d051c2808d (patch) | |
tree | 2d5f750b6997c54d7d6d22baa9d42346c7be9bb9 /drivers/platform/x86 | |
parent | 3ba0302bdd57d225b52c4b4b36975196c1572b3f (diff) |
asus-laptop: always report brightness key events
Signed-off-by: Corentin Chary <corentin.chary@gmail.com>
Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com>
Diffstat (limited to 'drivers/platform/x86')
-rw-r--r-- | drivers/platform/x86/asus-laptop.c | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/drivers/platform/x86/asus-laptop.c b/drivers/platform/x86/asus-laptop.c index a8792e81d1bc..0eea09c1c134 100644 --- a/drivers/platform/x86/asus-laptop.c +++ b/drivers/platform/x86/asus-laptop.c | |||
@@ -128,10 +128,12 @@ MODULE_PARM_DESC(als_status, "Set the ALS status on boot " | |||
128 | /* | 128 | /* |
129 | * Some events we use, same for all Asus | 129 | * Some events we use, same for all Asus |
130 | */ | 130 | */ |
131 | #define ATKD_BR_UP 0x10 /* (event & ~ATKD_BR_UP) = brightness level */ | 131 | #define ATKD_BRNUP_MIN 0x10 |
132 | #define ATKD_BR_DOWN 0x20 /* (event & ~ATKD_BR_DOWN) = britghness level */ | 132 | #define ATKD_BRNUP_MAX 0x1f |
133 | #define ATKD_BR_MIN ATKD_BR_UP | 133 | #define ATKD_BRNDOWN_MIN 0x20 |
134 | #define ATKD_BR_MAX (ATKD_BR_DOWN | 0xF) /* 0x2f */ | 134 | #define ATKD_BRNDOWN_MAX 0x2f |
135 | #define ATKD_BRNDOWN 0x20 | ||
136 | #define ATKD_BRNUP 0x2f | ||
135 | #define ATKD_LCD_ON 0x33 | 137 | #define ATKD_LCD_ON 0x33 |
136 | #define ATKD_LCD_OFF 0x34 | 138 | #define ATKD_LCD_OFF 0x34 |
137 | 139 | ||
@@ -301,6 +303,8 @@ static const struct key_entry asus_keymap[] = { | |||
301 | {KE_KEY, 0x17, { KEY_ZOOM } }, | 303 | {KE_KEY, 0x17, { KEY_ZOOM } }, |
302 | {KE_KEY, 0x1f, { KEY_BATTERY } }, | 304 | {KE_KEY, 0x1f, { KEY_BATTERY } }, |
303 | /* End of Lenovo SL Specific keycodes */ | 305 | /* End of Lenovo SL Specific keycodes */ |
306 | {KE_KEY, ATKD_BRNDOWN, { KEY_BRIGHTNESSDOWN } }, | ||
307 | {KE_KEY, ATKD_BRNUP, { KEY_BRIGHTNESSUP } }, | ||
304 | {KE_KEY, 0x30, { KEY_VOLUMEUP } }, | 308 | {KE_KEY, 0x30, { KEY_VOLUMEUP } }, |
305 | {KE_KEY, 0x31, { KEY_VOLUMEDOWN } }, | 309 | {KE_KEY, 0x31, { KEY_VOLUMEDOWN } }, |
306 | {KE_KEY, 0x32, { KEY_MUTE } }, | 310 | {KE_KEY, 0x32, { KEY_MUTE } }, |
@@ -1544,15 +1548,19 @@ static void asus_acpi_notify(struct acpi_device *device, u32 event) | |||
1544 | dev_name(&asus->device->dev), event, | 1548 | dev_name(&asus->device->dev), event, |
1545 | count); | 1549 | count); |
1546 | 1550 | ||
1547 | /* Brightness events are special */ | 1551 | if (event >= ATKD_BRNUP_MIN && event <= ATKD_BRNUP_MAX) |
1548 | if (event >= ATKD_BR_MIN && event <= ATKD_BR_MAX) { | 1552 | event = ATKD_BRNUP; |
1553 | else if (event >= ATKD_BRNDOWN_MIN && | ||
1554 | event <= ATKD_BRNDOWN_MAX) | ||
1555 | event = ATKD_BRNDOWN; | ||
1549 | 1556 | ||
1550 | /* Ignore them completely if the acpi video driver is used */ | 1557 | /* Brightness events are special */ |
1558 | if (event == ATKD_BRNDOWN || event == ATKD_BRNUP) { | ||
1551 | if (asus->backlight_device != NULL) { | 1559 | if (asus->backlight_device != NULL) { |
1552 | /* Update the backlight device. */ | 1560 | /* Update the backlight device. */ |
1553 | asus_backlight_notify(asus); | 1561 | asus_backlight_notify(asus); |
1562 | return ; | ||
1554 | } | 1563 | } |
1555 | return ; | ||
1556 | } | 1564 | } |
1557 | 1565 | ||
1558 | /* Accelerometer "coarse orientation change" event */ | 1566 | /* Accelerometer "coarse orientation change" event */ |