Lines Matching refs:dev

78 	struct usb_yurex *dev = urb->context;
82 dev_err(&urb->dev->dev, "%s - control failed: %d\n",
84 wake_up_interruptible(&dev->waitq);
92 struct usb_yurex *dev = to_yurex_dev(kref);
94 dev_dbg(&dev->interface->dev, "%s\n", __func__);
96 if (dev->cntl_urb) {
97 usb_kill_urb(dev->cntl_urb);
98 kfree(dev->cntl_req);
99 usb_free_coherent(dev->udev, YUREX_BUF_SIZE,
100 dev->cntl_buffer, dev->cntl_urb->transfer_dma);
101 usb_free_urb(dev->cntl_urb);
103 if (dev->urb) {
104 usb_kill_urb(dev->urb);
105 usb_free_coherent(dev->udev, YUREX_BUF_SIZE,
106 dev->int_buffer, dev->urb->transfer_dma);
107 usb_free_urb(dev->urb);
109 usb_put_intf(dev->interface);
110 usb_put_dev(dev->udev);
111 kfree(dev);
126 struct usb_yurex *dev = urb->context;
127 unsigned char *buf = dev->int_buffer;
137 dev_err(&dev->interface->dev,
139 __func__, YUREX_BUF_SIZE, dev->urb->actual_length);
148 dev_err(&dev->interface->dev,
158 spin_lock_irqsave(&dev->lock, flags);
159 dev->bbu = 0;
161 dev->bbu += buf[i];
163 dev->bbu <<= 8;
165 dev_dbg(&dev->interface->dev, "%s count: %lld\n",
166 __func__, dev->bbu);
167 spin_unlock_irqrestore(&dev->lock, flags);
169 kill_fasync(&dev->async_queue, SIGIO, POLL_IN);
172 dev_dbg(&dev->interface->dev,
176 dev_dbg(&dev->interface->dev, "%s ack: %c\n",
178 wake_up_interruptible(&dev->waitq);
182 retval = usb_submit_urb(dev->urb, GFP_ATOMIC);
184 dev_err(&dev->interface->dev, "%s - usb_submit_urb failed: %d\n",
191 struct usb_yurex *dev;
199 dev = kzalloc(sizeof(*dev), GFP_KERNEL);
200 if (!dev)
202 kref_init(&dev->kref);
203 mutex_init(&dev->io_mutex);
204 spin_lock_init(&dev->lock);
205 init_waitqueue_head(&dev->waitq);
207 dev->udev = usb_get_dev(interface_to_usbdev(interface));
208 dev->interface = usb_get_intf(interface);
214 dev_err(&interface->dev, "Could not find endpoints\n");
219 dev->int_in_endpointAddr = endpoint->bEndpointAddress;
222 dev->cntl_urb = usb_alloc_urb(0, GFP_KERNEL);
223 if (!dev->cntl_urb)
227 dev->cntl_req = kmalloc(YUREX_BUF_SIZE, GFP_KERNEL);
228 if (!dev->cntl_req)
232 dev->cntl_buffer = usb_alloc_coherent(dev->udev, YUREX_BUF_SIZE,
234 &dev->cntl_urb->transfer_dma);
235 if (!dev->cntl_buffer) {
236 dev_err(&interface->dev, "Could not allocate cntl_buffer\n");
241 dev->cntl_req->bRequestType = USB_DIR_OUT | USB_TYPE_CLASS |
243 dev->cntl_req->bRequest = HID_REQ_SET_REPORT;
244 dev->cntl_req->wValue = cpu_to_le16((HID_OUTPUT_REPORT + 1) << 8);
245 dev->cntl_req->wIndex = cpu_to_le16(iface_desc->desc.bInterfaceNumber);
246 dev->cntl_req->wLength = cpu_to_le16(YUREX_BUF_SIZE);
248 usb_fill_control_urb(dev->cntl_urb, dev->udev,
249 usb_sndctrlpipe(dev->udev, 0),
250 (void *)dev->cntl_req, dev->cntl_buffer,
251 YUREX_BUF_SIZE, yurex_control_callback, dev);
252 dev->cntl_urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
256 dev->urb = usb_alloc_urb(0, GFP_KERNEL);
257 if (!dev->urb)
261 dev->int_buffer = usb_alloc_coherent(dev->udev, YUREX_BUF_SIZE,
262 GFP_KERNEL, &dev->urb->transfer_dma);
263 if (!dev->int_buffer) {
264 dev_err(&interface->dev, "Could not allocate int_buffer\n");
269 usb_fill_int_urb(dev->urb, dev->udev,
270 usb_rcvintpipe(dev->udev, dev->int_in_endpointAddr),
271 dev->int_buffer, YUREX_BUF_SIZE, yurex_interrupt,
272 dev, 1);
273 dev->urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
274 if (usb_submit_urb(dev->urb, GFP_KERNEL)) {
276 dev_err(&interface->dev, "Could not submitting URB\n");
281 usb_set_intfdata(interface, dev);
282 dev->bbu = -1;
287 dev_err(&interface->dev,
293 dev_info(&interface->dev,
300 if (dev)
302 kref_put(&dev->kref, yurex_delete);
308 struct usb_yurex *dev;
311 dev = usb_get_intfdata(interface);
318 usb_poison_urb(dev->urb);
319 usb_poison_urb(dev->cntl_urb);
320 mutex_lock(&dev->io_mutex);
321 dev->disconnected = 1;
322 mutex_unlock(&dev->io_mutex);
325 kill_fasync(&dev->async_queue, SIGIO, POLL_IN);
326 wake_up_interruptible(&dev->waitq);
329 kref_put(&dev->kref, yurex_delete);
331 dev_info(&interface->dev, "USB YUREX #%d now disconnected\n", minor);
344 struct usb_yurex *dev;
346 dev = file->private_data;
347 return fasync_helper(fd, file, on, &dev->async_queue);
352 struct usb_yurex *dev;
367 dev = usb_get_intfdata(interface);
368 if (!dev) {
374 kref_get(&dev->kref);
377 mutex_lock(&dev->io_mutex);
378 file->private_data = dev;
379 mutex_unlock(&dev->io_mutex);
387 struct usb_yurex *dev;
389 dev = file->private_data;
390 if (dev == NULL)
394 kref_put(&dev->kref, yurex_delete);
401 struct usb_yurex *dev;
406 dev = file->private_data;
408 mutex_lock(&dev->io_mutex);
409 if (dev->disconnected) { /* already disconnected */
410 mutex_unlock(&dev->io_mutex);
414 spin_lock_irqsave(&dev->lock, flags);
415 len = snprintf(in_buffer, 20, "%lld\n", dev->bbu);
416 spin_unlock_irqrestore(&dev->lock, flags);
417 mutex_unlock(&dev->io_mutex);
428 struct usb_yurex *dev;
437 dev = file->private_data;
443 mutex_lock(&dev->io_mutex);
444 if (dev->disconnected) { /* already disconnected */
445 mutex_unlock(&dev->io_mutex);
451 mutex_unlock(&dev->io_mutex);
456 memset(dev->cntl_buffer, CMD_PADDING, YUREX_BUF_SIZE);
461 dev->cntl_buffer[0] = buffer[0];
462 dev->cntl_buffer[1] = buffer[1];
463 dev->cntl_buffer[2] = CMD_EOF;
467 dev->cntl_buffer[0] = buffer[0];
468 dev->cntl_buffer[1] = 0x00;
469 dev->cntl_buffer[2] = CMD_EOF;
477 dev->cntl_buffer[0] = CMD_SET;
479 dev->cntl_buffer[i] = (c>>32) & 0xff;
485 mutex_unlock(&dev->io_mutex);
490 prepare_to_wait(&dev->waitq, &wait, TASK_INTERRUPTIBLE);
491 dev_dbg(&dev->interface->dev, "%s - submit %c\n", __func__,
492 dev->cntl_buffer[0]);
493 retval = usb_submit_urb(dev->cntl_urb, GFP_ATOMIC);
496 finish_wait(&dev->waitq, &wait);
499 usb_kill_urb(dev->cntl_urb);
501 mutex_unlock(&dev->io_mutex);
504 dev_err(&dev->interface->dev,
510 dev->bbu = c2;