Lines Matching refs:crd
192 struct usb_cdev_refdata *crd, int need_uref) in usb_ref_device() argument
200 memset(crd, 0, sizeof(*crd)); in usb_ref_device()
233 crd->do_unlock = usbd_enum_lock_sig(cpd->udev); in usb_ref_device()
240 crd->is_uref = 1; in usb_ref_device()
243 if (crd->do_unlock > 1) { in usb_ref_device()
244 crd->do_unlock = 0; in usb_ref_device()
257 crd->txfifo = f; in usb_ref_device()
258 crd->is_write = 1; /* ref */ in usb_ref_device()
265 crd->is_usbfs = 1; in usb_ref_device()
273 crd->rxfifo = f; in usb_ref_device()
274 crd->is_read = 1; /* ref */ in usb_ref_device()
281 crd->is_usbfs = 1; in usb_ref_device()
287 if (crd->is_write) { in usb_ref_device()
289 crd->txfifo->refcount++; in usb_ref_device()
291 if (crd->is_read) { in usb_ref_device()
293 crd->rxfifo->refcount++; in usb_ref_device()
300 if (crd->do_unlock) in usb_ref_device()
303 if (crd->is_uref) { in usb_ref_device()
311 memset(crd, 0, sizeof(*crd)); in usb_ref_device()
328 struct usb_cdev_refdata *crd) in usb_usb_ref_device() argument
333 if (crd->is_uref) in usb_usb_ref_device()
340 usb_unref_device(cpd, crd); in usb_usb_ref_device()
342 return (usb_ref_device(cpd, crd, 1 /* need uref */)); in usb_usb_ref_device()
353 struct usb_cdev_refdata *crd) in usb_unref_device() argument
356 DPRINTFN(2, "cpd=%p is_uref=%d\n", cpd, crd->is_uref); in usb_unref_device()
358 if (crd->do_unlock) in usb_unref_device()
362 if (crd->is_read) { in usb_unref_device()
363 if (--(crd->rxfifo->refcount) == 0) { in usb_unref_device()
364 cv_signal(&crd->rxfifo->cv_drain); in usb_unref_device()
366 crd->is_read = 0; in usb_unref_device()
368 if (crd->is_write) { in usb_unref_device()
369 if (--(crd->txfifo->refcount) == 0) { in usb_unref_device()
370 cv_signal(&crd->txfifo->cv_drain); in usb_unref_device()
372 crd->is_write = 0; in usb_unref_device()
374 if (crd->is_uref) { in usb_unref_device()
375 crd->is_uref = 0; in usb_unref_device()
403 struct usb_cdev_refdata *crd) in usb_fifo_create() argument
427 crd->txfifo = f; in usb_fifo_create()
433 crd->rxfifo = f; in usb_fifo_create()
560 crd->txfifo = udev->fifo[n + USB_FIFO_TX]; in usb_fifo_create()
563 crd->rxfifo = udev->fifo[n + USB_FIFO_RX]; in usb_fifo_create()