Lines Matching refs:urbs

81 /* dlfb keeps a list of urbs for efficient bulk transfers */
1793 /* When non-active we'll update virtual framebuffer, but no new urbs */
1796 /* this function will wait for all in-flight urbs to complete */
1839 urb->transfer_buffer_length = dlfb->urbs.size; /* reset to actual */
1841 spin_lock_irqsave(&dlfb->urbs.lock, flags);
1842 list_add_tail(&unode->entry, &dlfb->urbs.list);
1843 dlfb->urbs.available++;
1844 spin_unlock_irqrestore(&dlfb->urbs.lock, flags);
1846 up(&dlfb->urbs.limit_sem);
1851 int count = dlfb->urbs.count;
1858 down(&dlfb->urbs.limit_sem);
1860 spin_lock_irq(&dlfb->urbs.lock);
1862 node = dlfb->urbs.list.next; /* have reserved one with sem */
1865 spin_unlock_irq(&dlfb->urbs.lock);
1871 usb_free_coherent(urb->dev, dlfb->urbs.size,
1877 dlfb->urbs.count = 0;
1887 spin_lock_init(&dlfb->urbs.lock);
1890 dlfb->urbs.size = size;
1891 INIT_LIST_HEAD(&dlfb->urbs.list);
1893 sema_init(&dlfb->urbs.limit_sem, 0);
1894 dlfb->urbs.count = 0;
1895 dlfb->urbs.available = 0;
1897 while (dlfb->urbs.count * size < wanted_size) {
1929 list_add_tail(&unode->entry, &dlfb->urbs.list);
1931 up(&dlfb->urbs.limit_sem);
1932 dlfb->urbs.count++;
1933 dlfb->urbs.available++;
1936 return dlfb->urbs.count;
1946 ret = down_timeout(&dlfb->urbs.limit_sem, GET_URB_TIMEOUT);
1951 ret, dlfb->urbs.available);
1955 spin_lock_irq(&dlfb->urbs.lock);
1957 BUG_ON(list_empty(&dlfb->urbs.list)); /* reserved one with limit_sem */
1958 entry = dlfb->urbs.list.next;
1960 dlfb->urbs.available--;
1962 spin_unlock_irq(&dlfb->urbs.lock);
1972 BUG_ON(len > dlfb->urbs.size);