Lines Matching refs:item

296 static u32 item_udata(struct hid_item *item)  in item_udata()  argument
298 switch (item->size) { in item_udata()
299 case 1: return item->data.u8; in item_udata()
300 case 2: return item->data.u16; in item_udata()
301 case 4: return item->data.u32; in item_udata()
306 static s32 item_sdata(struct hid_item *item) in item_sdata() argument
308 switch (item->size) { in item_sdata()
309 case 1: return item->data.s8; in item_sdata()
310 case 2: return item->data.s16; in item_sdata()
311 case 4: return item->data.s32; in item_sdata()
320 static int hid_parser_global(struct hid_parser *parser, struct hid_item *item) in hid_parser_global() argument
323 switch (item->tag) { in hid_parser_global()
347 parser->global.usage_page = item_udata(item); in hid_parser_global()
351 parser->global.logical_minimum = item_sdata(item); in hid_parser_global()
356 parser->global.logical_maximum = item_sdata(item); in hid_parser_global()
358 parser->global.logical_maximum = item_udata(item); in hid_parser_global()
362 parser->global.physical_minimum = item_sdata(item); in hid_parser_global()
367 parser->global.physical_maximum = item_sdata(item); in hid_parser_global()
369 parser->global.physical_maximum = item_udata(item); in hid_parser_global()
377 raw_value = item_sdata(item); in hid_parser_global()
385 parser->global.unit = item_udata(item); in hid_parser_global()
389 parser->global.report_size = item_udata(item); in hid_parser_global()
398 parser->global.report_count = item_udata(item); in hid_parser_global()
407 parser->global.report_id = item_udata(item); in hid_parser_global()
417 hid_err(parser->device, "unknown global tag 0x%x\n", item->tag); in hid_parser_global()
426 static int hid_parser_local(struct hid_parser *parser, struct hid_item *item) in hid_parser_local() argument
431 data = item_udata(item); in hid_parser_local()
433 switch (item->tag) { in hid_parser_local()
465 if (item->size <= 2) in hid_parser_local()
477 if (item->size <= 2) in hid_parser_local()
490 if (item->size <= 2) in hid_parser_local()
502 dbg_hid("unknown local item tag 0x%x\n", item->tag); in hid_parser_local()
512 static int hid_parser_main(struct hid_parser *parser, struct hid_item *item) in hid_parser_main() argument
517 data = item_udata(item); in hid_parser_main()
519 switch (item->tag) { in hid_parser_main()
536 hid_err(parser->device, "unknown main item tag 0x%x\n", item->tag); in hid_parser_main()
549 static int hid_parser_reserved(struct hid_parser *parser, struct hid_item *item) in hid_parser_reserved() argument
551 dbg_hid("reserved item type, tag 0x%x\n", item->tag); in hid_parser_reserved()
621 static u8 *fetch_item(__u8 *start, __u8 *end, struct hid_item *item) in fetch_item() argument
630 item->type = (b >> 2) & 3; in fetch_item()
631 item->tag = (b >> 4) & 15; in fetch_item()
633 if (item->tag == HID_ITEM_TAG_LONG) { in fetch_item()
635 item->format = HID_ITEM_FORMAT_LONG; in fetch_item()
640 item->size = *start++; in fetch_item()
641 item->tag = *start++; in fetch_item()
643 if ((end - start) < item->size) in fetch_item()
646 item->data.longdata = start; in fetch_item()
647 start += item->size; in fetch_item()
651 item->format = HID_ITEM_FORMAT_SHORT; in fetch_item()
652 item->size = b & 3; in fetch_item()
654 switch (item->size) { in fetch_item()
661 item->data.u8 = *start++; in fetch_item()
667 item->data.u16 = get_unaligned_le16(start); in fetch_item()
672 item->size++; in fetch_item()
675 item->data.u32 = get_unaligned_le32(start); in fetch_item()
722 static int hid_scan_main(struct hid_parser *parser, struct hid_item *item) in hid_scan_main() argument
727 data = item_udata(item); in hid_scan_main()
729 switch (item->tag) { in hid_scan_main()
764 struct hid_item item; in hid_scan_report() local
768 struct hid_item *item) = { in hid_scan_report()
787 while ((start = fetch_item(start, end, &item)) != NULL) in hid_scan_report()
788 dispatch_type[item.type](parser, &item); in hid_scan_report()
923 struct hid_item item; in hid_open_report() local
930 struct hid_item *item) = { in hid_open_report()
981 while ((start = fetch_item(start, end, &item)) != NULL) { in hid_open_report()
983 if (item.format != HID_ITEM_FORMAT_SHORT) { in hid_open_report()
988 if (dispatch_type[item.type](parser, &item)) { in hid_open_report()
990 item.format, (unsigned)item.size, in hid_open_report()
991 (unsigned)item.type, (unsigned)item.tag); in hid_open_report()