Lines Matching refs:hidinput
63 #define map_abs(c) hid_map_usage(hidinput, usage, &bit, &max, EV_ABS, (c))
64 #define map_rel(c) hid_map_usage(hidinput, usage, &bit, &max, EV_REL, (c))
65 #define map_key(c) hid_map_usage(hidinput, usage, &bit, &max, EV_KEY, (c))
66 #define map_led(c) hid_map_usage(hidinput, usage, &bit, &max, EV_LED, (c))
68 #define map_abs_clear(c) hid_map_usage_clear(hidinput, usage, &bit, \
70 #define map_key_clear(c) hid_map_usage_clear(hidinput, usage, &bit, \
488 static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_field *field, in hidinput_configure_usage() argument
491 struct input_dev *input = hidinput->input; in hidinput_configure_usage()
496 field->hidinput = hidinput; in hidinput_configure_usage()
512 int ret = device->driver->input_mapping(device, hidinput, field, in hidinput_configure_usage()
992 hidinput, field, usage, &bit, &max) < 0) in hidinput_configure_usage()
1062 if (!field->hidinput) in hidinput_hid_event()
1065 input = field->hidinput->input; in hidinput_hid_event()
1174 struct hid_input *hidinput; in hidinput_report_event() local
1179 list_for_each_entry(hidinput, &hid->inputs, list) in hidinput_report_event()
1180 input_sync(hidinput->input); in hidinput_report_event()
1355 struct hid_input *hidinput = kzalloc(sizeof(*hidinput), GFP_KERNEL); in hidinput_allocate() local
1357 if (!hidinput || !input_dev) { in hidinput_allocate()
1358 kfree(hidinput); in hidinput_allocate()
1379 hidinput->input = input_dev; in hidinput_allocate()
1380 list_add_tail(&hidinput->list, &hid->inputs); in hidinput_allocate()
1382 return hidinput; in hidinput_allocate()
1385 static bool hidinput_has_been_populated(struct hid_input *hidinput) in hidinput_has_been_populated() argument
1391 r |= hidinput->input->evbit[i]; in hidinput_has_been_populated()
1394 r |= hidinput->input->keybit[i]; in hidinput_has_been_populated()
1397 r |= hidinput->input->relbit[i]; in hidinput_has_been_populated()
1400 r |= hidinput->input->absbit[i]; in hidinput_has_been_populated()
1403 r |= hidinput->input->mscbit[i]; in hidinput_has_been_populated()
1406 r |= hidinput->input->ledbit[i]; in hidinput_has_been_populated()
1409 r |= hidinput->input->sndbit[i]; in hidinput_has_been_populated()
1412 r |= hidinput->input->ffbit[i]; in hidinput_has_been_populated()
1415 r |= hidinput->input->swbit[i]; in hidinput_has_been_populated()
1421 struct hid_input *hidinput) in hidinput_cleanup_hidinput() argument
1426 list_del(&hidinput->list); in hidinput_cleanup_hidinput()
1427 input_free_device(hidinput->input); in hidinput_cleanup_hidinput()
1438 if (report->field[i]->hidinput == hidinput) in hidinput_cleanup_hidinput()
1439 report->field[i]->hidinput = NULL; in hidinput_cleanup_hidinput()
1443 kfree(hidinput); in hidinput_cleanup_hidinput()
1456 struct hid_input *hidinput = NULL; in hidinput_connect() local
1487 if (!hidinput) { in hidinput_connect()
1488 hidinput = hidinput_allocate(hid); in hidinput_connect()
1489 if (!hidinput) in hidinput_connect()
1495 hidinput_configure_usage(hidinput, report->field[i], in hidinput_connect()
1499 !hidinput_has_been_populated(hidinput)) in hidinput_connect()
1508 hidinput->report = report; in hidinput_connect()
1510 drv->input_configured(hid, hidinput); in hidinput_connect()
1511 if (input_register_device(hidinput->input)) in hidinput_connect()
1513 hidinput = NULL; in hidinput_connect()
1518 if (hidinput && (hid->quirks & HID_QUIRK_NO_EMPTY_INPUT) && in hidinput_connect()
1519 !hidinput_has_been_populated(hidinput)) { in hidinput_connect()
1521 hidinput_cleanup_hidinput(hid, hidinput); in hidinput_connect()
1522 hidinput = NULL; in hidinput_connect()
1530 if (hidinput) { in hidinput_connect()
1532 drv->input_configured(hid, hidinput); in hidinput_connect()
1533 if (input_register_device(hidinput->input)) in hidinput_connect()
1540 list_del(&hidinput->list); in hidinput_connect()
1541 input_free_device(hidinput->input); in hidinput_connect()
1542 kfree(hidinput); in hidinput_connect()
1553 struct hid_input *hidinput, *next; in hidinput_disconnect() local
1557 list_for_each_entry_safe(hidinput, next, &hid->inputs, list) { in hidinput_disconnect()
1558 list_del(&hidinput->list); in hidinput_disconnect()
1559 input_unregister_device(hidinput->input); in hidinput_disconnect()
1560 kfree(hidinput); in hidinput_disconnect()