mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-01-19 17:26:19 +07:00
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: Input: document some of keycodes Input: add a new EV_SW SW_RADIO event, for radio switches on laptops Input: serio - take drv_mutex in serio_cleanup() Input: atkbd - use printk_ratelimit for spurious ACK messages Input: atkbd - throttle LED switching Input: i8042 - add HP Pavilion ZT1000 to the MUX blacklist
This commit is contained in:
commit
cab8e5c444
@ -219,7 +219,8 @@ struct atkbd {
|
|||||||
unsigned long time;
|
unsigned long time;
|
||||||
unsigned long err_count;
|
unsigned long err_count;
|
||||||
|
|
||||||
struct work_struct event_work;
|
struct delayed_work event_work;
|
||||||
|
unsigned long event_jiffies;
|
||||||
struct mutex event_mutex;
|
struct mutex event_mutex;
|
||||||
unsigned long event_mask;
|
unsigned long event_mask;
|
||||||
};
|
};
|
||||||
@ -408,9 +409,10 @@ static irqreturn_t atkbd_interrupt(struct serio *serio, unsigned char data,
|
|||||||
goto out;
|
goto out;
|
||||||
case ATKBD_RET_ACK:
|
case ATKBD_RET_ACK:
|
||||||
case ATKBD_RET_NAK:
|
case ATKBD_RET_NAK:
|
||||||
printk(KERN_WARNING "atkbd.c: Spurious %s on %s. "
|
if (printk_ratelimit())
|
||||||
"Some program might be trying access hardware directly.\n",
|
printk(KERN_WARNING "atkbd.c: Spurious %s on %s. "
|
||||||
data == ATKBD_RET_ACK ? "ACK" : "NAK", serio->phys);
|
"Some program might be trying access hardware directly.\n",
|
||||||
|
data == ATKBD_RET_ACK ? "ACK" : "NAK", serio->phys);
|
||||||
goto out;
|
goto out;
|
||||||
case ATKBD_RET_HANGEUL:
|
case ATKBD_RET_HANGEUL:
|
||||||
case ATKBD_RET_HANJA:
|
case ATKBD_RET_HANJA:
|
||||||
@ -565,7 +567,7 @@ static int atkbd_set_leds(struct atkbd *atkbd)
|
|||||||
|
|
||||||
static void atkbd_event_work(struct work_struct *work)
|
static void atkbd_event_work(struct work_struct *work)
|
||||||
{
|
{
|
||||||
struct atkbd *atkbd = container_of(work, struct atkbd, event_work);
|
struct atkbd *atkbd = container_of(work, struct atkbd, event_work.work);
|
||||||
|
|
||||||
mutex_lock(&atkbd->event_mutex);
|
mutex_lock(&atkbd->event_mutex);
|
||||||
|
|
||||||
@ -578,13 +580,31 @@ static void atkbd_event_work(struct work_struct *work)
|
|||||||
mutex_unlock(&atkbd->event_mutex);
|
mutex_unlock(&atkbd->event_mutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Schedule switch for execution. We need to throttle requests,
|
||||||
|
* otherwise keyboard may become unresponsive.
|
||||||
|
*/
|
||||||
|
static void atkbd_schedule_event_work(struct atkbd *atkbd, int event_bit)
|
||||||
|
{
|
||||||
|
unsigned long delay = msecs_to_jiffies(50);
|
||||||
|
|
||||||
|
if (time_after(jiffies, atkbd->event_jiffies + delay))
|
||||||
|
delay = 0;
|
||||||
|
|
||||||
|
atkbd->event_jiffies = jiffies;
|
||||||
|
set_bit(event_bit, &atkbd->event_mask);
|
||||||
|
wmb();
|
||||||
|
schedule_delayed_work(&atkbd->event_work, delay);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Event callback from the input module. Events that change the state of
|
* Event callback from the input module. Events that change the state of
|
||||||
* the hardware are processed here. If action can not be performed in
|
* the hardware are processed here. If action can not be performed in
|
||||||
* interrupt context it is offloaded to atkbd_event_work.
|
* interrupt context it is offloaded to atkbd_event_work.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static int atkbd_event(struct input_dev *dev, unsigned int type, unsigned int code, int value)
|
static int atkbd_event(struct input_dev *dev,
|
||||||
|
unsigned int type, unsigned int code, int value)
|
||||||
{
|
{
|
||||||
struct atkbd *atkbd = input_get_drvdata(dev);
|
struct atkbd *atkbd = input_get_drvdata(dev);
|
||||||
|
|
||||||
@ -594,19 +614,12 @@ static int atkbd_event(struct input_dev *dev, unsigned int type, unsigned int co
|
|||||||
switch (type) {
|
switch (type) {
|
||||||
|
|
||||||
case EV_LED:
|
case EV_LED:
|
||||||
set_bit(ATKBD_LED_EVENT_BIT, &atkbd->event_mask);
|
atkbd_schedule_event_work(atkbd, ATKBD_LED_EVENT_BIT);
|
||||||
wmb();
|
|
||||||
schedule_work(&atkbd->event_work);
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
case EV_REP:
|
case EV_REP:
|
||||||
|
if (!atkbd->softrepeat)
|
||||||
if (!atkbd->softrepeat) {
|
atkbd_schedule_event_work(atkbd, ATKBD_REP_EVENT_BIT);
|
||||||
set_bit(ATKBD_REP_EVENT_BIT, &atkbd->event_mask);
|
|
||||||
wmb();
|
|
||||||
schedule_work(&atkbd->event_work);
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -940,7 +953,7 @@ static int atkbd_connect(struct serio *serio, struct serio_driver *drv)
|
|||||||
|
|
||||||
atkbd->dev = dev;
|
atkbd->dev = dev;
|
||||||
ps2_init(&atkbd->ps2dev, serio);
|
ps2_init(&atkbd->ps2dev, serio);
|
||||||
INIT_WORK(&atkbd->event_work, atkbd_event_work);
|
INIT_DELAYED_WORK(&atkbd->event_work, atkbd_event_work);
|
||||||
mutex_init(&atkbd->event_mutex);
|
mutex_init(&atkbd->event_mutex);
|
||||||
|
|
||||||
switch (serio->id.type) {
|
switch (serio->id.type) {
|
||||||
|
@ -199,6 +199,17 @@ static struct dmi_system_id __initdata i8042_dmi_nomux_table[] = {
|
|||||||
DMI_MATCH(DMI_PRODUCT_NAME, "Pavilion dv4000 (EA032EA#ABF)"),
|
DMI_MATCH(DMI_PRODUCT_NAME, "Pavilion dv4000 (EA032EA#ABF)"),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* Like DV4017EA does not raise AUXERR for errors on MUX ports.
|
||||||
|
*/
|
||||||
|
.ident = "HP Pavilion ZT1000",
|
||||||
|
.matches = {
|
||||||
|
DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
|
||||||
|
DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion Notebook PC"),
|
||||||
|
DMI_MATCH(DMI_PRODUCT_VERSION, "HP Pavilion Notebook ZT1000"),
|
||||||
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
.ident = "Toshiba P10",
|
.ident = "Toshiba P10",
|
||||||
.matches = {
|
.matches = {
|
||||||
|
@ -769,8 +769,10 @@ static int serio_driver_remove(struct device *dev)
|
|||||||
|
|
||||||
static void serio_cleanup(struct serio *serio)
|
static void serio_cleanup(struct serio *serio)
|
||||||
{
|
{
|
||||||
|
mutex_lock(&serio->drv_mutex);
|
||||||
if (serio->drv && serio->drv->cleanup)
|
if (serio->drv && serio->drv->cleanup)
|
||||||
serio->drv->cleanup(serio);
|
serio->drv->cleanup(serio);
|
||||||
|
mutex_unlock(&serio->drv_mutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void serio_shutdown(struct device *dev)
|
static void serio_shutdown(struct device *dev)
|
||||||
|
@ -108,6 +108,13 @@ struct input_absinfo {
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Keys and buttons
|
* Keys and buttons
|
||||||
|
*
|
||||||
|
* Most of the keys/buttons are modeled after USB HUT 1.12
|
||||||
|
* (see http://www.usb.org/developers/hidpage).
|
||||||
|
* Abbreviations in the comments:
|
||||||
|
* AC - Application Control
|
||||||
|
* AL - Application Launch Button
|
||||||
|
* SC - System Control
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define KEY_RESERVED 0
|
#define KEY_RESERVED 0
|
||||||
@ -226,7 +233,7 @@ struct input_absinfo {
|
|||||||
#define KEY_MUTE 113
|
#define KEY_MUTE 113
|
||||||
#define KEY_VOLUMEDOWN 114
|
#define KEY_VOLUMEDOWN 114
|
||||||
#define KEY_VOLUMEUP 115
|
#define KEY_VOLUMEUP 115
|
||||||
#define KEY_POWER 116
|
#define KEY_POWER 116 /* SC System Power Down */
|
||||||
#define KEY_KPEQUAL 117
|
#define KEY_KPEQUAL 117
|
||||||
#define KEY_KPPLUSMINUS 118
|
#define KEY_KPPLUSMINUS 118
|
||||||
#define KEY_PAUSE 119
|
#define KEY_PAUSE 119
|
||||||
@ -240,38 +247,39 @@ struct input_absinfo {
|
|||||||
#define KEY_RIGHTMETA 126
|
#define KEY_RIGHTMETA 126
|
||||||
#define KEY_COMPOSE 127
|
#define KEY_COMPOSE 127
|
||||||
|
|
||||||
#define KEY_STOP 128
|
#define KEY_STOP 128 /* AC Stop */
|
||||||
#define KEY_AGAIN 129
|
#define KEY_AGAIN 129
|
||||||
#define KEY_PROPS 130
|
#define KEY_PROPS 130 /* AC Properties */
|
||||||
#define KEY_UNDO 131
|
#define KEY_UNDO 131 /* AC Undo */
|
||||||
#define KEY_FRONT 132
|
#define KEY_FRONT 132
|
||||||
#define KEY_COPY 133
|
#define KEY_COPY 133 /* AC Copy */
|
||||||
#define KEY_OPEN 134
|
#define KEY_OPEN 134 /* AC Open */
|
||||||
#define KEY_PASTE 135
|
#define KEY_PASTE 135 /* AC Paste */
|
||||||
#define KEY_FIND 136
|
#define KEY_FIND 136 /* AC Search */
|
||||||
#define KEY_CUT 137
|
#define KEY_CUT 137 /* AC Cut */
|
||||||
#define KEY_HELP 138
|
#define KEY_HELP 138 /* AL Integrated Help Center */
|
||||||
#define KEY_MENU 139
|
#define KEY_MENU 139 /* Menu (show menu) */
|
||||||
#define KEY_CALC 140
|
#define KEY_CALC 140 /* AL Calculator */
|
||||||
#define KEY_SETUP 141
|
#define KEY_SETUP 141
|
||||||
#define KEY_SLEEP 142
|
#define KEY_SLEEP 142 /* SC System Sleep */
|
||||||
#define KEY_WAKEUP 143
|
#define KEY_WAKEUP 143 /* System Wake Up */
|
||||||
#define KEY_FILE 144
|
#define KEY_FILE 144 /* AL Local Machine Browser */
|
||||||
#define KEY_SENDFILE 145
|
#define KEY_SENDFILE 145
|
||||||
#define KEY_DELETEFILE 146
|
#define KEY_DELETEFILE 146
|
||||||
#define KEY_XFER 147
|
#define KEY_XFER 147
|
||||||
#define KEY_PROG1 148
|
#define KEY_PROG1 148
|
||||||
#define KEY_PROG2 149
|
#define KEY_PROG2 149
|
||||||
#define KEY_WWW 150
|
#define KEY_WWW 150 /* AL Internet Browser */
|
||||||
#define KEY_MSDOS 151
|
#define KEY_MSDOS 151
|
||||||
#define KEY_COFFEE 152
|
#define KEY_COFFEE 152 /* AL Terminal Lock/Screensaver */
|
||||||
|
#define KEY_SCREENLOCK KEY_COFFEE
|
||||||
#define KEY_DIRECTION 153
|
#define KEY_DIRECTION 153
|
||||||
#define KEY_CYCLEWINDOWS 154
|
#define KEY_CYCLEWINDOWS 154
|
||||||
#define KEY_MAIL 155
|
#define KEY_MAIL 155
|
||||||
#define KEY_BOOKMARKS 156
|
#define KEY_BOOKMARKS 156 /* AC Bookmarks */
|
||||||
#define KEY_COMPUTER 157
|
#define KEY_COMPUTER 157
|
||||||
#define KEY_BACK 158
|
#define KEY_BACK 158 /* AC Back */
|
||||||
#define KEY_FORWARD 159
|
#define KEY_FORWARD 159 /* AC Forward */
|
||||||
#define KEY_CLOSECD 160
|
#define KEY_CLOSECD 160
|
||||||
#define KEY_EJECTCD 161
|
#define KEY_EJECTCD 161
|
||||||
#define KEY_EJECTCLOSECD 162
|
#define KEY_EJECTCLOSECD 162
|
||||||
@ -281,20 +289,20 @@ struct input_absinfo {
|
|||||||
#define KEY_STOPCD 166
|
#define KEY_STOPCD 166
|
||||||
#define KEY_RECORD 167
|
#define KEY_RECORD 167
|
||||||
#define KEY_REWIND 168
|
#define KEY_REWIND 168
|
||||||
#define KEY_PHONE 169
|
#define KEY_PHONE 169 /* Media Select Telephone */
|
||||||
#define KEY_ISO 170
|
#define KEY_ISO 170
|
||||||
#define KEY_CONFIG 171
|
#define KEY_CONFIG 171 /* AL Consumer Control Configuration */
|
||||||
#define KEY_HOMEPAGE 172
|
#define KEY_HOMEPAGE 172 /* AC Home */
|
||||||
#define KEY_REFRESH 173
|
#define KEY_REFRESH 173 /* AC Refresh */
|
||||||
#define KEY_EXIT 174
|
#define KEY_EXIT 174 /* AC Exit */
|
||||||
#define KEY_MOVE 175
|
#define KEY_MOVE 175
|
||||||
#define KEY_EDIT 176
|
#define KEY_EDIT 176
|
||||||
#define KEY_SCROLLUP 177
|
#define KEY_SCROLLUP 177
|
||||||
#define KEY_SCROLLDOWN 178
|
#define KEY_SCROLLDOWN 178
|
||||||
#define KEY_KPLEFTPAREN 179
|
#define KEY_KPLEFTPAREN 179
|
||||||
#define KEY_KPRIGHTPAREN 180
|
#define KEY_KPRIGHTPAREN 180
|
||||||
#define KEY_NEW 181
|
#define KEY_NEW 181 /* AC New */
|
||||||
#define KEY_REDO 182
|
#define KEY_REDO 182 /* AC Redo/Repeat */
|
||||||
|
|
||||||
#define KEY_F13 183
|
#define KEY_F13 183
|
||||||
#define KEY_F14 184
|
#define KEY_F14 184
|
||||||
@ -314,11 +322,11 @@ struct input_absinfo {
|
|||||||
#define KEY_PROG3 202
|
#define KEY_PROG3 202
|
||||||
#define KEY_PROG4 203
|
#define KEY_PROG4 203
|
||||||
#define KEY_SUSPEND 205
|
#define KEY_SUSPEND 205
|
||||||
#define KEY_CLOSE 206
|
#define KEY_CLOSE 206 /* AC Close */
|
||||||
#define KEY_PLAY 207
|
#define KEY_PLAY 207
|
||||||
#define KEY_FASTFORWARD 208
|
#define KEY_FASTFORWARD 208
|
||||||
#define KEY_BASSBOOST 209
|
#define KEY_BASSBOOST 209
|
||||||
#define KEY_PRINT 210
|
#define KEY_PRINT 210 /* AC Print */
|
||||||
#define KEY_HP 211
|
#define KEY_HP 211
|
||||||
#define KEY_CAMERA 212
|
#define KEY_CAMERA 212
|
||||||
#define KEY_SOUND 213
|
#define KEY_SOUND 213
|
||||||
@ -327,11 +335,11 @@ struct input_absinfo {
|
|||||||
#define KEY_CHAT 216
|
#define KEY_CHAT 216
|
||||||
#define KEY_SEARCH 217
|
#define KEY_SEARCH 217
|
||||||
#define KEY_CONNECT 218
|
#define KEY_CONNECT 218
|
||||||
#define KEY_FINANCE 219
|
#define KEY_FINANCE 219 /* AL Checkbook/Finance */
|
||||||
#define KEY_SPORT 220
|
#define KEY_SPORT 220
|
||||||
#define KEY_SHOP 221
|
#define KEY_SHOP 221
|
||||||
#define KEY_ALTERASE 222
|
#define KEY_ALTERASE 222
|
||||||
#define KEY_CANCEL 223
|
#define KEY_CANCEL 223 /* AC Cancel */
|
||||||
#define KEY_BRIGHTNESSDOWN 224
|
#define KEY_BRIGHTNESSDOWN 224
|
||||||
#define KEY_BRIGHTNESSUP 225
|
#define KEY_BRIGHTNESSUP 225
|
||||||
#define KEY_MEDIA 226
|
#define KEY_MEDIA 226
|
||||||
@ -341,10 +349,10 @@ struct input_absinfo {
|
|||||||
#define KEY_KBDILLUMDOWN 229
|
#define KEY_KBDILLUMDOWN 229
|
||||||
#define KEY_KBDILLUMUP 230
|
#define KEY_KBDILLUMUP 230
|
||||||
|
|
||||||
#define KEY_SEND 231
|
#define KEY_SEND 231 /* AC Send */
|
||||||
#define KEY_REPLY 232
|
#define KEY_REPLY 232 /* AC Reply */
|
||||||
#define KEY_FORWARDMAIL 233
|
#define KEY_FORWARDMAIL 233 /* AC Forward Msg */
|
||||||
#define KEY_SAVE 234
|
#define KEY_SAVE 234 /* AC Save */
|
||||||
#define KEY_DOCUMENTS 235
|
#define KEY_DOCUMENTS 235
|
||||||
|
|
||||||
#define KEY_BATTERY 236
|
#define KEY_BATTERY 236
|
||||||
@ -433,15 +441,15 @@ struct input_absinfo {
|
|||||||
#define KEY_CLEAR 0x163
|
#define KEY_CLEAR 0x163
|
||||||
#define KEY_POWER2 0x164
|
#define KEY_POWER2 0x164
|
||||||
#define KEY_OPTION 0x165
|
#define KEY_OPTION 0x165
|
||||||
#define KEY_INFO 0x166
|
#define KEY_INFO 0x166 /* AL OEM Features/Tips/Tutorial */
|
||||||
#define KEY_TIME 0x167
|
#define KEY_TIME 0x167
|
||||||
#define KEY_VENDOR 0x168
|
#define KEY_VENDOR 0x168
|
||||||
#define KEY_ARCHIVE 0x169
|
#define KEY_ARCHIVE 0x169
|
||||||
#define KEY_PROGRAM 0x16a
|
#define KEY_PROGRAM 0x16a /* Media Select Program Guide */
|
||||||
#define KEY_CHANNEL 0x16b
|
#define KEY_CHANNEL 0x16b
|
||||||
#define KEY_FAVORITES 0x16c
|
#define KEY_FAVORITES 0x16c
|
||||||
#define KEY_EPG 0x16d
|
#define KEY_EPG 0x16d
|
||||||
#define KEY_PVR 0x16e
|
#define KEY_PVR 0x16e /* Media Select Home */
|
||||||
#define KEY_MHP 0x16f
|
#define KEY_MHP 0x16f
|
||||||
#define KEY_LANGUAGE 0x170
|
#define KEY_LANGUAGE 0x170
|
||||||
#define KEY_TITLE 0x171
|
#define KEY_TITLE 0x171
|
||||||
@ -451,36 +459,36 @@ struct input_absinfo {
|
|||||||
#define KEY_MODE 0x175
|
#define KEY_MODE 0x175
|
||||||
#define KEY_KEYBOARD 0x176
|
#define KEY_KEYBOARD 0x176
|
||||||
#define KEY_SCREEN 0x177
|
#define KEY_SCREEN 0x177
|
||||||
#define KEY_PC 0x178
|
#define KEY_PC 0x178 /* Media Select Computer */
|
||||||
#define KEY_TV 0x179
|
#define KEY_TV 0x179 /* Media Select TV */
|
||||||
#define KEY_TV2 0x17a
|
#define KEY_TV2 0x17a /* Media Select Cable */
|
||||||
#define KEY_VCR 0x17b
|
#define KEY_VCR 0x17b /* Media Select VCR */
|
||||||
#define KEY_VCR2 0x17c
|
#define KEY_VCR2 0x17c /* VCR Plus */
|
||||||
#define KEY_SAT 0x17d
|
#define KEY_SAT 0x17d /* Media Select Satellite */
|
||||||
#define KEY_SAT2 0x17e
|
#define KEY_SAT2 0x17e
|
||||||
#define KEY_CD 0x17f
|
#define KEY_CD 0x17f /* Media Select CD */
|
||||||
#define KEY_TAPE 0x180
|
#define KEY_TAPE 0x180 /* Media Select Tape */
|
||||||
#define KEY_RADIO 0x181
|
#define KEY_RADIO 0x181
|
||||||
#define KEY_TUNER 0x182
|
#define KEY_TUNER 0x182 /* Media Select Tuner */
|
||||||
#define KEY_PLAYER 0x183
|
#define KEY_PLAYER 0x183
|
||||||
#define KEY_TEXT 0x184
|
#define KEY_TEXT 0x184
|
||||||
#define KEY_DVD 0x185
|
#define KEY_DVD 0x185 /* Media Select DVD */
|
||||||
#define KEY_AUX 0x186
|
#define KEY_AUX 0x186
|
||||||
#define KEY_MP3 0x187
|
#define KEY_MP3 0x187
|
||||||
#define KEY_AUDIO 0x188
|
#define KEY_AUDIO 0x188
|
||||||
#define KEY_VIDEO 0x189
|
#define KEY_VIDEO 0x189
|
||||||
#define KEY_DIRECTORY 0x18a
|
#define KEY_DIRECTORY 0x18a
|
||||||
#define KEY_LIST 0x18b
|
#define KEY_LIST 0x18b
|
||||||
#define KEY_MEMO 0x18c
|
#define KEY_MEMO 0x18c /* Media Select Messages */
|
||||||
#define KEY_CALENDAR 0x18d
|
#define KEY_CALENDAR 0x18d
|
||||||
#define KEY_RED 0x18e
|
#define KEY_RED 0x18e
|
||||||
#define KEY_GREEN 0x18f
|
#define KEY_GREEN 0x18f
|
||||||
#define KEY_YELLOW 0x190
|
#define KEY_YELLOW 0x190
|
||||||
#define KEY_BLUE 0x191
|
#define KEY_BLUE 0x191
|
||||||
#define KEY_CHANNELUP 0x192
|
#define KEY_CHANNELUP 0x192 /* Channel Increment */
|
||||||
#define KEY_CHANNELDOWN 0x193
|
#define KEY_CHANNELDOWN 0x193 /* Channel Decrement */
|
||||||
#define KEY_FIRST 0x194
|
#define KEY_FIRST 0x194
|
||||||
#define KEY_LAST 0x195
|
#define KEY_LAST 0x195 /* Recall Last */
|
||||||
#define KEY_AB 0x196
|
#define KEY_AB 0x196
|
||||||
#define KEY_NEXT 0x197
|
#define KEY_NEXT 0x197
|
||||||
#define KEY_RESTART 0x198
|
#define KEY_RESTART 0x198
|
||||||
@ -491,21 +499,21 @@ struct input_absinfo {
|
|||||||
#define KEY_DIGITS 0x19d
|
#define KEY_DIGITS 0x19d
|
||||||
#define KEY_TEEN 0x19e
|
#define KEY_TEEN 0x19e
|
||||||
#define KEY_TWEN 0x19f
|
#define KEY_TWEN 0x19f
|
||||||
#define KEY_VIDEOPHONE 0x1a0
|
#define KEY_VIDEOPHONE 0x1a0 /* Media Select Video Phone */
|
||||||
#define KEY_GAMES 0x1a1
|
#define KEY_GAMES 0x1a1 /* Media Select Games */
|
||||||
#define KEY_ZOOMIN 0x1a2
|
#define KEY_ZOOMIN 0x1a2 /* AC Zoom In */
|
||||||
#define KEY_ZOOMOUT 0x1a3
|
#define KEY_ZOOMOUT 0x1a3 /* AC Zoom Out */
|
||||||
#define KEY_ZOOMRESET 0x1a4
|
#define KEY_ZOOMRESET 0x1a4 /* AC Zoom */
|
||||||
#define KEY_WORDPROCESSOR 0x1a5
|
#define KEY_WORDPROCESSOR 0x1a5 /* AL Word Processor */
|
||||||
#define KEY_EDITOR 0x1a6
|
#define KEY_EDITOR 0x1a6 /* AL Text Editor */
|
||||||
#define KEY_SPREADSHEET 0x1a7
|
#define KEY_SPREADSHEET 0x1a7 /* AL Spreadsheet */
|
||||||
#define KEY_GRAPHICSEDITOR 0x1a8
|
#define KEY_GRAPHICSEDITOR 0x1a8 /* AL Graphics Editor */
|
||||||
#define KEY_PRESENTATION 0x1a9
|
#define KEY_PRESENTATION 0x1a9 /* AL Presentation App */
|
||||||
#define KEY_DATABASE 0x1aa
|
#define KEY_DATABASE 0x1aa /* AL Database App */
|
||||||
#define KEY_NEWS 0x1ab
|
#define KEY_NEWS 0x1ab /* AL Newsreader */
|
||||||
#define KEY_VOICEMAIL 0x1ac
|
#define KEY_VOICEMAIL 0x1ac /* AL Voicemail */
|
||||||
#define KEY_ADDRESSBOOK 0x1ad
|
#define KEY_ADDRESSBOOK 0x1ad /* AL Contacts/Address Book */
|
||||||
#define KEY_MESSENGER 0x1ae
|
#define KEY_MESSENGER 0x1ae /* AL Instant Messaging */
|
||||||
#define KEY_DISPLAYTOGGLE 0x1af /* Turn display (LCD) on and off */
|
#define KEY_DISPLAYTOGGLE 0x1af /* Turn display (LCD) on and off */
|
||||||
|
|
||||||
#define KEY_DEL_EOL 0x1c0
|
#define KEY_DEL_EOL 0x1c0
|
||||||
@ -603,6 +611,7 @@ struct input_absinfo {
|
|||||||
#define SW_LID 0x00 /* set = lid shut */
|
#define SW_LID 0x00 /* set = lid shut */
|
||||||
#define SW_TABLET_MODE 0x01 /* set = tablet mode */
|
#define SW_TABLET_MODE 0x01 /* set = tablet mode */
|
||||||
#define SW_HEADPHONE_INSERT 0x02 /* set = inserted */
|
#define SW_HEADPHONE_INSERT 0x02 /* set = inserted */
|
||||||
|
#define SW_RADIO 0x03 /* set = radio enabled */
|
||||||
#define SW_MAX 0x0f
|
#define SW_MAX 0x0f
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user