hiddev_lookup_report(struct hid_device *hid, struct hiddev_report_info *rinfo){	unsigned flags = rinfo->report_id & ~HID_REPORT_ID_MASK;	struct hid_report_enum *report_enum;	struct list_head *list;	if (rinfo->report_type < HID_REPORT_TYPE_MIN ||	    rinfo->report_type > HID_REPORT_TYPE_MAX) return NULL;	report_enum = hid->report_enum +		(rinfo->report_type - HID_REPORT_TYPE_MIN);	switch (flags) {	case 0: /* Nothing to do -- report_id is already set correctly */		break;	case HID_REPORT_ID_FIRST:		list = report_enum->report_list.next;		if (list == &report_enum->report_list)			return NULL;		rinfo->report_id = ((struct hid_report *) list)->id;		break;			case HID_REPORT_ID_NEXT:		list = (struct list_head *)			report_enum->report_id_hash[rinfo->report_id & HID_REPORT_ID_MASK];		if (list == NULL)			return NULL;		list = list->next;		if (list == &report_enum->report_list)			return NULL;		rinfo->report_id = ((struct hid_report *) list)->id;		break;			default:		return NULL;	}	return report_enum->report_id_hash[rinfo->report_id];}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/05f091ab4c8c1f12f8dd38ee789489904fea327d/hiddev.c/clean/drivers/usb/input/hiddev.c