Lines Matching refs:crd
193 struct usb_cdev_refdata *crd, int need_uref) in usb_ref_device() argument
201 memset(crd, 0, sizeof(*crd)); in usb_ref_device()
234 crd->do_unlock = usbd_enum_lock_sig(cpd->udev); in usb_ref_device()
241 crd->is_uref = 1; in usb_ref_device()
244 if (crd->do_unlock > 1) { in usb_ref_device()
245 crd->do_unlock = 0; in usb_ref_device()
258 crd->txfifo = f; in usb_ref_device()
259 crd->is_write = 1; /* ref */ in usb_ref_device()
266 crd->is_usbfs = 1; in usb_ref_device()
274 crd->rxfifo = f; in usb_ref_device()
275 crd->is_read = 1; /* ref */ in usb_ref_device()
282 crd->is_usbfs = 1; in usb_ref_device()
288 if (crd->is_write) { in usb_ref_device()
290 crd->txfifo->refcount++; in usb_ref_device()
292 if (crd->is_read) { in usb_ref_device()
294 crd->rxfifo->refcount++; in usb_ref_device()
301 if (crd->do_unlock) in usb_ref_device()
304 if (crd->is_uref) { in usb_ref_device()
312 memset(crd, 0, sizeof(*crd)); in usb_ref_device()
329 struct usb_cdev_refdata *crd) in usb_usb_ref_device() argument
334 if (crd->is_uref) in usb_usb_ref_device()
341 usb_unref_device(cpd, crd); in usb_usb_ref_device()
343 return (usb_ref_device(cpd, crd, 1 /* need uref */)); in usb_usb_ref_device()
354 struct usb_cdev_refdata *crd) in usb_unref_device() argument
357 DPRINTFN(2, "cpd=%p is_uref=%d\n", cpd, crd->is_uref); in usb_unref_device()
359 if (crd->do_unlock) in usb_unref_device()
363 if (crd->is_read) { in usb_unref_device()
364 if (--(crd->rxfifo->refcount) == 0) { in usb_unref_device()
365 cv_signal(&crd->rxfifo->cv_drain); in usb_unref_device()
367 crd->is_read = 0; in usb_unref_device()
369 if (crd->is_write) { in usb_unref_device()
370 if (--(crd->txfifo->refcount) == 0) { in usb_unref_device()
371 cv_signal(&crd->txfifo->cv_drain); in usb_unref_device()
373 crd->is_write = 0; in usb_unref_device()
375 if (crd->is_uref) { in usb_unref_device()
376 crd->is_uref = 0; in usb_unref_device()
402 struct usb_cdev_refdata *crd) in usb_fifo_create() argument
426 crd->txfifo = f; in usb_fifo_create()
432 crd->rxfifo = f; in usb_fifo_create()
557 crd->txfifo = udev->fifo[n + USB_FIFO_TX]; in usb_fifo_create()
560 crd->rxfifo = udev->fifo[n + USB_FIFO_RX]; in usb_fifo_create()