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>
This commit is contained in:
Corentin Chary 2012-11-29 09:12:39 +01:00 committed by Matthew Garrett
parent 3ba0302bdd
commit 2740e1bd52

View File

@ -128,10 +128,12 @@ MODULE_PARM_DESC(als_status, "Set the ALS status on boot "
/* /*
* Some events we use, same for all Asus * Some events we use, same for all Asus
*/ */
#define ATKD_BR_UP 0x10 /* (event & ~ATKD_BR_UP) = brightness level */ #define ATKD_BRNUP_MIN 0x10
#define ATKD_BR_DOWN 0x20 /* (event & ~ATKD_BR_DOWN) = britghness level */ #define ATKD_BRNUP_MAX 0x1f
#define ATKD_BR_MIN ATKD_BR_UP #define ATKD_BRNDOWN_MIN 0x20
#define ATKD_BR_MAX (ATKD_BR_DOWN | 0xF) /* 0x2f */ #define ATKD_BRNDOWN_MAX 0x2f
#define ATKD_BRNDOWN 0x20
#define ATKD_BRNUP 0x2f
#define ATKD_LCD_ON 0x33 #define ATKD_LCD_ON 0x33
#define ATKD_LCD_OFF 0x34 #define ATKD_LCD_OFF 0x34
@ -301,6 +303,8 @@ static const struct key_entry asus_keymap[] = {
{KE_KEY, 0x17, { KEY_ZOOM } }, {KE_KEY, 0x17, { KEY_ZOOM } },
{KE_KEY, 0x1f, { KEY_BATTERY } }, {KE_KEY, 0x1f, { KEY_BATTERY } },
/* End of Lenovo SL Specific keycodes */ /* End of Lenovo SL Specific keycodes */
{KE_KEY, ATKD_BRNDOWN, { KEY_BRIGHTNESSDOWN } },
{KE_KEY, ATKD_BRNUP, { KEY_BRIGHTNESSUP } },
{KE_KEY, 0x30, { KEY_VOLUMEUP } }, {KE_KEY, 0x30, { KEY_VOLUMEUP } },
{KE_KEY, 0x31, { KEY_VOLUMEDOWN } }, {KE_KEY, 0x31, { KEY_VOLUMEDOWN } },
{KE_KEY, 0x32, { KEY_MUTE } }, {KE_KEY, 0x32, { KEY_MUTE } },
@ -1544,15 +1548,19 @@ static void asus_acpi_notify(struct acpi_device *device, u32 event)
dev_name(&asus->device->dev), event, dev_name(&asus->device->dev), event,
count); count);
/* Brightness events are special */ if (event >= ATKD_BRNUP_MIN && event <= ATKD_BRNUP_MAX)
if (event >= ATKD_BR_MIN && event <= ATKD_BR_MAX) { event = ATKD_BRNUP;
else if (event >= ATKD_BRNDOWN_MIN &&
event <= ATKD_BRNDOWN_MAX)
event = ATKD_BRNDOWN;
/* Ignore them completely if the acpi video driver is used */ /* Brightness events are special */
if (event == ATKD_BRNDOWN || event == ATKD_BRNUP) {
if (asus->backlight_device != NULL) { if (asus->backlight_device != NULL) {
/* Update the backlight device. */ /* Update the backlight device. */
asus_backlight_notify(asus); asus_backlight_notify(asus);
return ;
} }
return ;
} }
/* Accelerometer "coarse orientation change" event */ /* Accelerometer "coarse orientation change" event */