Lines Matching refs:crd
189 struct usb_cdev_refdata *crd, int need_uref) in usb_ref_device() argument
197 memset(crd, 0, sizeof(*crd)); in usb_ref_device()
230 crd->do_unlock = usbd_enum_lock_sig(cpd->udev); in usb_ref_device()
237 crd->is_uref = 1; in usb_ref_device()
240 if (crd->do_unlock > 1) { in usb_ref_device()
241 crd->do_unlock = 0; in usb_ref_device()
254 crd->txfifo = f; in usb_ref_device()
255 crd->is_write = 1; /* ref */ in usb_ref_device()
262 crd->is_usbfs = 1; in usb_ref_device()
270 crd->rxfifo = f; in usb_ref_device()
271 crd->is_read = 1; /* ref */ in usb_ref_device()
278 crd->is_usbfs = 1; in usb_ref_device()
284 if (crd->is_write) { in usb_ref_device()
286 crd->txfifo->refcount++; in usb_ref_device()
288 if (crd->is_read) { in usb_ref_device()
290 crd->rxfifo->refcount++; in usb_ref_device()
297 if (crd->do_unlock) in usb_ref_device()
300 if (crd->is_uref) { in usb_ref_device()
308 memset(crd, 0, sizeof(*crd)); in usb_ref_device()
325 struct usb_cdev_refdata *crd) in usb_usb_ref_device() argument
330 if (crd->is_uref) in usb_usb_ref_device()
337 usb_unref_device(cpd, crd); in usb_usb_ref_device()
339 return (usb_ref_device(cpd, crd, 1 /* need uref */)); in usb_usb_ref_device()
350 struct usb_cdev_refdata *crd) in usb_unref_device() argument
353 DPRINTFN(2, "cpd=%p is_uref=%d\n", cpd, crd->is_uref); in usb_unref_device()
355 if (crd->do_unlock) in usb_unref_device()
359 if (crd->is_read) { in usb_unref_device()
360 if (--(crd->rxfifo->refcount) == 0) { in usb_unref_device()
361 cv_signal(&crd->rxfifo->cv_drain); in usb_unref_device()
363 crd->is_read = 0; in usb_unref_device()
365 if (crd->is_write) { in usb_unref_device()
366 if (--(crd->txfifo->refcount) == 0) { in usb_unref_device()
367 cv_signal(&crd->txfifo->cv_drain); in usb_unref_device()
369 crd->is_write = 0; in usb_unref_device()
371 if (crd->is_uref) { in usb_unref_device()
372 crd->is_uref = 0; in usb_unref_device()
399 struct usb_cdev_refdata *crd) in usb_fifo_create() argument
423 crd->txfifo = f; in usb_fifo_create()
429 crd->rxfifo = f; in usb_fifo_create()
554 crd->txfifo = udev->fifo[n + USB_FIFO_TX]; in usb_fifo_create()
557 crd->rxfifo = udev->fifo[n + USB_FIFO_RX]; in usb_fifo_create()