• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6/drivers/hid/

Lines Matching refs:item

264  * Read data value from item.
267 static u32 item_udata(struct hid_item *item)
269 switch (item->size) {
270 case 1: return item->data.u8;
271 case 2: return item->data.u16;
272 case 4: return item->data.u32;
277 static s32 item_sdata(struct hid_item *item)
279 switch (item->size) {
280 case 1: return item->data.s8;
281 case 2: return item->data.s16;
282 case 4: return item->data.s32;
288 * Process a global item.
291 static int hid_parser_global(struct hid_parser *parser, struct hid_item *item)
293 switch (item->tag) {
317 parser->global.usage_page = item_udata(item);
321 parser->global.logical_minimum = item_sdata(item);
326 parser->global.logical_maximum = item_sdata(item);
328 parser->global.logical_maximum = item_udata(item);
332 parser->global.physical_minimum = item_sdata(item);
337 parser->global.physical_maximum = item_sdata(item);
339 parser->global.physical_maximum = item_udata(item);
343 parser->global.unit_exponent = item_sdata(item);
347 parser->global.unit = item_udata(item);
351 parser->global.report_size = item_udata(item);
360 parser->global.report_count = item_udata(item);
369 parser->global.report_id = item_udata(item);
377 dbg_hid("unknown global tag 0x%x\n", item->tag);
383 * Process a local item.
386 static int hid_parser_local(struct hid_parser *parser, struct hid_item *item)
392 if (item->size == 0 && item->tag != HID_LOCAL_ITEM_TAG_DELIMITER) {
393 dbg_hid("item data expected for local item\n");
397 data = item_udata(item);
399 switch (item->tag) {
431 if (item->size <= 2)
443 if (item->size <= 2)
456 if (item->size <= 2)
468 dbg_hid("unknown local item tag 0x%x\n", item->tag);
475 * Process a main item.
478 static int hid_parser_main(struct hid_parser *parser, struct hid_item *item)
483 data = item_udata(item);
485 switch (item->tag) {
502 dbg_hid("unknown main item tag 0x%x\n", item->tag);
512 * Process a reserved item.
515 static int hid_parser_reserved(struct hid_parser *parser, struct hid_item *item)
517 dbg_hid("reserved item type, tag 0x%x\n", item->tag);
561 * Fetch a report description item from the data stream. We support long
565 static u8 *fetch_item(__u8 *start, __u8 *end, struct hid_item *item)
574 item->type = (b >> 2) & 3;
575 item->tag = (b >> 4) & 15;
577 if (item->tag == HID_ITEM_TAG_LONG) {
579 item->format = HID_ITEM_FORMAT_LONG;
584 item->size = *start++;
585 item->tag = *start++;
587 if ((end - start) < item->size)
590 item->data.longdata = start;
591 start += item->size;
595 item->format = HID_ITEM_FORMAT_SHORT;
596 item->size = b & 3;
598 switch (item->size) {
605 item->data.u8 = *start++;
611 item->data.u16 = get_unaligned_le16(start);
616 item->size++;
619 item->data.u32 = get_unaligned_le32(start);
642 struct hid_item item;
646 struct hid_item *item) = {
672 while ((start = fetch_item(start, end, &item)) != NULL) {
674 if (item.format != HID_ITEM_FORMAT_SHORT) {
675 dbg_hid("unexpected long global item\n");
679 if (dispatch_type[item.type](parser, &item)) {
680 dbg_hid("item %u %u %u %u parsing failed\n",
681 item.format, (unsigned)item.size, (unsigned)item.type, (unsigned)item.tag);
699 dbg_hid("item fetching failed at offset %d\n", (int)(end - start));