aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/platform
diff options
context:
space:
mode:
authorCorentin Chary <corentin.chary@gmail.com>2012-11-29 03:12:39 -0500
committerMatthew Garrett <matthew.garrett@nebula.com>2013-02-27 08:30:38 -0500
commit2740e1bd528771dea9003a1c85f7f8d051c2808d (patch)
tree2d5f750b6997c54d7d6d22baa9d42346c7be9bb9 /drivers/platform
parent3ba0302bdd57d225b52c4b4b36975196c1572b3f (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')
-rw-r--r--drivers/platform/x86/asus-laptop.c24
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 */