wistron_btns.c

来自「linux 内核源代码」· C语言 代码 · 共 1,383 行 · 第 1/3 页

C
1,383
字号
	{ KE_KEY, 0x02, {KEY_CONFIG} },	{ KE_KEY, 0x11, {KEY_PROG1} },	{ KE_KEY, 0x12, {KEY_PROG2} },	{ KE_KEY, 0x13, {KEY_MAIL} },	{ KE_KEY, 0x14, {KEY_PROG3} },	{ KE_KEY, 0x15, {KEY_WWW} },	{ KE_END, FE_MAIL_LED | FE_WIFI_LED | FE_UNTESTED }};static struct key_entry keymap_acer_travelmate_360[] __initdata = {	{ KE_KEY, 0x01, {KEY_HELP} },	{ KE_KEY, 0x02, {KEY_CONFIG} },	{ KE_KEY, 0x11, {KEY_PROG1} },	{ KE_KEY, 0x12, {KEY_PROG2} },	{ KE_KEY, 0x13, {KEY_MAIL} },	{ KE_KEY, 0x14, {KEY_PROG3} },	{ KE_KEY, 0x15, {KEY_WWW} },	{ KE_KEY, 0x40, {KEY_WLAN} },	{ KE_END, FE_WIFI_LED | FE_UNTESTED } /* no mail led */};/* Wifi subsystem only activates the led. Therefore we need to pass * wifi event as a normal key, then userspace can really change the wifi state. * TODO we need to export led state to userspace (wifi and mail) */static struct key_entry keymap_acer_travelmate_610[] __initdata = {	{ KE_KEY, 0x01, {KEY_HELP} },	{ KE_KEY, 0x02, {KEY_CONFIG} },	{ KE_KEY, 0x11, {KEY_PROG1} },	{ KE_KEY, 0x12, {KEY_PROG2} },	{ KE_KEY, 0x13, {KEY_PROG3} },	{ KE_KEY, 0x14, {KEY_MAIL} },	{ KE_KEY, 0x15, {KEY_WWW} },	{ KE_KEY, 0x40, {KEY_WLAN} },	{ KE_END, FE_MAIL_LED | FE_WIFI_LED }};static struct key_entry keymap_acer_travelmate_630[] __initdata = {	{ KE_KEY, 0x01, {KEY_HELP} },	{ KE_KEY, 0x02, {KEY_CONFIG} },	{ KE_KEY, 0x03, {KEY_POWER} },	{ KE_KEY, 0x08, {KEY_MUTE} }, /* not 620 */	{ KE_KEY, 0x11, {KEY_PROG1} },	{ KE_KEY, 0x12, {KEY_PROG2} },	{ KE_KEY, 0x13, {KEY_PROG3} },	{ KE_KEY, 0x20, {KEY_VOLUMEUP} },	{ KE_KEY, 0x21, {KEY_VOLUMEDOWN} },	{ KE_KEY, 0x31, {KEY_MAIL} },	{ KE_KEY, 0x36, {KEY_WWW} },	{ KE_WIFI, 0x30 },	{ KE_END, FE_MAIL_LED | FE_UNTESTED }};static struct key_entry keymap_aopen_1559as[] __initdata = {	{ KE_KEY,  0x01, {KEY_HELP} },	{ KE_KEY,  0x06, {KEY_PROG3} },	{ KE_KEY,  0x11, {KEY_PROG1} },	{ KE_KEY,  0x12, {KEY_PROG2} },	{ KE_WIFI, 0x30 },	{ KE_KEY,  0x31, {KEY_MAIL} },	{ KE_KEY,  0x36, {KEY_WWW} },	{ KE_END,  0 },};static struct key_entry keymap_fs_amilo_d88x0[] __initdata = {	{ KE_KEY, 0x01, {KEY_HELP} },	{ KE_KEY, 0x08, {KEY_MUTE} },	{ KE_KEY, 0x31, {KEY_MAIL} },	{ KE_KEY, 0x36, {KEY_WWW} },	{ KE_KEY, 0x11, {KEY_PROG1} },	{ KE_KEY, 0x12, {KEY_PROG2} },	{ KE_KEY, 0x13, {KEY_PROG3} },	{ KE_END, FE_MAIL_LED | FE_WIFI_LED | FE_UNTESTED }};static struct key_entry keymap_wistron_md2900[] __initdata = {	{ KE_KEY, 0x01, {KEY_HELP} },	{ KE_KEY, 0x02, {KEY_CONFIG} },	{ KE_KEY, 0x11, {KEY_PROG1} },	{ KE_KEY, 0x12, {KEY_PROG2} },	{ KE_KEY, 0x31, {KEY_MAIL} },	{ KE_KEY, 0x36, {KEY_WWW} },	{ KE_WIFI, 0x30 },	{ KE_END, FE_MAIL_LED | FE_UNTESTED }};static struct key_entry keymap_wistron_md96500[] __initdata = {	{ KE_KEY, 0x01, {KEY_HELP} },	{ KE_KEY, 0x02, {KEY_CONFIG} },	{ KE_KEY, 0x05, {KEY_SWITCHVIDEOMODE} }, /* Display selection */	{ KE_KEY, 0x06, {KEY_DISPLAYTOGGLE} }, /* Display on/off */	{ KE_KEY, 0x08, {KEY_MUTE} },	{ KE_KEY, 0x11, {KEY_PROG1} },	{ KE_KEY, 0x12, {KEY_PROG2} },	{ KE_KEY, 0x20, {KEY_VOLUMEUP} },	{ KE_KEY, 0x21, {KEY_VOLUMEDOWN} },	{ KE_KEY, 0x22, {KEY_REWIND} },	{ KE_KEY, 0x23, {KEY_FORWARD} },	{ KE_KEY, 0x24, {KEY_PLAYPAUSE} },	{ KE_KEY, 0x25, {KEY_STOPCD} },	{ KE_KEY, 0x31, {KEY_MAIL} },	{ KE_KEY, 0x36, {KEY_WWW} },	{ KE_WIFI, 0x30 },	{ KE_BLUETOOTH, 0x44 },	{ KE_END, FE_UNTESTED }};static struct key_entry keymap_wistron_generic[] __initdata = {	{ KE_KEY, 0x01, {KEY_HELP} },	{ KE_KEY, 0x02, {KEY_CONFIG} },	{ KE_KEY, 0x03, {KEY_POWER} },	{ KE_KEY, 0x05, {KEY_SWITCHVIDEOMODE} }, /* Display selection */	{ KE_KEY, 0x06, {KEY_DISPLAYTOGGLE} }, /* Display on/off */	{ KE_KEY, 0x08, {KEY_MUTE} },	{ KE_KEY, 0x11, {KEY_PROG1} },	{ KE_KEY, 0x12, {KEY_PROG2} },	{ KE_KEY, 0x13, {KEY_PROG3} },	{ KE_KEY, 0x14, {KEY_MAIL} },	{ KE_KEY, 0x15, {KEY_WWW} },	{ KE_KEY, 0x20, {KEY_VOLUMEUP} },	{ KE_KEY, 0x21, {KEY_VOLUMEDOWN} },	{ KE_KEY, 0x22, {KEY_REWIND} },	{ KE_KEY, 0x23, {KEY_FORWARD} },	{ KE_KEY, 0x24, {KEY_PLAYPAUSE} },	{ KE_KEY, 0x25, {KEY_STOPCD} },	{ KE_KEY, 0x31, {KEY_MAIL} },	{ KE_KEY, 0x36, {KEY_WWW} },	{ KE_KEY, 0x37, {KEY_DISPLAYTOGGLE} }, /* Display on/off */	{ KE_KEY, 0x40, {KEY_WLAN} },	{ KE_KEY, 0x49, {KEY_CONFIG} },	{ KE_SW, 0x4a, {.sw = {SW_LID, 1}} }, /* lid close */	{ KE_SW, 0x4b, {.sw = {SW_LID, 0}} }, /* lid open */	{ KE_KEY, 0x6a, {KEY_CONFIG} },	{ KE_KEY, 0x6d, {KEY_POWER} },	{ KE_KEY, 0x71, {KEY_STOPCD} },	{ KE_KEY, 0x72, {KEY_PLAYPAUSE} },	{ KE_KEY, 0x74, {KEY_REWIND} },	{ KE_KEY, 0x78, {KEY_FORWARD} },	{ KE_WIFI, 0x30 },	{ KE_BLUETOOTH, 0x44 },	{ KE_END, 0 }};/* * If your machine is not here (which is currently rather likely), please send * a list of buttons and their key codes (reported when loading this module * with force=1) and the output of dmidecode to $MODULE_AUTHOR. */static struct dmi_system_id dmi_ids[] __initdata = {	{		.callback = dmi_matched,		.ident = "Fujitsu-Siemens Amilo Pro V2000",		.matches = {			DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"),			DMI_MATCH(DMI_PRODUCT_NAME, "AMILO Pro V2000"),		},		.driver_data = keymap_fs_amilo_pro_v2000	},	{		.callback = dmi_matched,		.ident = "Fujitsu-Siemens Amilo M7400",		.matches = {			DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"),			DMI_MATCH(DMI_PRODUCT_NAME, "AMILO M        "),		},		.driver_data = keymap_fs_amilo_pro_v2000	},	{		.callback = dmi_matched,		.ident = "Fujitsu N3510",		.matches = {			DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU"),			DMI_MATCH(DMI_PRODUCT_NAME, "N3510"),		},		.driver_data = keymap_fujitsu_n3510	},	{		.callback = dmi_matched,		.ident = "Acer Aspire 1500",		.matches = {			DMI_MATCH(DMI_SYS_VENDOR, "Acer"),			DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 1500"),		},		.driver_data = keymap_acer_aspire_1500	},	{		.callback = dmi_matched,		.ident = "Acer Aspire 1600",		.matches = {			DMI_MATCH(DMI_SYS_VENDOR, "Acer"),			DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 1600"),		},		.driver_data = keymap_acer_aspire_1600	},	{		.callback = dmi_matched,		.ident = "Acer Aspire 3020",		.matches = {			DMI_MATCH(DMI_SYS_VENDOR, "Acer"),			DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 3020"),		},		.driver_data = keymap_acer_aspire_5020	},	{		.callback = dmi_matched,		.ident = "Acer Aspire 5020",		.matches = {			DMI_MATCH(DMI_SYS_VENDOR, "Acer"),			DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5020"),		},		.driver_data = keymap_acer_aspire_5020	},	{		.callback = dmi_matched,		.ident = "Acer TravelMate 2100",		.matches = {			DMI_MATCH(DMI_SYS_VENDOR, "Acer"),			DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 2100"),		},		.driver_data = keymap_acer_aspire_5020	},	{		.callback = dmi_matched,		.ident = "Acer TravelMate 2410",		.matches = {			DMI_MATCH(DMI_SYS_VENDOR, "Acer"),			DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 2410"),		},		.driver_data = keymap_acer_travelmate_2410	},	{		.callback = dmi_matched,		.ident = "Acer TravelMate C300",		.matches = {			DMI_MATCH(DMI_SYS_VENDOR, "Acer"),			DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate C300"),		},		.driver_data = keymap_acer_travelmate_300	},	{		.callback = dmi_matched,		.ident = "Acer TravelMate C100",		.matches = {			DMI_MATCH(DMI_SYS_VENDOR, "Acer"),			DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate C100"),		},		.driver_data = keymap_acer_travelmate_300	},	{		.callback = dmi_matched,		.ident = "Acer TravelMate C110",		.matches = {			DMI_MATCH(DMI_SYS_VENDOR, "Acer"),			DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate C110"),		},		.driver_data = keymap_acer_travelmate_110	},	{		.callback = dmi_matched,		.ident = "Acer TravelMate 380",		.matches = {			DMI_MATCH(DMI_SYS_VENDOR, "Acer"),			DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 380"),		},		.driver_data = keymap_acer_travelmate_380	},	{		.callback = dmi_matched,		.ident = "Acer TravelMate 370",		.matches = {			DMI_MATCH(DMI_SYS_VENDOR, "Acer"),			DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 370"),		},		.driver_data = keymap_acer_travelmate_380 /* keyboard minus 1 key */	},	{		.callback = dmi_matched,		.ident = "Acer TravelMate 220",		.matches = {			DMI_MATCH(DMI_SYS_VENDOR, "Acer"),			DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 220"),		},		.driver_data = keymap_acer_travelmate_220	},	{		.callback = dmi_matched,		.ident = "Acer TravelMate 260",		.matches = {			DMI_MATCH(DMI_SYS_VENDOR, "Acer"),			DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 260"),		},		.driver_data = keymap_acer_travelmate_220	},	{		.callback = dmi_matched,		.ident = "Acer TravelMate 230",		.matches = {			DMI_MATCH(DMI_SYS_VENDOR, "Acer"),			DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 230"),			/* acerhk looks for "TravelMate F4..." ?! */		},		.driver_data = keymap_acer_travelmate_230	},	{		.callback = dmi_matched,		.ident = "Acer TravelMate 280",		.matches = {			DMI_MATCH(DMI_SYS_VENDOR, "Acer"),			DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 280"),		},		.driver_data = keymap_acer_travelmate_230	},	{		.callback = dmi_matched,		.ident = "Acer TravelMate 240",		.matches = {			DMI_MATCH(DMI_SYS_VENDOR, "Acer"),			DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 240"),		},		.driver_data = keymap_acer_travelmate_240	},	{		.callback = dmi_matched,		.ident = "Acer TravelMate 250",		.matches = {			DMI_MATCH(DMI_SYS_VENDOR, "Acer"),			DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 250"),		},		.driver_data = keymap_acer_travelmate_240	},	{		.callback = dmi_matched,		.ident = "Acer TravelMate 2424NWXCi",		.matches = {			DMI_MATCH(DMI_SYS_VENDOR, "Acer"),			DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 2420"),		},		.driver_data = keymap_acer_travelmate_240	},	{		.callback = dmi_matched,		.ident = "Acer TravelMate 350",		.matches = {			DMI_MATCH(DMI_SYS_VENDOR, "Acer"),			DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 350"),		},		.driver_data = keymap_acer_travelmate_350	},	{		.callback = dmi_matched,		.ident = "Acer TravelMate 360",		.matches = {			DMI_MATCH(DMI_SYS_VENDOR, "Acer"),			DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 360"),		},		.driver_data = keymap_acer_travelmate_360	},	{		.callback = dmi_matched,		.ident = "Acer TravelMate 610",		.matches = {			DMI_MATCH(DMI_SYS_VENDOR, "ACER"),			DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 610"),		},		.driver_data = keymap_acer_travelmate_610	},	{		.callback = dmi_matched,		.ident = "Acer TravelMate 620",		.matches = {			DMI_MATCH(DMI_SYS_VENDOR, "Acer"),			DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 620"),		},		.driver_data = keymap_acer_travelmate_630	},	{		.callback = dmi_matched,		.ident = "Acer TravelMate 630",		.matches = {			DMI_MATCH(DMI_SYS_VENDOR, "Acer"),			DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 630"),		},		.driver_data = keymap_acer_travelmate_630	},	{		.callback = dmi_matched,		.ident = "AOpen 1559AS",		.matches = {			DMI_MATCH(DMI_PRODUCT_NAME, "E2U"),			DMI_MATCH(DMI_BOARD_NAME, "E2U"),		},		.driver_data = keymap_aopen_1559as	},	{		.callback = dmi_matched,		.ident = "Medion MD 9783",		.matches = {			DMI_MATCH(DMI_SYS_VENDOR, "MEDIONNB"),			DMI_MATCH(DMI_PRODUCT_NAME, "MD 9783"),		},		.driver_data = keymap_wistron_ms2111	},	{		.callback = dmi_matched,		.ident = "Medion MD 40100",		.matches = {			DMI_MATCH(DMI_SYS_VENDOR, "MEDIONNB"),			DMI_MATCH(DMI_PRODUCT_NAME, "WID2000"),		},		.driver_data = keymap_wistron_md40100	},	{		.callback = dmi_matched,		.ident = "Medion MD 2900",		.matches = {			DMI_MATCH(DMI_SYS_VENDOR, "MEDIONNB"),			DMI_MATCH(DMI_PRODUCT_NAME, "WIM 2000"),		},		.driver_data = keymap_wistron_md2900	},	{		.callback = dmi_matched,		.ident = "Medion MD 96500",		.matches = {			DMI_MATCH(DMI_SYS_VENDOR, "MEDIONPC"),			DMI_MATCH(DMI_PRODUCT_NAME, "WIM 2040"),		},		.driver_data = keymap_wistron_md96500	},	{		.callback = dmi_matched,		.ident = "Medion MD 95400",		.matches = {			DMI_MATCH(DMI_SYS_VENDOR, "MEDIONPC"),			DMI_MATCH(DMI_PRODUCT_NAME, "WIM 2050"),		},		.driver_data = keymap_wistron_md96500	},	{		.callback = dmi_matched,		.ident = "Fujitsu Siemens Amilo D7820",		.matches = {			DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"), /* not sure */			DMI_MATCH(DMI_PRODUCT_NAME, "Amilo D"),		},		.driver_data = keymap_fs_amilo_d88x0	},	{		.callback = dmi_matched,		.ident = "Fujitsu Siemens Amilo D88x0",		.matches = {			DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"),			DMI_MATCH(DMI_PRODUCT_NAME, "AMILO D"),		},		.driver_data = keymap_fs_amilo_d88x0	},	{ NULL, }};/* Copy the good keymap, as the original ones are free'd */static int __init copy_keymap(void){

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?