Lines Matching +full:usb +full:- +full:attach

5 /*-
6 * SPDX-License-Identifier: BSD-2-Clause
8 * Copyright (c) 2003-2009 Maksim Yevmenkin <m_evmenkin@yahoo.com>
57 #include <dev/usb/usb.h>
58 #include <dev/usb/usbdi.h>
59 #include <dev/usb/usb_ioctl.h>
62 #include <dev/usb/usb_debug.h>
63 #include <dev/usb/usb_dev.h>
178 MODULE_DEPEND(ubtbcmfw, usb, 1, 1, 1);
182 * Probe for a USB Bluetooth device
190 if (uaa->usb_mode != USB_MODE_HOST) in ubtbcmfw_probe()
193 if (uaa->info.bIfaceIndex != 0) in ubtbcmfw_probe()
200 * Attach the device
211 sc->sc_udev = uaa->device; in ubtbcmfw_attach()
215 mtx_init(&sc->sc_mtx, "ubtbcmfw lock", NULL, MTX_DEF | MTX_RECURSE); in ubtbcmfw_attach()
218 error = usbd_transfer_setup(uaa->device, &iface_index, sc->sc_xfer, in ubtbcmfw_attach()
220 sc, &sc->sc_mtx); in ubtbcmfw_attach()
222 device_printf(dev, "allocating USB transfers failed. %s\n", in ubtbcmfw_attach()
227 error = usb_fifo_attach(uaa->device, sc, &sc->sc_mtx, in ubtbcmfw_attach()
228 &ubtbcmfw_fifo_methods, &sc->sc_fifo, in ubtbcmfw_attach()
229 device_get_unit(dev), 0 - 1, uaa->info.bIfaceIndex, in ubtbcmfw_attach()
232 device_printf(dev, "could not attach fifo. %s\n", in ubtbcmfw_attach()
254 usb_fifo_detach(&sc->sc_fifo); in ubtbcmfw_detach()
256 usbd_transfer_unsetup(sc->sc_xfer, UBTBCMFW_N_TRANSFER); in ubtbcmfw_detach()
258 mtx_destroy(&sc->sc_mtx); in ubtbcmfw_detach()
264 * USB write callback
271 struct usb_fifo *f = sc->sc_fifo.fp[USB_FIFO_TX]; in ubtbcmfw_write_callback()
298 * USB read callback
305 struct usb_fifo *fifo = sc->sc_fifo.fp[USB_FIFO_RX]; in ubtbcmfw_read_callback()
344 usbd_transfer_start(sc->sc_xfer[UBTBCMFW_INTR_DT_RD]); in ubtbcmfw_start_read()
356 usbd_transfer_stop(sc->sc_xfer[UBTBCMFW_INTR_DT_RD]); in ubtbcmfw_stop_read()
369 usbd_transfer_start(sc->sc_xfer[UBTBCMFW_BULK_DT_WR]); in ubtbcmfw_start_write()
381 usbd_transfer_stop(sc->sc_xfer[UBTBCMFW_BULK_DT_WR]); in ubtbcmfw_stop_write()
400 xfer = sc->sc_xfer[UBTBCMFW_INTR_DT_RD]; in ubtbcmfw_open()
402 xfer = sc->sc_xfer[UBTBCMFW_BULK_DT_WR]; in ubtbcmfw_open()
425 * Process ioctl() on USB device
437 memcpy(data, usbd_get_device_descriptor(sc->sc_udev), in ubtbcmfw_ioctl()