Lines Matching full:urbs

96 	struct urb_list urbs;  member
132 /* ufx keeps a list of urbs for efficient bulk transfers */
1086 up(&unode->dev->urbs.limit_sem); in ufx_release_urb_work()
1717 if (dev->urbs.count > 0) in ufx_usb_probe()
1740 /* When non-active we'll update virtual framebuffer, but no new urbs */ in ufx_usb_disconnect()
1749 /* this function will wait for all in-flight urbs to complete */ in ufx_usb_disconnect()
1750 if (dev->urbs.count > 0) in ufx_usb_disconnect()
1786 urb->transfer_buffer_length = dev->urbs.size; /* reset to actual */ in ufx_urb_completion()
1788 spin_lock_irqsave(&dev->urbs.lock, flags); in ufx_urb_completion()
1789 list_add_tail(&unode->entry, &dev->urbs.list); in ufx_urb_completion()
1790 dev->urbs.available++; in ufx_urb_completion()
1791 spin_unlock_irqrestore(&dev->urbs.lock, flags); in ufx_urb_completion()
1798 up(&dev->urbs.limit_sem); in ufx_urb_completion()
1803 int count = dev->urbs.count; in ufx_free_urb_list()
1810 pr_debug("Waiting for completes and freeing all render urbs\n"); in ufx_free_urb_list()
1815 ret = down_interruptible(&dev->urbs.limit_sem); in ufx_free_urb_list()
1819 spin_lock_irqsave(&dev->urbs.lock, flags); in ufx_free_urb_list()
1821 node = dev->urbs.list.next; /* have reserved one with sem */ in ufx_free_urb_list()
1824 spin_unlock_irqrestore(&dev->urbs.lock, flags); in ufx_free_urb_list()
1830 usb_free_coherent(urb->dev, dev->urbs.size, in ufx_free_urb_list()
1844 spin_lock_init(&dev->urbs.lock); in ufx_alloc_urb_list()
1846 dev->urbs.size = size; in ufx_alloc_urb_list()
1847 INIT_LIST_HEAD(&dev->urbs.list); in ufx_alloc_urb_list()
1878 list_add_tail(&unode->entry, &dev->urbs.list); in ufx_alloc_urb_list()
1883 sema_init(&dev->urbs.limit_sem, i); in ufx_alloc_urb_list()
1884 dev->urbs.count = i; in ufx_alloc_urb_list()
1885 dev->urbs.available = i; in ufx_alloc_urb_list()
1887 pr_debug("allocated %d %d byte urbs\n", i, (int) size); in ufx_alloc_urb_list()
1901 ret = down_timeout(&dev->urbs.limit_sem, GET_URB_TIMEOUT); in ufx_get_urb()
1905 ret, dev->urbs.available); in ufx_get_urb()
1909 spin_lock_irqsave(&dev->urbs.lock, flags); in ufx_get_urb()
1911 BUG_ON(list_empty(&dev->urbs.list)); /* reserved one with limit_sem */ in ufx_get_urb()
1912 entry = dev->urbs.list.next; in ufx_get_urb()
1914 dev->urbs.available--; in ufx_get_urb()
1916 spin_unlock_irqrestore(&dev->urbs.lock, flags); in ufx_get_urb()
1929 BUG_ON(len > dev->urbs.size); in ufx_submit_urb()