Lines Matching refs:rio
62 struct rio_usb_data *rio = &rio_instance; in open_rio() local
66 mutex_lock(&(rio->lock)); in open_rio()
68 if (rio->isopen || !rio->present) { in open_rio()
69 mutex_unlock(&(rio->lock)); in open_rio()
73 rio->isopen = 1; in open_rio()
75 init_waitqueue_head(&rio->wait_q); in open_rio()
77 mutex_unlock(&(rio->lock)); in open_rio()
79 dev_info(&rio->rio_dev->dev, "Rio opened.\n"); in open_rio()
87 struct rio_usb_data *rio = &rio_instance; in close_rio() local
89 rio->isopen = 0; in close_rio()
91 dev_info(&rio->rio_dev->dev, "Rio closed.\n"); in close_rio()
98 struct rio_usb_data *rio = &rio_instance; in ioctl_rio() local
105 mutex_lock(&(rio->lock)); in ioctl_rio()
107 if (rio->present == 0 || rio->rio_dev == NULL) { in ioctl_rio()
138 dev_dbg(&rio->rio_dev->dev, in ioctl_rio()
145 result = usb_control_msg(rio->rio_dev, in ioctl_rio()
146 usb_rcvctrlpipe(rio-> rio_dev, 0), in ioctl_rio()
156 dev_err(&rio->rio_dev->dev, in ioctl_rio()
161 dev_dbg(&rio->rio_dev->dev, in ioctl_rio()
209 dev_dbg(&rio->rio_dev->dev, in ioctl_rio()
216 result = usb_control_msg(rio->rio_dev, in ioctl_rio()
217 usb_sndctrlpipe(rio-> rio_dev, 0), in ioctl_rio()
227 dev_err(&rio->rio_dev->dev, in ioctl_rio()
232 dev_dbg(&rio->rio_dev->dev, in ioctl_rio()
249 mutex_unlock(&(rio->lock)); in ioctl_rio()
258 struct rio_usb_data *rio = &rio_instance; in write_rio() local
269 intr = mutex_lock_interruptible(&(rio->lock)); in write_rio()
273 if (rio->present == 0 || rio->rio_dev == NULL) { in write_rio()
274 mutex_unlock(&(rio->lock)); in write_rio()
282 char *obuf = rio->obuf; in write_rio()
286 if (copy_from_user(rio->obuf, buffer, copy_size)) { in write_rio()
292 if (!rio->rio_dev) { in write_rio()
297 mutex_unlock(&(rio->lock)); in write_rio()
301 result = usb_bulk_msg(rio->rio_dev, in write_rio()
302 usb_sndbulkpipe(rio->rio_dev, 2), in write_rio()
305 dev_dbg(&rio->rio_dev->dev, in write_rio()
314 prepare_to_wait(&rio->wait_q, &wait, TASK_INTERRUPTIBLE); in write_rio()
316 finish_wait(&rio->wait_q, &wait); in write_rio()
325 dev_err(&rio->rio_dev->dev, "Write Whoops - %x\n", in write_rio()
335 mutex_unlock(&(rio->lock)); in write_rio()
340 mutex_unlock(&(rio->lock)); in write_rio()
348 struct rio_usb_data *rio = &rio_instance; in read_rio() local
357 intr = mutex_lock_interruptible(&(rio->lock)); in read_rio()
361 if (rio->present == 0 || rio->rio_dev == NULL) { in read_rio()
362 mutex_unlock(&(rio->lock)); in read_rio()
366 ibuf = rio->ibuf; in read_rio()
373 mutex_unlock(&(rio->lock)); in read_rio()
376 if (!rio->rio_dev) { in read_rio()
377 mutex_unlock(&(rio->lock)); in read_rio()
382 result = usb_bulk_msg(rio->rio_dev, in read_rio()
383 usb_rcvbulkpipe(rio->rio_dev, 1), in read_rio()
387 dev_dbg(&rio->rio_dev->dev, in read_rio()
395 mutex_unlock(&(rio->lock)); in read_rio()
396 dev_err(&rio->rio_dev->dev, in read_rio()
400 prepare_to_wait(&rio->wait_q, &wait, TASK_INTERRUPTIBLE); in read_rio()
402 finish_wait(&rio->wait_q, &wait); in read_rio()
405 mutex_unlock(&(rio->lock)); in read_rio()
406 dev_err(&rio->rio_dev->dev, in read_rio()
411 mutex_unlock(&(rio->lock)); in read_rio()
417 mutex_unlock(&(rio->lock)); in read_rio()
425 mutex_unlock(&(rio->lock)); in read_rio()
449 struct rio_usb_data *rio = &rio_instance; in probe_rio() local
461 rio->rio_dev = dev; in probe_rio()
463 if (!(rio->obuf = kmalloc(OBUF_SIZE, GFP_KERNEL))) { in probe_rio()
469 dev_dbg(&intf->dev, "obuf address:%p\n", rio->obuf); in probe_rio()
471 if (!(rio->ibuf = kmalloc(IBUF_SIZE, GFP_KERNEL))) { in probe_rio()
475 kfree(rio->obuf); in probe_rio()
478 dev_dbg(&intf->dev, "ibuf address:%p\n", rio->ibuf); in probe_rio()
480 mutex_init(&(rio->lock)); in probe_rio()
482 usb_set_intfdata (intf, rio); in probe_rio()
483 rio->present = 1; in probe_rio()
490 struct rio_usb_data *rio = usb_get_intfdata (intf); in disconnect_rio() local
494 if (rio) { in disconnect_rio()
497 mutex_lock(&(rio->lock)); in disconnect_rio()
498 if (rio->isopen) { in disconnect_rio()
499 rio->isopen = 0; in disconnect_rio()
501 rio->rio_dev = NULL; in disconnect_rio()
502 mutex_unlock(&(rio->lock)); in disconnect_rio()
506 kfree(rio->ibuf); in disconnect_rio()
507 kfree(rio->obuf); in disconnect_rio()
511 rio->present = 0; in disconnect_rio()
512 mutex_unlock(&(rio->lock)); in disconnect_rio()