Lines Matching refs:hidinput

96 #define map_abs(c)	hid_map_usage(hidinput, usage, &bit, &max, EV_ABS, (c))
97 #define map_rel(c) hid_map_usage(hidinput, usage, &bit, &max, EV_REL, (c))
98 #define map_key(c) hid_map_usage(hidinput, usage, &bit, &max, EV_KEY, (c))
99 #define map_led(c) hid_map_usage(hidinput, usage, &bit, &max, EV_LED, (c))
100 #define map_msc(c) hid_map_usage(hidinput, usage, &bit, &max, EV_MSC, (c))
102 #define map_abs_clear(c) hid_map_usage_clear(hidinput, usage, &bit, \
104 #define map_key_clear(c) hid_map_usage_clear(hidinput, usage, &bit, \
637 static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_field *field, in hidinput_configure_usage() argument
640 struct input_dev *input = hidinput->input; in hidinput_configure_usage()
647 field->hidinput = hidinput; in hidinput_configure_usage()
685 int ret = device->driver->input_mapping(device, hidinput, field, in hidinput_configure_usage()
1288 device->driver->input_mapped(device, hidinput, field, usage, in hidinput_configure_usage()
1457 if (!field->hidinput) in hidinput_hid_event()
1460 input = field->hidinput->input; in hidinput_hid_event()
1649 struct hid_input *hidinput; in hidinput_report_event() local
1654 list_for_each_entry(hidinput, &hid->inputs, list) in hidinput_report_event()
1655 input_sync(hidinput->input); in hidinput_report_event()
1917 struct hid_input *hidinput = kzalloc(sizeof(*hidinput), GFP_KERNEL); in hidinput_allocate() local
1922 if (!hidinput || !input_dev) in hidinput_allocate()
1978 hidinput->name = kasprintf(GFP_KERNEL, "%s %s", in hidinput_allocate()
1980 if (!hidinput->name) in hidinput_allocate()
1992 input_dev->name = hidinput->name ? hidinput->name : hid->name; in hidinput_allocate()
2001 hidinput->input = input_dev; in hidinput_allocate()
2002 hidinput->application = application; in hidinput_allocate()
2003 list_add_tail(&hidinput->list, &hid->inputs); in hidinput_allocate()
2005 INIT_LIST_HEAD(&hidinput->reports); in hidinput_allocate()
2007 return hidinput; in hidinput_allocate()
2010 kfree(hidinput); in hidinput_allocate()
2016 static bool hidinput_has_been_populated(struct hid_input *hidinput) in hidinput_has_been_populated() argument
2022 r |= hidinput->input->evbit[i]; in hidinput_has_been_populated()
2025 r |= hidinput->input->keybit[i]; in hidinput_has_been_populated()
2028 r |= hidinput->input->relbit[i]; in hidinput_has_been_populated()
2031 r |= hidinput->input->absbit[i]; in hidinput_has_been_populated()
2034 r |= hidinput->input->mscbit[i]; in hidinput_has_been_populated()
2037 r |= hidinput->input->ledbit[i]; in hidinput_has_been_populated()
2040 r |= hidinput->input->sndbit[i]; in hidinput_has_been_populated()
2043 r |= hidinput->input->ffbit[i]; in hidinput_has_been_populated()
2046 r |= hidinput->input->swbit[i]; in hidinput_has_been_populated()
2052 struct hid_input *hidinput) in hidinput_cleanup_hidinput() argument
2057 list_del(&hidinput->list); in hidinput_cleanup_hidinput()
2058 input_free_device(hidinput->input); in hidinput_cleanup_hidinput()
2059 kfree(hidinput->name); in hidinput_cleanup_hidinput()
2070 if (report->field[i]->hidinput == hidinput) in hidinput_cleanup_hidinput()
2071 report->field[i]->hidinput = NULL; in hidinput_cleanup_hidinput()
2075 kfree(hidinput); in hidinput_cleanup_hidinput()
2081 struct hid_input *hidinput; in hidinput_match() local
2083 list_for_each_entry(hidinput, &hid->inputs, list) { in hidinput_match()
2084 if (hidinput->report && in hidinput_match()
2085 hidinput->report->id == report->id) in hidinput_match()
2086 return hidinput; in hidinput_match()
2095 struct hid_input *hidinput; in hidinput_match_application() local
2097 list_for_each_entry(hidinput, &hid->inputs, list) { in hidinput_match_application()
2098 if (hidinput->application == report->application) in hidinput_match_application()
2099 return hidinput; in hidinput_match_application()
2107 hidinput->application == HID_GD_KEYBOARD) { in hidinput_match_application()
2108 return hidinput; in hidinput_match_application()
2115 static inline void hidinput_configure_usages(struct hid_input *hidinput, in hidinput_configure_usages() argument
2172 hidinput_configure_usage(hidinput, report->field[i], in hidinput_configure_usages()
2187 struct hid_input *next, *hidinput = NULL; in hidinput_connect() local
2228 hidinput = hidinput_match(report); in hidinput_connect()
2231 hidinput = hidinput_match_application(report); in hidinput_connect()
2233 if (!hidinput) { in hidinput_connect()
2234 hidinput = hidinput_allocate(hid, application); in hidinput_connect()
2235 if (!hidinput) in hidinput_connect()
2239 hidinput_configure_usages(hidinput, report); in hidinput_connect()
2242 hidinput->report = report; in hidinput_connect()
2245 &hidinput->reports); in hidinput_connect()
2251 list_for_each_entry_safe(hidinput, next, &hid->inputs, list) { in hidinput_connect()
2253 drv->input_configured(hid, hidinput)) in hidinput_connect()
2256 if (!hidinput_has_been_populated(hidinput)) { in hidinput_connect()
2258 hidinput_cleanup_hidinput(hid, hidinput); in hidinput_connect()
2262 if (input_register_device(hidinput->input)) in hidinput_connect()
2264 hidinput->registered = true; in hidinput_connect()
2288 struct hid_input *hidinput, *next; in hidinput_disconnect() local
2292 list_for_each_entry_safe(hidinput, next, &hid->inputs, list) { in hidinput_disconnect()
2293 list_del(&hidinput->list); in hidinput_disconnect()
2294 if (hidinput->registered) in hidinput_disconnect()
2295 input_unregister_device(hidinput->input); in hidinput_disconnect()
2297 input_free_device(hidinput->input); in hidinput_disconnect()
2298 kfree(hidinput->name); in hidinput_disconnect()
2299 kfree(hidinput); in hidinput_disconnect()