Lines Matching defs:udc

22 /* called with udc->lock held */
23 int get_gadget_descs(struct vudc *udc)
26 struct vep *ep0 = to_vep(udc->gadget.ep0);
27 struct usb_device_descriptor *ddesc = &udc->dev_desc;
31 if (!udc->driver || !udc->pullup)
40 spin_unlock(&udc->lock);
41 ret = udc->driver->setup(&(udc->gadget), &req);
42 spin_lock(&udc->lock);
56 udc->desc_cached = 1;
74 struct vudc *udc = (struct vudc *)dev_get_drvdata(dev);
75 char *desc_ptr = (char *) &udc->dev_desc;
79 spin_lock_irqsave(&udc->lock, flags);
80 if (!udc->desc_cached) {
88 spin_unlock_irqrestore(&udc->lock, flags);
97 struct vudc *udc = (struct vudc *) dev_get_drvdata(dev);
111 if (!udc) {
115 mutex_lock(&udc->ud.sysfs_lock);
116 spin_lock_irqsave(&udc->lock, flags);
118 if (!udc->driver || !udc->pullup) {
125 if (udc->connected) {
131 spin_lock(&udc->ud.lock);
133 if (udc->ud.status != SDEV_ST_AVAILABLE) {
153 spin_unlock(&udc->ud.lock);
154 spin_unlock_irqrestore(&udc->lock, flags);
156 tcp_rx = kthread_create(&v_rx_loop, &udc->ud, "vudc_rx");
159 mutex_unlock(&udc->ud.sysfs_lock);
162 tcp_tx = kthread_create(&v_tx_loop, &udc->ud, "vudc_tx");
166 mutex_unlock(&udc->ud.sysfs_lock);
174 /* lock and update udc->ud state */
175 spin_lock_irqsave(&udc->lock, flags);
176 spin_lock(&udc->ud.lock);
178 udc->ud.tcp_socket = socket;
179 udc->ud.tcp_rx = tcp_rx;
180 udc->ud.tcp_tx = tcp_tx;
181 udc->ud.status = SDEV_ST_USED;
183 spin_unlock(&udc->ud.lock);
185 ktime_get_ts64(&udc->start_time);
186 v_start_timer(udc);
187 udc->connected = 1;
189 spin_unlock_irqrestore(&udc->lock, flags);
191 wake_up_process(udc->ud.tcp_rx);
192 wake_up_process(udc->ud.tcp_tx);
194 mutex_unlock(&udc->ud.sysfs_lock);
198 if (!udc->connected) {
204 spin_lock(&udc->ud.lock);
205 if (udc->ud.status != SDEV_ST_USED) {
209 spin_unlock(&udc->ud.lock);
211 usbip_event_add(&udc->ud, VUDC_EVENT_DOWN);
214 spin_unlock_irqrestore(&udc->lock, flags);
215 mutex_unlock(&udc->ud.sysfs_lock);
222 spin_unlock(&udc->ud.lock);
224 spin_unlock_irqrestore(&udc->lock, flags);
225 mutex_unlock(&udc->ud.sysfs_lock);
234 struct vudc *udc = (struct vudc *) dev_get_drvdata(dev);
237 if (!udc) {
241 spin_lock_irq(&udc->ud.lock);
242 status = udc->ud.status;
243 spin_unlock_irq(&udc->ud.lock);