Lines Matching refs:udl
32 struct udl_device *udl = to_udl(dev);
75 udl->sku_pixel_limit = max_area;
99 static int udl_select_std_channel(struct udl_device *udl)
112 ret = usb_control_msg(udl->udev,
113 usb_sndctrlpipe(udl->udev, 0),
133 struct udl_device *udl = unode->dev;
146 urb->transfer_buffer_length = udl->urbs.size; /* reset to actual */
148 spin_lock_irqsave(&udl->urbs.lock, flags);
149 list_add_tail(&unode->entry, &udl->urbs.list);
150 udl->urbs.available++;
151 spin_unlock_irqrestore(&udl->urbs.lock, flags);
162 up(&udl->urbs.limit_sem);
167 struct udl_device *udl = to_udl(dev);
168 int count = udl->urbs.count;
177 down(&udl->urbs.limit_sem);
179 spin_lock_irq(&udl->urbs.lock);
181 node = udl->urbs.list.next; /* have reserved one with sem */
184 spin_unlock_irq(&udl->urbs.lock);
190 usb_free_coherent(urb->dev, udl->urbs.size,
195 udl->urbs.count = 0;
200 struct udl_device *udl = to_udl(dev);
206 spin_lock_init(&udl->urbs.lock);
209 udl->urbs.size = size;
210 INIT_LIST_HEAD(&udl->urbs.list);
212 sema_init(&udl->urbs.limit_sem, 0);
213 udl->urbs.count = 0;
214 udl->urbs.available = 0;
216 while (udl->urbs.count * size < wanted_size) {
220 unode->dev = udl;
232 buf = usb_alloc_coherent(udl->udev, size, GFP_KERNEL,
246 usb_fill_bulk_urb(urb, udl->udev, usb_sndbulkpipe(udl->udev, 1),
250 list_add_tail(&unode->entry, &udl->urbs.list);
252 up(&udl->urbs.limit_sem);
253 udl->urbs.count++;
254 udl->urbs.available++;
257 DRM_DEBUG("allocated %d %d byte urbs\n", udl->urbs.count, (int) size);
259 return udl->urbs.count;
264 struct udl_device *udl = to_udl(dev);
271 ret = down_timeout(&udl->urbs.limit_sem, GET_URB_TIMEOUT);
274 ret, udl->urbs.available);
278 spin_lock_irq(&udl->urbs.lock);
280 BUG_ON(list_empty(&udl->urbs.list)); /* reserved one with limit_sem */
281 entry = udl->urbs.list.next;
283 udl->urbs.available--;
285 spin_unlock_irq(&udl->urbs.lock);
296 struct udl_device *udl = to_udl(dev);
299 BUG_ON(len > udl->urbs.size);
310 int udl_init(struct udl_device *udl)
312 struct drm_device *dev = &udl->drm;
317 udl->dmadev = usb_intf_get_dma_device(to_usb_interface(dev->dev));
318 if (!udl->dmadev)
321 mutex_init(&udl->gem_lock);
323 if (!udl_parse_vendor_descriptor(dev, udl->udev)) {
329 if (udl_select_std_channel(udl))
347 if (udl->urbs.count)
349 put_device(udl->dmadev);
356 struct udl_device *udl = to_udl(dev);
359 put_device(udl->dmadev);
360 udl->dmadev = NULL;