Lines Matching refs:field
96 struct hid_field *field; in hid_register_field() local
103 field = kzalloc((sizeof(struct hid_field) + in hid_register_field()
106 if (!field) in hid_register_field()
109 field->index = report->maxfield++; in hid_register_field()
110 report->field[field->index] = field; in hid_register_field()
111 field->usage = (struct hid_usage *)(field + 1); in hid_register_field()
112 field->value = (s32 *)(field->usage + usages); in hid_register_field()
113 field->report = report; in hid_register_field()
115 return field; in hid_register_field()
224 struct hid_field *field; in hid_add_field() local
257 field = hid_register_field(report, usages, parser->global.report_count); in hid_add_field()
258 if (!field) in hid_add_field()
261 field->physical = hid_lookup_collection(parser, HID_COLLECTION_PHYSICAL); in hid_add_field()
262 field->logical = hid_lookup_collection(parser, HID_COLLECTION_LOGICAL); in hid_add_field()
263 field->application = hid_lookup_collection(parser, HID_COLLECTION_APPLICATION); in hid_add_field()
270 field->usage[i].hid = parser->local.usage[j]; in hid_add_field()
271 field->usage[i].collection_index = in hid_add_field()
273 field->usage[i].usage_index = i; in hid_add_field()
276 field->maxusage = usages; in hid_add_field()
277 field->flags = flags; in hid_add_field()
278 field->report_offset = offset; in hid_add_field()
279 field->report_type = report_type; in hid_add_field()
280 field->report_size = parser->global.report_size; in hid_add_field()
281 field->report_count = parser->global.report_count; in hid_add_field()
282 field->logical_minimum = parser->global.logical_minimum; in hid_add_field()
283 field->logical_maximum = parser->global.logical_maximum; in hid_add_field()
284 field->physical_minimum = parser->global.physical_minimum; in hid_add_field()
285 field->physical_maximum = parser->global.physical_maximum; in hid_add_field()
286 field->unit_exponent = parser->global.unit_exponent; in hid_add_field()
287 field->unit = parser->global.unit; in hid_add_field()
566 kfree(report->field[n]); in hid_free_report()
899 if (report->field[field_index]->report_count < report_counts) { in hid_validate_values()
1175 static void hid_process_event(struct hid_device *hid, struct hid_field *field, in hid_process_event() argument
1185 ret = hdrv->event(hid, field, usage, value); in hid_process_event()
1195 hidinput_hid_event(hid, field, usage, value); in hid_process_event()
1197 hid->hiddev_hid_event(hid, field, usage, value); in hid_process_event()
1206 static void hid_input_field(struct hid_device *hid, struct hid_field *field, in hid_input_field() argument
1210 unsigned count = field->report_count; in hid_input_field()
1211 unsigned offset = field->report_offset; in hid_input_field()
1212 unsigned size = field->report_size; in hid_input_field()
1213 __s32 min = field->logical_minimum; in hid_input_field()
1214 __s32 max = field->logical_maximum; in hid_input_field()
1229 if (!(field->flags & HID_MAIN_ITEM_VARIABLE) && in hid_input_field()
1231 field->usage[value[n] - min].hid == HID_UP_KEYBOARD + 1) in hid_input_field()
1237 if (HID_MAIN_ITEM_VARIABLE & field->flags) { in hid_input_field()
1238 hid_process_event(hid, field, &field->usage[n], value[n], interrupt); in hid_input_field()
1242 if (field->value[n] >= min && field->value[n] <= max in hid_input_field()
1243 && field->usage[field->value[n] - min].hid in hid_input_field()
1244 && search(value, field->value[n], count)) in hid_input_field()
1245 hid_process_event(hid, field, &field->usage[field->value[n] - min], 0, interrupt); in hid_input_field()
1248 && field->usage[value[n] - min].hid in hid_input_field()
1249 && search(field->value, value[n], count)) in hid_input_field()
1250 hid_process_event(hid, field, &field->usage[value[n] - min], 1, interrupt); in hid_input_field()
1253 memcpy(field->value, value, count * sizeof(__s32)); in hid_input_field()
1263 struct hid_field *field, __u8 *data) in hid_output_field() argument
1265 unsigned count = field->report_count; in hid_output_field()
1266 unsigned offset = field->report_offset; in hid_output_field()
1267 unsigned size = field->report_size; in hid_output_field()
1271 if (field->logical_minimum < 0) /* signed values */ in hid_output_field()
1273 s32ton(field->value[n], size)); in hid_output_field()
1276 field->value[n]); in hid_output_field()
1294 hid_output_field(report->device, report->field[n], data); in hid_output_report()
1320 int hid_set_field(struct hid_field *field, unsigned offset, __s32 value) in hid_set_field() argument
1324 if (!field) in hid_set_field()
1327 size = field->report_size; in hid_set_field()
1329 hid_dump_input(field->report->device, field->usage + offset, value); in hid_set_field()
1331 if (offset >= field->report_count) { in hid_set_field()
1332 hid_err(field->report->device, "offset (%d) exceeds report_count (%d)\n", in hid_set_field()
1333 offset, field->report_count); in hid_set_field()
1336 if (field->logical_minimum < 0) { in hid_set_field()
1338 hid_err(field->report->device, "value %d is out of range\n", value); in hid_set_field()
1342 field->value[offset] = value; in hid_set_field()
1440 hid_input_field(hid, report->field[a], cdata, interrupt); in hid_report_raw_event()