Lines Matching defs:udc

46  * @udc: pointer to vudc
56 * Adapted from drivers/usb/gadget/udc/dummy_hcd.c
58 static int handle_control_request(struct vudc *udc, struct urb *urb,
73 udc->address = w_value;
84 udc->gadget.b_hnp_enable = 1;
87 udc->gadget.a_hnp_support = 1;
90 udc->gadget.a_alt_hnp_support = 1;
96 udc->devstatus |= (1 << w_value);
101 ep2 = vudc_find_endpoint(udc, w_index);
102 if (!ep2 || ep2->ep.name == udc->ep[0].ep.name) {
129 udc->devstatus &= ~(1 << w_value);
134 ep2 = vudc_find_endpoint(udc, w_index);
158 ep2 = vudc_find_endpoint(udc, w_index);
166 buf[0] = (u8)udc->devstatus;
183 static int transfer(struct vudc *udc,
283 spin_unlock(&udc->lock);
285 spin_lock(&udc->lock);
304 struct vudc *udc = from_timer(udc, t, tr_timer.timer);
305 struct transfer_timer *timer = &udc->tr_timer;
313 spin_lock_irqsave(&udc->lock, flags);
315 total = get_frame_limit(udc->gadget.speed);
318 spin_unlock_irqrestore(&udc->lock, flags);
331 udc->ep[0].already_seen = 0;
332 list_for_each_entry(_ep, &udc->gadget.ep_list, ep_list) {
338 list_for_each_entry_safe(urb_p, tmp, &udc->urb_queue, urb_entry) {
359 if (ep == &udc->ep[0] && urb_p->new) {
368 if (ep == &udc->ep[0] && ep->setup_stage) {
373 ret = handle_control_request(udc, urb,
377 spin_unlock(&udc->lock);
378 ret = udc->driver->setup(&udc->gadget,
381 spin_lock(&udc->lock);
410 total -= transfer(udc, urb, ep, limit);
419 spin_lock(&udc->lock_tx);
422 v_enqueue_ret_submit(udc, urb_p);
424 v_enqueue_ret_unlink(udc, urb_p->seqnum,
428 wake_up(&udc->tx_waitq);
429 spin_unlock(&udc->lock_tx);
435 if (list_empty(&udc->urb_queue))
441 spin_unlock_irqrestore(&udc->lock, flags);
444 /* All timer functions are run with udc->lock held */
446 void v_init_timer(struct vudc *udc)
448 struct transfer_timer *t = &udc->tr_timer;
454 void v_start_timer(struct vudc *udc)
456 struct transfer_timer *t = &udc->tr_timer;
458 dev_dbg(&udc->pdev->dev, "timer start");
463 return v_kick_timer(udc, jiffies);
467 t->frame_limit = get_frame_limit(udc->gadget.speed);
468 return v_kick_timer(udc, jiffies);
472 void v_kick_timer(struct vudc *udc, unsigned long time)
474 struct transfer_timer *t = &udc->tr_timer;
476 dev_dbg(&udc->pdev->dev, "timer kick");
489 void v_stop_timer(struct vudc *udc)
491 struct transfer_timer *t = &udc->tr_timer;
494 dev_dbg(&udc->pdev->dev, "timer stop");