hidg              246 drivers/usb/gadget/function/f_hid.c 	struct f_hidg *hidg = file->private_data;
hidg              258 drivers/usb/gadget/function/f_hid.c 	spin_lock_irqsave(&hidg->read_spinlock, flags);
hidg              260 drivers/usb/gadget/function/f_hid.c #define READ_COND (!list_empty(&hidg->completed_out_req))
hidg              264 drivers/usb/gadget/function/f_hid.c 		spin_unlock_irqrestore(&hidg->read_spinlock, flags);
hidg              268 drivers/usb/gadget/function/f_hid.c 		if (wait_event_interruptible(hidg->read_queue, READ_COND))
hidg              271 drivers/usb/gadget/function/f_hid.c 		spin_lock_irqsave(&hidg->read_spinlock, flags);
hidg              275 drivers/usb/gadget/function/f_hid.c 	list = list_first_entry(&hidg->completed_out_req,
hidg              286 drivers/usb/gadget/function/f_hid.c 	spin_unlock_irqrestore(&hidg->read_spinlock, flags);
hidg              301 drivers/usb/gadget/function/f_hid.c 		req->length = hidg->report_length;
hidg              302 drivers/usb/gadget/function/f_hid.c 		ret = usb_ep_queue(hidg->out_ep, req, GFP_KERNEL);
hidg              304 drivers/usb/gadget/function/f_hid.c 			free_ep_req(hidg->out_ep, req);
hidg              308 drivers/usb/gadget/function/f_hid.c 		spin_lock_irqsave(&hidg->read_spinlock, flags);
hidg              309 drivers/usb/gadget/function/f_hid.c 		list_add(&list->list, &hidg->completed_out_req);
hidg              310 drivers/usb/gadget/function/f_hid.c 		spin_unlock_irqrestore(&hidg->read_spinlock, flags);
hidg              312 drivers/usb/gadget/function/f_hid.c 		wake_up(&hidg->read_queue);
hidg              320 drivers/usb/gadget/function/f_hid.c 	struct f_hidg *hidg = (struct f_hidg *)ep->driver_data;
hidg              324 drivers/usb/gadget/function/f_hid.c 		ERROR(hidg->func.config->cdev,
hidg              328 drivers/usb/gadget/function/f_hid.c 	spin_lock_irqsave(&hidg->write_spinlock, flags);
hidg              329 drivers/usb/gadget/function/f_hid.c 	hidg->write_pending = 0;
hidg              330 drivers/usb/gadget/function/f_hid.c 	spin_unlock_irqrestore(&hidg->write_spinlock, flags);
hidg              331 drivers/usb/gadget/function/f_hid.c 	wake_up(&hidg->write_queue);
hidg              337 drivers/usb/gadget/function/f_hid.c 	struct f_hidg *hidg  = file->private_data;
hidg              345 drivers/usb/gadget/function/f_hid.c 	spin_lock_irqsave(&hidg->write_spinlock, flags);
hidg              347 drivers/usb/gadget/function/f_hid.c #define WRITE_COND (!hidg->write_pending)
hidg              351 drivers/usb/gadget/function/f_hid.c 		spin_unlock_irqrestore(&hidg->write_spinlock, flags);
hidg              356 drivers/usb/gadget/function/f_hid.c 				hidg->write_queue, WRITE_COND))
hidg              359 drivers/usb/gadget/function/f_hid.c 		spin_lock_irqsave(&hidg->write_spinlock, flags);
hidg              362 drivers/usb/gadget/function/f_hid.c 	hidg->write_pending = 1;
hidg              363 drivers/usb/gadget/function/f_hid.c 	req = hidg->req;
hidg              364 drivers/usb/gadget/function/f_hid.c 	count  = min_t(unsigned, count, hidg->report_length);
hidg              366 drivers/usb/gadget/function/f_hid.c 	spin_unlock_irqrestore(&hidg->write_spinlock, flags);
hidg              370 drivers/usb/gadget/function/f_hid.c 		ERROR(hidg->func.config->cdev,
hidg              376 drivers/usb/gadget/function/f_hid.c 	spin_lock_irqsave(&hidg->write_spinlock, flags);
hidg              379 drivers/usb/gadget/function/f_hid.c 	if (!hidg->req) {
hidg              380 drivers/usb/gadget/function/f_hid.c 		free_ep_req(hidg->in_ep, req);
hidg              392 drivers/usb/gadget/function/f_hid.c 	req->context  = hidg;
hidg              394 drivers/usb/gadget/function/f_hid.c 	spin_unlock_irqrestore(&hidg->write_spinlock, flags);
hidg              396 drivers/usb/gadget/function/f_hid.c 	status = usb_ep_queue(hidg->in_ep, req, GFP_ATOMIC);
hidg              398 drivers/usb/gadget/function/f_hid.c 		ERROR(hidg->func.config->cdev,
hidg              407 drivers/usb/gadget/function/f_hid.c 	spin_lock_irqsave(&hidg->write_spinlock, flags);
hidg              408 drivers/usb/gadget/function/f_hid.c 	hidg->write_pending = 0;
hidg              409 drivers/usb/gadget/function/f_hid.c 	spin_unlock_irqrestore(&hidg->write_spinlock, flags);
hidg              411 drivers/usb/gadget/function/f_hid.c 	wake_up(&hidg->write_queue);
hidg              418 drivers/usb/gadget/function/f_hid.c 	struct f_hidg	*hidg  = file->private_data;
hidg              421 drivers/usb/gadget/function/f_hid.c 	poll_wait(file, &hidg->read_queue, wait);
hidg              422 drivers/usb/gadget/function/f_hid.c 	poll_wait(file, &hidg->write_queue, wait);
hidg              444 drivers/usb/gadget/function/f_hid.c 	struct f_hidg *hidg =
hidg              447 drivers/usb/gadget/function/f_hid.c 	fd->private_data = hidg;
hidg              463 drivers/usb/gadget/function/f_hid.c 	struct f_hidg *hidg = (struct f_hidg *) req->context;
hidg              464 drivers/usb/gadget/function/f_hid.c 	struct usb_composite_dev *cdev = hidg->func.config->cdev;
hidg              478 drivers/usb/gadget/function/f_hid.c 		spin_lock_irqsave(&hidg->read_spinlock, flags);
hidg              479 drivers/usb/gadget/function/f_hid.c 		list_add_tail(&req_list->list, &hidg->completed_out_req);
hidg              480 drivers/usb/gadget/function/f_hid.c 		spin_unlock_irqrestore(&hidg->read_spinlock, flags);
hidg              482 drivers/usb/gadget/function/f_hid.c 		wake_up(&hidg->read_queue);
hidg              499 drivers/usb/gadget/function/f_hid.c 	struct f_hidg			*hidg = func_to_hidg(f);
hidg              518 drivers/usb/gadget/function/f_hid.c 		length = min_t(unsigned, length, hidg->report_length);
hidg              528 drivers/usb/gadget/function/f_hid.c 		((u8 *) req->buf)[0] = hidg->protocol;
hidg              548 drivers/usb/gadget/function/f_hid.c 		if (hidg->bInterfaceSubClass == USB_INTERFACE_SUBCLASS_BOOT) {
hidg              549 drivers/usb/gadget/function/f_hid.c 			hidg->protocol = value;
hidg              565 drivers/usb/gadget/function/f_hid.c 				cpu_to_le16(hidg->report_desc_length);
hidg              576 drivers/usb/gadget/function/f_hid.c 						   hidg->report_desc_length);
hidg              577 drivers/usb/gadget/function/f_hid.c 			memcpy(req->buf, hidg->report_desc, length);
hidg              610 drivers/usb/gadget/function/f_hid.c 	struct f_hidg *hidg = func_to_hidg(f);
hidg              614 drivers/usb/gadget/function/f_hid.c 	usb_ep_disable(hidg->in_ep);
hidg              615 drivers/usb/gadget/function/f_hid.c 	usb_ep_disable(hidg->out_ep);
hidg              617 drivers/usb/gadget/function/f_hid.c 	spin_lock_irqsave(&hidg->read_spinlock, flags);
hidg              618 drivers/usb/gadget/function/f_hid.c 	list_for_each_entry_safe(list, next, &hidg->completed_out_req, list) {
hidg              619 drivers/usb/gadget/function/f_hid.c 		free_ep_req(hidg->out_ep, list->req);
hidg              623 drivers/usb/gadget/function/f_hid.c 	spin_unlock_irqrestore(&hidg->read_spinlock, flags);
hidg              625 drivers/usb/gadget/function/f_hid.c 	spin_lock_irqsave(&hidg->write_spinlock, flags);
hidg              626 drivers/usb/gadget/function/f_hid.c 	if (!hidg->write_pending) {
hidg              627 drivers/usb/gadget/function/f_hid.c 		free_ep_req(hidg->in_ep, hidg->req);
hidg              628 drivers/usb/gadget/function/f_hid.c 		hidg->write_pending = 1;
hidg              631 drivers/usb/gadget/function/f_hid.c 	hidg->req = NULL;
hidg              632 drivers/usb/gadget/function/f_hid.c 	spin_unlock_irqrestore(&hidg->write_spinlock, flags);
hidg              638 drivers/usb/gadget/function/f_hid.c 	struct f_hidg				*hidg = func_to_hidg(f);
hidg              645 drivers/usb/gadget/function/f_hid.c 	if (hidg->in_ep != NULL) {
hidg              647 drivers/usb/gadget/function/f_hid.c 		usb_ep_disable(hidg->in_ep);
hidg              650 drivers/usb/gadget/function/f_hid.c 					    hidg->in_ep);
hidg              655 drivers/usb/gadget/function/f_hid.c 		status = usb_ep_enable(hidg->in_ep);
hidg              660 drivers/usb/gadget/function/f_hid.c 		hidg->in_ep->driver_data = hidg;
hidg              662 drivers/usb/gadget/function/f_hid.c 		req_in = hidg_alloc_ep_req(hidg->in_ep, hidg->report_length);
hidg              670 drivers/usb/gadget/function/f_hid.c 	if (hidg->out_ep != NULL) {
hidg              672 drivers/usb/gadget/function/f_hid.c 		usb_ep_disable(hidg->out_ep);
hidg              675 drivers/usb/gadget/function/f_hid.c 					    hidg->out_ep);
hidg              680 drivers/usb/gadget/function/f_hid.c 		status = usb_ep_enable(hidg->out_ep);
hidg              685 drivers/usb/gadget/function/f_hid.c 		hidg->out_ep->driver_data = hidg;
hidg              690 drivers/usb/gadget/function/f_hid.c 		for (i = 0; i < hidg->qlen && status == 0; i++) {
hidg              692 drivers/usb/gadget/function/f_hid.c 					hidg_alloc_ep_req(hidg->out_ep,
hidg              693 drivers/usb/gadget/function/f_hid.c 							  hidg->report_length);
hidg              696 drivers/usb/gadget/function/f_hid.c 				req->context  = hidg;
hidg              697 drivers/usb/gadget/function/f_hid.c 				status = usb_ep_queue(hidg->out_ep, req,
hidg              701 drivers/usb/gadget/function/f_hid.c 						hidg->out_ep->name, status);
hidg              702 drivers/usb/gadget/function/f_hid.c 					free_ep_req(hidg->out_ep, req);
hidg              711 drivers/usb/gadget/function/f_hid.c 	if (hidg->in_ep != NULL) {
hidg              712 drivers/usb/gadget/function/f_hid.c 		spin_lock_irqsave(&hidg->write_spinlock, flags);
hidg              713 drivers/usb/gadget/function/f_hid.c 		hidg->req = req_in;
hidg              714 drivers/usb/gadget/function/f_hid.c 		hidg->write_pending = 0;
hidg              715 drivers/usb/gadget/function/f_hid.c 		spin_unlock_irqrestore(&hidg->write_spinlock, flags);
hidg              717 drivers/usb/gadget/function/f_hid.c 		wake_up(&hidg->write_queue);
hidg              721 drivers/usb/gadget/function/f_hid.c 	usb_ep_disable(hidg->out_ep);
hidg              724 drivers/usb/gadget/function/f_hid.c 		free_ep_req(hidg->in_ep, req_in);
hidg              727 drivers/usb/gadget/function/f_hid.c 	if (hidg->in_ep)
hidg              728 drivers/usb/gadget/function/f_hid.c 		usb_ep_disable(hidg->in_ep);
hidg              747 drivers/usb/gadget/function/f_hid.c 	struct f_hidg		*hidg = func_to_hidg(f);
hidg              771 drivers/usb/gadget/function/f_hid.c 	hidg->in_ep = ep;
hidg              776 drivers/usb/gadget/function/f_hid.c 	hidg->out_ep = ep;
hidg              779 drivers/usb/gadget/function/f_hid.c 	hidg_interface_desc.bInterfaceSubClass = hidg->bInterfaceSubClass;
hidg              780 drivers/usb/gadget/function/f_hid.c 	hidg_interface_desc.bInterfaceProtocol = hidg->bInterfaceProtocol;
hidg              781 drivers/usb/gadget/function/f_hid.c 	hidg->protocol = HID_REPORT_PROTOCOL;
hidg              782 drivers/usb/gadget/function/f_hid.c 	hidg_ss_in_ep_desc.wMaxPacketSize = cpu_to_le16(hidg->report_length);
hidg              784 drivers/usb/gadget/function/f_hid.c 				cpu_to_le16(hidg->report_length);
hidg              785 drivers/usb/gadget/function/f_hid.c 	hidg_hs_in_ep_desc.wMaxPacketSize = cpu_to_le16(hidg->report_length);
hidg              786 drivers/usb/gadget/function/f_hid.c 	hidg_fs_in_ep_desc.wMaxPacketSize = cpu_to_le16(hidg->report_length);
hidg              787 drivers/usb/gadget/function/f_hid.c 	hidg_ss_out_ep_desc.wMaxPacketSize = cpu_to_le16(hidg->report_length);
hidg              789 drivers/usb/gadget/function/f_hid.c 				cpu_to_le16(hidg->report_length);
hidg              790 drivers/usb/gadget/function/f_hid.c 	hidg_hs_out_ep_desc.wMaxPacketSize = cpu_to_le16(hidg->report_length);
hidg              791 drivers/usb/gadget/function/f_hid.c 	hidg_fs_out_ep_desc.wMaxPacketSize = cpu_to_le16(hidg->report_length);
hidg              798 drivers/usb/gadget/function/f_hid.c 		cpu_to_le16(hidg->report_desc_length);
hidg              815 drivers/usb/gadget/function/f_hid.c 	spin_lock_init(&hidg->write_spinlock);
hidg              816 drivers/usb/gadget/function/f_hid.c 	hidg->write_pending = 1;
hidg              817 drivers/usb/gadget/function/f_hid.c 	hidg->req = NULL;
hidg              818 drivers/usb/gadget/function/f_hid.c 	spin_lock_init(&hidg->read_spinlock);
hidg              819 drivers/usb/gadget/function/f_hid.c 	init_waitqueue_head(&hidg->write_queue);
hidg              820 drivers/usb/gadget/function/f_hid.c 	init_waitqueue_head(&hidg->read_queue);
hidg              821 drivers/usb/gadget/function/f_hid.c 	INIT_LIST_HEAD(&hidg->completed_out_req);
hidg              824 drivers/usb/gadget/function/f_hid.c 	cdev_init(&hidg->cdev, &f_hidg_fops);
hidg              825 drivers/usb/gadget/function/f_hid.c 	dev = MKDEV(major, hidg->minor);
hidg              826 drivers/usb/gadget/function/f_hid.c 	status = cdev_add(&hidg->cdev, dev, 1);
hidg              831 drivers/usb/gadget/function/f_hid.c 			       "%s%d", "hidg", hidg->minor);
hidg              839 drivers/usb/gadget/function/f_hid.c 	cdev_del(&hidg->cdev);
hidg              844 drivers/usb/gadget/function/f_hid.c 	if (hidg->req != NULL)
hidg              845 drivers/usb/gadget/function/f_hid.c 		free_ep_req(hidg->in_ep, hidg->req);
hidg             1063 drivers/usb/gadget/function/f_hid.c 	struct f_hidg *hidg;
hidg             1066 drivers/usb/gadget/function/f_hid.c 	hidg = func_to_hidg(f);
hidg             1068 drivers/usb/gadget/function/f_hid.c 	kfree(hidg->report_desc);
hidg             1069 drivers/usb/gadget/function/f_hid.c 	kfree(hidg);
hidg             1077 drivers/usb/gadget/function/f_hid.c 	struct f_hidg *hidg = func_to_hidg(f);
hidg             1079 drivers/usb/gadget/function/f_hid.c 	device_destroy(hidg_class, MKDEV(major, hidg->minor));
hidg             1080 drivers/usb/gadget/function/f_hid.c 	cdev_del(&hidg->cdev);
hidg             1087 drivers/usb/gadget/function/f_hid.c 	struct f_hidg *hidg;
hidg             1091 drivers/usb/gadget/function/f_hid.c 	hidg = kzalloc(sizeof(*hidg), GFP_KERNEL);
hidg             1092 drivers/usb/gadget/function/f_hid.c 	if (!hidg)
hidg             1100 drivers/usb/gadget/function/f_hid.c 	hidg->minor = opts->minor;
hidg             1101 drivers/usb/gadget/function/f_hid.c 	hidg->bInterfaceSubClass = opts->subclass;
hidg             1102 drivers/usb/gadget/function/f_hid.c 	hidg->bInterfaceProtocol = opts->protocol;
hidg             1103 drivers/usb/gadget/function/f_hid.c 	hidg->report_length = opts->report_length;
hidg             1104 drivers/usb/gadget/function/f_hid.c 	hidg->report_desc_length = opts->report_desc_length;
hidg             1106 drivers/usb/gadget/function/f_hid.c 		hidg->report_desc = kmemdup(opts->report_desc,
hidg             1109 drivers/usb/gadget/function/f_hid.c 		if (!hidg->report_desc) {
hidg             1110 drivers/usb/gadget/function/f_hid.c 			kfree(hidg);
hidg             1118 drivers/usb/gadget/function/f_hid.c 	hidg->func.name    = "hid";
hidg             1119 drivers/usb/gadget/function/f_hid.c 	hidg->func.bind    = hidg_bind;
hidg             1120 drivers/usb/gadget/function/f_hid.c 	hidg->func.unbind  = hidg_unbind;
hidg             1121 drivers/usb/gadget/function/f_hid.c 	hidg->func.set_alt = hidg_set_alt;
hidg             1122 drivers/usb/gadget/function/f_hid.c 	hidg->func.disable = hidg_disable;
hidg             1123 drivers/usb/gadget/function/f_hid.c 	hidg->func.setup   = hidg_setup;
hidg             1124 drivers/usb/gadget/function/f_hid.c 	hidg->func.free_func = hidg_free;
hidg             1127 drivers/usb/gadget/function/f_hid.c 	hidg->qlen	   = 4;
hidg             1129 drivers/usb/gadget/function/f_hid.c 	return &hidg->func;