Lines Matching +full:0 +full:xff310000
46 #define E1239T_TP_TOGGLE_REPORT_ID 0x05
47 #define T100CHI_MOUSE_REPORT_ID 0x06
48 #define FEATURE_REPORT_ID 0x0d
49 #define INPUT_REPORT_ID 0x5d
50 #define FEATURE_KBD_REPORT_ID 0x5a
52 #define FEATURE_KBD_LED_REPORT_ID1 0x5d
53 #define FEATURE_KBD_LED_REPORT_ID2 0x5e
59 #define SUPPORT_KBD_BACKLIGHT BIT(0)
64 #define BTN_LEFT_MASK 0x01
65 #define CONTACT_TOOL_TYPE_MASK 0x80
66 #define CONTACT_X_MSB_MASK 0xf0
67 #define CONTACT_Y_MSB_MASK 0x0f
68 #define CONTACT_TOUCH_MAJOR_MASK 0x07
69 #define CONTACT_PRESSURE_MASK 0x7f
71 #define BATTERY_REPORT_ID (0x03)
74 #define BATTERY_STAT_DISCONNECT (0)
78 #define QUIRK_FIX_NOTEBOOK_REPORT BIT(0)
203 x = (data[0] & CONTACT_X_MSB_MASK) << 4 | data[1]; in asus_report_contact_down()
204 y = drvdat->tp->max_y - ((data[0] & CONTACT_Y_MSB_MASK) << 8 | data[2]); in asus_report_contact_down()
237 for (i = 0; i < mt->num_slots; ++i) { in asus_report_tool_width()
241 if (id < 0) in asus_report_tool_width()
261 return 0; in asus_report_input()
263 for (i = 0; i < drvdat->tp->max_contacts; i++) { in asus_report_input()
291 return 0; in asus_e1239t_event()
295 data[0] == 0x02 && data[1] == 0xe2 && data[2] == 0x00) { in asus_e1239t_event()
298 input_report_key(drvdat->input, KEY_MUTE, 0); in asus_e1239t_event()
305 data[0] == 0x05 && data[1] == 0x02 && data[2] == 0x28) { in asus_e1239t_event()
308 input_report_key(drvdat->tp_kbd_input, KEY_F21, 0); in asus_e1239t_event()
313 return 0; in asus_e1239t_event()
319 if ((usage->hid & HID_USAGE_PAGE) == 0xff310000 && in asus_event()
320 (usage->hid & HID_USAGE) != 0x00 && in asus_event()
321 (usage->hid & HID_USAGE) != 0xff && !usage->type) { in asus_event()
322 hid_warn(hdev, "Unmapped Asus vendor usagepage code 0x%02x\n", in asus_event()
326 return 0; in asus_event()
334 if (drvdata->battery && data[0] == BATTERY_REPORT_ID) in asus_raw_event()
337 if (drvdata->tp && data[0] == INPUT_REPORT_ID) in asus_raw_event()
354 if (data[0] == 0x02 && data[1] == 0x30) { in asus_raw_event()
365 if(size == 2 && data[0] == 0x02 && data[1] == 0x00) { in asus_raw_event()
370 return 0; in asus_raw_event()
386 ret = hid_hw_raw_request(hdev, buf[0], dmabuf, in asus_kbd_set_report()
396 const u8 buf[] = { report_id, 0x41, 0x53, 0x55, 0x53, 0x20, 0x54, in asus_kbd_init()
397 0x65, 0x63, 0x68, 0x2e, 0x49, 0x6e, 0x63, 0x2e, 0x00 }; in asus_kbd_init()
401 if (ret < 0) in asus_kbd_init()
411 const u8 buf[] = { report_id, 0x05, 0x20, 0x31, 0x00, 0x08 }; in asus_kbd_get_functions()
416 if (ret < 0) { in asus_kbd_get_functions()
428 if (ret < 0) { in asus_kbd_get_functions()
443 { FEATURE_KBD_REPORT_ID, 0x05, 0x20, 0x31, 0x00, 0x08 }, in asus_kbd_disable_oobe()
444 { FEATURE_KBD_REPORT_ID, 0xBA, 0xC5, 0xC4 }, in asus_kbd_disable_oobe()
445 { FEATURE_KBD_REPORT_ID, 0xD0, 0x8F, 0x01 }, in asus_kbd_disable_oobe()
446 { FEATURE_KBD_REPORT_ID, 0xD0, 0x85, 0xFF } in asus_kbd_disable_oobe()
450 for (size_t i = 0; i < ARRAY_SIZE(init); i++) { in asus_kbd_disable_oobe()
452 if (ret < 0) in asus_kbd_disable_oobe()
457 return 0; in asus_kbd_disable_oobe()
501 u8 buf[] = { FEATURE_KBD_REPORT_ID, 0xba, 0xc5, 0xc4, 0x00 }; in asus_kbd_backlight_work()
510 if (ret < 0) in asus_kbd_backlight_work()
534 ASUS_WMI_DEVID_KBD_BACKLIGHT, 0, &value); in asus_kbd_wmi_led_control_present()
556 dots = 0; in mcu_parse_version_string()
566 buf[3] = '\0'; in mcu_parse_version_string()
569 if (err || version < 0) in mcu_parse_version_string()
578 const u8 request[] = { 0x5a, 0x05, 0x03, 0x31, 0x00, 0x20 }; in mcu_request_version()
585 if (ret < 0) in mcu_request_version()
591 if (ret < 0) in mcu_request_version()
595 if (ret < 0) { in mcu_request_version()
609 if (version < 0) in validate_mcu_fw_version()
620 min_version = 0; in validate_mcu_fw_version()
644 if (ret < 0) in asus_kbd_register_leds()
649 if (ret < 0) in asus_kbd_register_leds()
653 if (ret < 0) in asus_kbd_register_leds()
658 if (ret < 0) in asus_kbd_register_leds()
672 if (ret < 0) in asus_kbd_register_leds()
677 if (ret < 0) in asus_kbd_register_leds()
692 drvdata->kbd_backlight->brightness = 0; in asus_kbd_register_leds()
702 if (ret < 0) { in asus_kbd_register_leds()
711 * [0] REPORT_ID (same value defined in report descriptor)
712 * [1] rest battery level. range [0..255]
715 * = 0 : AC offline / discharging
744 return 0; in asus_parse_battery()
754 return 0; in asus_report_battery()
760 int ret = 0; in asus_battery_query()
796 int ret = 0; in asus_battery_get_property()
834 int ret = 0; in asus_battery_probe()
836 drvdata->battery_capacity = 0; in asus_battery_probe()
844 drvdata->battery_desc.use_for_apm = 0; in asus_battery_probe()
876 return 0; in asus_input_configured()
885 return 0; in asus_input_configured()
889 return 0; /* Ignore other reports */ in asus_input_configured()
896 input_set_abs_params(input, ABS_MT_POSITION_X, 0, in asus_input_configured()
897 drvdata->tp->max_x, 0, 0); in asus_input_configured()
898 input_set_abs_params(input, ABS_MT_POSITION_Y, 0, in asus_input_configured()
899 drvdata->tp->max_y, 0, 0); in asus_input_configured()
904 input_set_abs_params(input, ABS_TOOL_WIDTH, 0, in asus_input_configured()
905 MAX_TOUCH_MAJOR, 0, 0); in asus_input_configured()
906 input_set_abs_params(input, ABS_MT_TOUCH_MAJOR, 0, in asus_input_configured()
907 MAX_TOUCH_MAJOR, 0, 0); in asus_input_configured()
908 input_set_abs_params(input, ABS_MT_PRESSURE, 0, in asus_input_configured()
909 MAX_PRESSURE, 0, 0); in asus_input_configured()
931 return 0; in asus_input_configured()
956 (field->application == (HID_UP_GENDESK | 0x0080) || in asus_input_mapping()
958 usage->hid == (HID_UP_GENDEVCTRLS | 0x0024) || in asus_input_mapping()
959 usage->hid == (HID_UP_GENDEVCTRLS | 0x0025) || in asus_input_mapping()
960 usage->hid == (HID_UP_GENDEVCTRLS | 0x0026))) in asus_input_mapping()
966 case 0x10: asus_map_key_clear(KEY_BRIGHTNESSDOWN); break; in asus_input_mapping()
967 case 0x20: asus_map_key_clear(KEY_BRIGHTNESSUP); break; in asus_input_mapping()
968 case 0x35: asus_map_key_clear(KEY_DISPLAY_OFF); break; in asus_input_mapping()
969 case 0x6c: asus_map_key_clear(KEY_SLEEP); break; in asus_input_mapping()
970 case 0x7c: asus_map_key_clear(KEY_MICMUTE); break; in asus_input_mapping()
971 case 0x82: asus_map_key_clear(KEY_CAMERA); break; in asus_input_mapping()
972 case 0x88: asus_map_key_clear(KEY_RFKILL); break; in asus_input_mapping()
973 case 0xb5: asus_map_key_clear(KEY_CALC); break; in asus_input_mapping()
974 case 0xc4: asus_map_key_clear(KEY_KBDILLUMUP); break; in asus_input_mapping()
975 case 0xc5: asus_map_key_clear(KEY_KBDILLUMDOWN); break; in asus_input_mapping()
976 case 0xc7: asus_map_key_clear(KEY_KBDILLUMTOGGLE); break; in asus_input_mapping()
977 case 0x4e: asus_map_key_clear(KEY_FN_ESC); break; in asus_input_mapping()
978 case 0x7e: asus_map_key_clear(KEY_EMOJI_PICKER); break; in asus_input_mapping()
980 case 0x8b: asus_map_key_clear(KEY_PROG1); break; /* ProArt Creator Hub key */ in asus_input_mapping()
981 case 0x6b: asus_map_key_clear(KEY_F21); break; /* ASUS touchpad toggle */ in asus_input_mapping()
982 case 0x38: asus_map_key_clear(KEY_PROG1); break; /* ROG key */ in asus_input_mapping()
983 case 0xba: asus_map_key_clear(KEY_PROG2); break; /* Fn+C ASUS Splendid */ in asus_input_mapping()
984 case 0x5c: asus_map_key_clear(KEY_PROG3); break; /* Fn+Space Power4Gear */ in asus_input_mapping()
985 case 0x99: asus_map_key_clear(KEY_PROG4); break; /* Fn+F5 "fan" symbol */ in asus_input_mapping()
986 case 0xae: asus_map_key_clear(KEY_PROG4); break; /* Fn+F5 "fan" symbol */ in asus_input_mapping()
987 case 0x92: asus_map_key_clear(KEY_CALC); break; /* Fn+Ret "Calc" symbol */ in asus_input_mapping()
988 case 0xb2: asus_map_key_clear(KEY_PROG2); break; /* Fn+Left previous aura */ in asus_input_mapping()
989 case 0xb3: asus_map_key_clear(KEY_PROG3); break; /* Fn+Left next aura */ in asus_input_mapping()
990 case 0x6a: asus_map_key_clear(KEY_F13); break; /* Screenpad toggle */ in asus_input_mapping()
991 case 0x4b: asus_map_key_clear(KEY_F14); break; /* Arrows/Pg-Up/Dn toggle */ in asus_input_mapping()
992 case 0xa5: asus_map_key_clear(KEY_F15); break; /* ROG Ally left back */ in asus_input_mapping()
993 case 0xa6: asus_map_key_clear(KEY_F16); break; /* ROG Ally QAM button */ in asus_input_mapping()
994 case 0xa7: asus_map_key_clear(KEY_F17); break; /* ROG Ally ROG long-press */ in asus_input_mapping()
995 case 0xa8: asus_map_key_clear(KEY_F18); break; /* ROG Ally ROG long-press-release */ in asus_input_mapping()
1005 * 0xff31 to avoid initializing the keyboard firmware multiple in asus_input_mapping()
1018 case 0xff01: asus_map_key_clear(BTN_1); break; in asus_input_mapping()
1019 case 0xff02: asus_map_key_clear(BTN_2); break; in asus_input_mapping()
1020 case 0xff03: asus_map_key_clear(BTN_3); break; in asus_input_mapping()
1021 case 0xff04: asus_map_key_clear(BTN_4); break; in asus_input_mapping()
1022 case 0xff05: asus_map_key_clear(BTN_5); break; in asus_input_mapping()
1023 case 0xff06: asus_map_key_clear(BTN_6); break; in asus_input_mapping()
1024 case 0xff07: asus_map_key_clear(BTN_7); break; in asus_input_mapping()
1025 case 0xff08: asus_map_key_clear(BTN_8); break; in asus_input_mapping()
1026 case 0xff09: asus_map_key_clear(BTN_9); break; in asus_input_mapping()
1027 case 0xff0a: asus_map_key_clear(BTN_A); break; in asus_input_mapping()
1028 case 0xff0b: asus_map_key_clear(BTN_B); break; in asus_input_mapping()
1029 case 0x00f1: asus_map_key_clear(KEY_WLAN); break; in asus_input_mapping()
1030 case 0x00f2: asus_map_key_clear(KEY_BRIGHTNESSDOWN); break; in asus_input_mapping()
1031 case 0x00f3: asus_map_key_clear(KEY_BRIGHTNESSUP); break; in asus_input_mapping()
1032 case 0x00f4: asus_map_key_clear(KEY_DISPLAY_OFF); break; in asus_input_mapping()
1033 case 0x00f7: asus_map_key_clear(KEY_CAMERA); break; in asus_input_mapping()
1034 case 0x00f8: asus_map_key_clear(KEY_PROG1); break; in asus_input_mapping()
1036 return 0; in asus_input_mapping()
1046 case 0xe2: /* Mute */ in asus_input_mapping()
1047 case 0xe9: /* Volume up */ in asus_input_mapping()
1048 case 0xea: /* Volume down */ in asus_input_mapping()
1049 return 0; in asus_input_mapping()
1063 usage->hid == (HID_UP_CONSUMER | 0xe2)) { in asus_input_mapping()
1068 return 0; in asus_input_mapping()
1075 FEATURE_REPORT_ID, 0x00, 0x03, 0x01, 0x00 in asus_start_multitouch()
1085 ret = hid_hw_raw_request(hdev, dmabuf[0], dmabuf, sizeof(buf), in asus_start_multitouch()
1095 return 0; in asus_start_multitouch()
1100 int ret = 0; in asus_resume()
1103 const u8 buf[] = { FEATURE_KBD_REPORT_ID, 0xba, 0xc5, 0xc4, in asus_resume()
1106 if (ret < 0) { in asus_resume()
1123 return 0; in asus_reset_resume()
1243 return 0; in asus_probe()
1266 0x19, 0x00, /* Usage Minimum (0x00) */
1267 0x2A, 0xFF, 0x00, /* Usage Maximum (0xFF) */
1276 *rsize >= 56 && rdesc[54] == 0x25 && rdesc[55] == 0x65) { in asus_report_fixup()
1278 rdesc[55] = 0xdd; in asus_report_fixup()
1283 rdesc[73] == 0x81 && rdesc[74] == 0x01) { in asus_report_fixup()
1303 * Note the descriptor has a bogus 0 byte at the end so we in asus_report_fixup()
1307 rdesc[offs] == 0x09 && rdesc[offs + 1] == 0x76) { in asus_report_fixup()
1317 rdesc[offs] = 0x19; in asus_report_fixup()
1318 rdesc[offs + 1] = 0x00; in asus_report_fixup()
1319 rdesc[offs + 2] = 0x29; in asus_report_fixup()
1320 rdesc[offs + 3] = 0xff; in asus_report_fixup()
1321 rdesc[offs + 14] = 0x00; in asus_report_fixup()
1326 *rsize == 75 && rdesc[61] == 0x15 && rdesc[62] == 0x00) { in asus_report_fixup()
1348 *rsize == 331 && rdesc[190] == 0x85 && rdesc[191] == 0x5a && in asus_report_fixup()
1349 rdesc[204] == 0x95 && rdesc[205] == 0x05) { in asus_report_fixup()
1351 rdesc[205] = 0x01; in asus_report_fixup()
1356 for (int i = 0; i < *rsize - 15; i++) { in asus_report_fixup()
1357 /* offset to the count from 0x5a report part always 14 */ in asus_report_fixup()
1358 if (rdesc[i] == 0x85 && rdesc[i + 1] == 0x5a && in asus_report_fixup()
1359 rdesc[i + 14] == 0x95 && rdesc[i + 15] == 0x05) { in asus_report_fixup()
1361 rdesc[i + 15] = 0x01; in asus_report_fixup()