Lines Matching refs:udl
29 struct udl_device *udl = dev->dev_private; in udl_parse_vendor_descriptor() local
72 udl->sku_pixel_limit = max_area; in udl_parse_vendor_descriptor()
104 struct udl_device *udl = unode->dev; in udl_urb_completion() local
114 atomic_set(&udl->lost_pixels, 1); in udl_urb_completion()
118 urb->transfer_buffer_length = udl->urbs.size; /* reset to actual */ in udl_urb_completion()
120 spin_lock_irqsave(&udl->urbs.lock, flags); in udl_urb_completion()
121 list_add_tail(&unode->entry, &udl->urbs.list); in udl_urb_completion()
122 udl->urbs.available++; in udl_urb_completion()
123 spin_unlock_irqrestore(&udl->urbs.lock, flags); in udl_urb_completion()
134 up(&udl->urbs.limit_sem); in udl_urb_completion()
139 struct udl_device *udl = dev->dev_private; in udl_free_urb_list() local
140 int count = udl->urbs.count; in udl_free_urb_list()
153 ret = down_interruptible(&udl->urbs.limit_sem); in udl_free_urb_list()
157 spin_lock_irqsave(&udl->urbs.lock, flags); in udl_free_urb_list()
159 node = udl->urbs.list.next; /* have reserved one with sem */ in udl_free_urb_list()
162 spin_unlock_irqrestore(&udl->urbs.lock, flags); in udl_free_urb_list()
168 usb_free_coherent(urb->dev, udl->urbs.size, in udl_free_urb_list()
173 udl->urbs.count = 0; in udl_free_urb_list()
178 struct udl_device *udl = dev->dev_private; in udl_alloc_urb_list() local
184 spin_lock_init(&udl->urbs.lock); in udl_alloc_urb_list()
186 udl->urbs.size = size; in udl_alloc_urb_list()
187 INIT_LIST_HEAD(&udl->urbs.list); in udl_alloc_urb_list()
193 unode->dev = udl; in udl_alloc_urb_list()
205 buf = usb_alloc_coherent(udl->udev, MAX_TRANSFER, GFP_KERNEL, in udl_alloc_urb_list()
214 usb_fill_bulk_urb(urb, udl->udev, usb_sndbulkpipe(udl->udev, 1), in udl_alloc_urb_list()
218 list_add_tail(&unode->entry, &udl->urbs.list); in udl_alloc_urb_list()
223 sema_init(&udl->urbs.limit_sem, i); in udl_alloc_urb_list()
224 udl->urbs.count = i; in udl_alloc_urb_list()
225 udl->urbs.available = i; in udl_alloc_urb_list()
234 struct udl_device *udl = dev->dev_private; in udl_get_urb() local
242 ret = down_timeout(&udl->urbs.limit_sem, GET_URB_TIMEOUT); in udl_get_urb()
244 atomic_set(&udl->lost_pixels, 1); in udl_get_urb()
246 ret, udl->urbs.available); in udl_get_urb()
250 spin_lock_irqsave(&udl->urbs.lock, flags); in udl_get_urb()
252 BUG_ON(list_empty(&udl->urbs.list)); /* reserved one with limit_sem */ in udl_get_urb()
253 entry = udl->urbs.list.next; in udl_get_urb()
255 udl->urbs.available--; in udl_get_urb()
257 spin_unlock_irqrestore(&udl->urbs.lock, flags); in udl_get_urb()
268 struct udl_device *udl = dev->dev_private; in udl_submit_urb() local
271 BUG_ON(len > udl->urbs.size); in udl_submit_urb()
277 atomic_set(&udl->lost_pixels, 1); in udl_submit_urb()
286 struct udl_device *udl; in udl_driver_load() local
290 udl = kzalloc(sizeof(struct udl_device), GFP_KERNEL); in udl_driver_load()
291 if (!udl) in udl_driver_load()
294 udl->udev = udev; in udl_driver_load()
295 udl->ddev = dev; in udl_driver_load()
296 dev->dev_private = udl; in udl_driver_load()
298 if (!udl_parse_vendor_descriptor(dev, udl->udev)) { in udl_driver_load()
326 if (udl->urbs.count) in udl_driver_load()
328 kfree(udl); in udl_driver_load()
341 struct udl_device *udl = dev->dev_private; in udl_driver_unload() local
345 if (udl->urbs.count) in udl_driver_unload()
350 kfree(udl); in udl_driver_unload()