Lines Matching refs:dev

69 	struct usb_lcd *dev = to_lcd_dev(kref);  in lcd_delete()  local
71 usb_put_dev(dev->udev); in lcd_delete()
72 kfree(dev->bulk_in_buffer); in lcd_delete()
73 kfree(dev); in lcd_delete()
79 struct usb_lcd *dev; in lcd_open() local
92 dev = usb_get_intfdata(interface); in lcd_open()
95 kref_get(&dev->kref); in lcd_open()
100 kref_put(&dev->kref, lcd_delete); in lcd_open()
105 file->private_data = dev; in lcd_open()
112 struct usb_lcd *dev; in lcd_release() local
114 dev = file->private_data; in lcd_release()
115 if (dev == NULL) in lcd_release()
119 usb_autopm_put_interface(dev->interface); in lcd_release()
120 kref_put(&dev->kref, lcd_delete); in lcd_release()
127 struct usb_lcd *dev; in lcd_read() local
131 dev = file->private_data; in lcd_read()
133 down_read(&dev->io_rwsem); in lcd_read()
135 if (dev->disconnected) { in lcd_read()
141 retval = usb_bulk_msg(dev->udev, in lcd_read()
142 usb_rcvbulkpipe(dev->udev, in lcd_read()
143 dev->bulk_in_endpointAddr), in lcd_read()
144 dev->bulk_in_buffer, in lcd_read()
145 min(dev->bulk_in_size, count), in lcd_read()
150 if (copy_to_user(buffer, dev->bulk_in_buffer, bytes_read)) in lcd_read()
157 up_read(&dev->io_rwsem); in lcd_read()
164 struct usb_lcd *dev; in lcd_ioctl() local
168 dev = file->private_data; in lcd_ioctl()
169 if (dev == NULL) in lcd_ioctl()
174 bcdDevice = le16_to_cpu((dev->udev)->descriptor.bcdDevice); in lcd_ioctl()
197 struct usb_lcd *dev; in lcd_write_bulk_callback() local
200 dev = urb->context; in lcd_write_bulk_callback()
207 dev_dbg(&dev->interface->dev, in lcd_write_bulk_callback()
212 usb_free_coherent(urb->dev, urb->transfer_buffer_length, in lcd_write_bulk_callback()
214 up(&dev->limit_sem); in lcd_write_bulk_callback()
220 struct usb_lcd *dev; in lcd_write() local
225 dev = file->private_data; in lcd_write()
231 r = down_interruptible(&dev->limit_sem); in lcd_write()
235 down_read(&dev->io_rwsem); in lcd_write()
237 if (dev->disconnected) { in lcd_write()
249 buf = usb_alloc_coherent(dev->udev, count, GFP_KERNEL, in lcd_write()
262 usb_fill_bulk_urb(urb, dev->udev, in lcd_write()
263 usb_sndbulkpipe(dev->udev, in lcd_write()
264 dev->bulk_out_endpointAddr), in lcd_write()
265 buf, count, lcd_write_bulk_callback, dev); in lcd_write()
268 usb_anchor_urb(urb, &dev->submitted); in lcd_write()
273 dev_err(&dev->udev->dev, in lcd_write()
283 up_read(&dev->io_rwsem); in lcd_write()
289 usb_free_coherent(dev->udev, count, buf, urb->transfer_dma); in lcd_write()
292 up_read(&dev->io_rwsem); in lcd_write()
293 up(&dev->limit_sem); in lcd_write()
320 struct usb_lcd *dev = NULL; in lcd_probe() local
326 dev = kzalloc(sizeof(*dev), GFP_KERNEL); in lcd_probe()
327 if (!dev) in lcd_probe()
330 kref_init(&dev->kref); in lcd_probe()
331 sema_init(&dev->limit_sem, USB_LCD_CONCURRENT_WRITES); in lcd_probe()
332 init_rwsem(&dev->io_rwsem); in lcd_probe()
333 init_usb_anchor(&dev->submitted); in lcd_probe()
335 dev->udev = usb_get_dev(interface_to_usbdev(interface)); in lcd_probe()
336 dev->interface = interface; in lcd_probe()
338 if (le16_to_cpu(dev->udev->descriptor.idProduct) != 0x0001) { in lcd_probe()
339 dev_warn(&interface->dev, "USBLCD model not supported.\n"); in lcd_probe()
349 dev_err(&interface->dev, in lcd_probe()
354 dev->bulk_in_size = usb_endpoint_maxp(bulk_in); in lcd_probe()
355 dev->bulk_in_endpointAddr = bulk_in->bEndpointAddress; in lcd_probe()
356 dev->bulk_in_buffer = kmalloc(dev->bulk_in_size, GFP_KERNEL); in lcd_probe()
357 if (!dev->bulk_in_buffer) { in lcd_probe()
362 dev->bulk_out_endpointAddr = bulk_out->bEndpointAddress; in lcd_probe()
365 usb_set_intfdata(interface, dev); in lcd_probe()
371 dev_err(&interface->dev, in lcd_probe()
376 i = le16_to_cpu(dev->udev->descriptor.bcdDevice); in lcd_probe()
378 dev_info(&interface->dev, "USBLCD Version %1d%1d.%1d%1d found " in lcd_probe()
380 (i & 0xF0)>>4, (i & 0xF), dev->udev->devnum); in lcd_probe()
383 dev_info(&interface->dev, "USB LCD device now attached to USBLCD-%d\n", in lcd_probe()
388 kref_put(&dev->kref, lcd_delete); in lcd_probe()
392 static void lcd_draw_down(struct usb_lcd *dev) in lcd_draw_down() argument
396 time = usb_wait_anchor_empty_timeout(&dev->submitted, 1000); in lcd_draw_down()
398 usb_kill_anchored_urbs(&dev->submitted); in lcd_draw_down()
403 struct usb_lcd *dev = usb_get_intfdata(intf); in lcd_suspend() local
405 if (!dev) in lcd_suspend()
407 lcd_draw_down(dev); in lcd_suspend()
418 struct usb_lcd *dev = usb_get_intfdata(interface); in lcd_disconnect() local
424 down_write(&dev->io_rwsem); in lcd_disconnect()
425 dev->disconnected = 1; in lcd_disconnect()
426 up_write(&dev->io_rwsem); in lcd_disconnect()
428 usb_kill_anchored_urbs(&dev->submitted); in lcd_disconnect()
431 kref_put(&dev->kref, lcd_delete); in lcd_disconnect()
433 dev_info(&interface->dev, "USB LCD #%d now disconnected\n", minor); in lcd_disconnect()