Lines Matching refs:urbs

127 	up(&unode->dev->urbs.limit_sem);  in udl_release_urb_work()
146 urb->transfer_buffer_length = udl->urbs.size; /* reset to actual */ in udl_urb_completion()
148 spin_lock_irqsave(&udl->urbs.lock, flags); in udl_urb_completion()
149 list_add_tail(&unode->entry, &udl->urbs.list); in udl_urb_completion()
150 udl->urbs.available++; in udl_urb_completion()
151 spin_unlock_irqrestore(&udl->urbs.lock, flags); in udl_urb_completion()
162 up(&udl->urbs.limit_sem); in udl_urb_completion()
168 int count = udl->urbs.count; in udl_free_urb_list()
177 down(&udl->urbs.limit_sem); in udl_free_urb_list()
179 spin_lock_irq(&udl->urbs.lock); in udl_free_urb_list()
181 node = udl->urbs.list.next; /* have reserved one with sem */ in udl_free_urb_list()
184 spin_unlock_irq(&udl->urbs.lock); in udl_free_urb_list()
190 usb_free_coherent(urb->dev, udl->urbs.size, in udl_free_urb_list()
195 udl->urbs.count = 0; in udl_free_urb_list()
206 spin_lock_init(&udl->urbs.lock); in udl_alloc_urb_list()
209 udl->urbs.size = size; in udl_alloc_urb_list()
210 INIT_LIST_HEAD(&udl->urbs.list); in udl_alloc_urb_list()
212 sema_init(&udl->urbs.limit_sem, 0); in udl_alloc_urb_list()
213 udl->urbs.count = 0; in udl_alloc_urb_list()
214 udl->urbs.available = 0; in udl_alloc_urb_list()
216 while (udl->urbs.count * size < wanted_size) { in udl_alloc_urb_list()
250 list_add_tail(&unode->entry, &udl->urbs.list); in udl_alloc_urb_list()
252 up(&udl->urbs.limit_sem); in udl_alloc_urb_list()
253 udl->urbs.count++; in udl_alloc_urb_list()
254 udl->urbs.available++; in udl_alloc_urb_list()
257 DRM_DEBUG("allocated %d %d byte urbs\n", udl->urbs.count, (int) size); in udl_alloc_urb_list()
259 return udl->urbs.count; in udl_alloc_urb_list()
271 ret = down_timeout(&udl->urbs.limit_sem, GET_URB_TIMEOUT); in udl_get_urb()
274 ret, udl->urbs.available); in udl_get_urb()
278 spin_lock_irq(&udl->urbs.lock); in udl_get_urb()
280 BUG_ON(list_empty(&udl->urbs.list)); /* reserved one with limit_sem */ in udl_get_urb()
281 entry = udl->urbs.list.next; in udl_get_urb()
283 udl->urbs.available--; in udl_get_urb()
285 spin_unlock_irq(&udl->urbs.lock); in udl_get_urb()
299 BUG_ON(len > udl->urbs.size); in udl_submit_urb()
343 if (udl->urbs.count) in udl_init()