snd_uaudio with libusb ?

M. Warner Losh imp at bsdimp.com
Sat Sep 29 02:27:18 PDT 2007


In message: <a276da400709290213v6d747d3bh4f3e4de212d5b602 at mail.gmail.com>
            "Xiaofan Chen" <xiaofanc at gmail.com> writes:
: On 9/29/07, Chuck T. <freebsdfan at hotmail.com> wrote:
: >
: > >I think your device is a USB composite USB device with two
: > >interfaces (one for USB audio and the other for GPIO). How
: > >do you control the GPIO under Linux (by control transfer
: > >or interrupt/bulk transfer)? If the Linux application indeed
: > >works at the same time as the USB audio, then Linux
: > >does bind different driver to different interfaces (one for
: > >the usb audio interface and no driver for the GPIO interface).
: >
: > I talk to the GPIO bits via vendor specific requests to the control pipe.
: > I do a usb_open() when my application loads and never close it.  When I need
: > to set a GPIO bit I use usb_control_msg().  I've never "looked under the
: > covers" to see why it works, but it does.
: >
: 
: So this works under Linux but not FreeBSD. Maybe this is just a limitation
: of libusb under FreeBSD. Anyway, it is said that libusb is just a thin
: wrapper on top of USB. You may want to use the lower level api instead.
: 
: I confess I do not know further (like how to bind ugen to individual interfaces
: and use IOCTL to perform usb transfer). But if post some codes,
: others may be able to help you.

You can only do a subset of the ugen operations with /dev/usb, but
maybe it would be enough.  I believe that the control messages are on
the list of things that you can do, however...

Warner


More information about the freebsd-usb mailing list