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, \
689 static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_field *field,
692 struct input_dev *input = hidinput->input;
699 field->hidinput = hidinput;
737 int ret = device->driver->input_mapping(device, hidinput, field,
1370 device->driver->input_mapped(device, hidinput, field, usage,
1543 if (!field->hidinput)
1546 input = field->hidinput->input;
1744 struct hid_input *hidinput;
1749 list_for_each_entry(hidinput, &hid->inputs, list)
1750 input_sync(hidinput->input);
2012 struct hid_input *hidinput = kzalloc(sizeof(*hidinput), GFP_KERNEL);
2017 if (!hidinput || !input_dev)
2073 hidinput->name = kasprintf(GFP_KERNEL, "%s %s",
2075 if (!hidinput->name)
2087 input_dev->name = hidinput->name ? hidinput->name : hid->name;
2096 hidinput->input = input_dev;
2097 hidinput->application = application;
2098 list_add_tail(&hidinput->list, &hid->inputs);
2100 INIT_LIST_HEAD(&hidinput->reports);
2102 return hidinput;
2105 kfree(hidinput);
2111 static bool hidinput_has_been_populated(struct hid_input *hidinput)
2117 r |= hidinput->input->evbit[i];
2120 r |= hidinput->input->keybit[i];
2123 r |= hidinput->input->relbit[i];
2126 r |= hidinput->input->absbit[i];
2129 r |= hidinput->input->mscbit[i];
2132 r |= hidinput->input->ledbit[i];
2135 r |= hidinput->input->sndbit[i];
2138 r |= hidinput->input->ffbit[i];
2141 r |= hidinput->input->swbit[i];
2147 struct hid_input *hidinput)
2152 list_del(&hidinput->list);
2153 input_free_device(hidinput->input);
2154 kfree(hidinput->name);
2165 if (report->field[i]->hidinput == hidinput)
2166 report->field[i]->hidinput = NULL;
2170 kfree(hidinput);
2176 struct hid_input *hidinput;
2178 list_for_each_entry(hidinput, &hid->inputs, list) {
2179 if (hidinput->report &&
2180 hidinput->report->id == report->id)
2181 return hidinput;
2190 struct hid_input *hidinput;
2192 list_for_each_entry(hidinput, &hid->inputs, list) {
2193 if (hidinput->application == report->application)
2194 return hidinput;
2202 hidinput->application == HID_GD_KEYBOARD) {
2203 return hidinput;
2210 static inline void hidinput_configure_usages(struct hid_input *hidinput,
2267 hidinput_configure_usage(hidinput, report->field[i],
2282 struct hid_input *next, *hidinput = NULL;
2319 * Find the previous hidinput report attached
2323 hidinput = hidinput_match(report);
2326 hidinput = hidinput_match_application(report);
2328 if (!hidinput) {
2329 hidinput = hidinput_allocate(hid, application);
2330 if (!hidinput)
2334 hidinput_configure_usages(hidinput, report);
2337 hidinput->report = report;
2340 &hidinput->reports);
2346 list_for_each_entry_safe(hidinput, next, &hid->inputs, list) {
2348 drv->input_configured(hid, hidinput))
2351 if (!hidinput_has_been_populated(hidinput)) {
2353 hidinput_cleanup_hidinput(hid, hidinput);
2357 if (input_register_device(hidinput->input))
2359 hidinput->registered = true;
2383 struct hid_input *hidinput, *next;
2387 list_for_each_entry_safe(hidinput, next, &hid->inputs, list) {
2388 list_del(&hidinput->list);
2389 if (hidinput->registered)
2390 input_unregister_device(hidinput->input);
2392 input_free_device(hidinput->input);
2393 kfree(hidinput->name);
2394 kfree(hidinput);