USB synchronous control transfers (for usb-to-serial)
Hans Petter Selasky
hselasky at c2i.net
Mon Aug 30 19:17:36 UTC 2010
On Monday 30 August 2010 14:41:56 Piet Skiet wrote:
> On Mon, Aug 30, 2010 at 10:51 AM, Piet Skiet <tuksgig at gmail.com> wrote:
> > Hi,
> >
> > Can anyone clarify how to go about doing a synchronous usb control
> > transfer, similar to Linux's usb_control_msg? I want to implement the
> > TIOCMGET ioctl on a usb-to-serial converter. The Linux driver uses
> > synchronous control messages to read DCE and CTS serial pin status,
> > and I want to do something similar in FreeBSD. The usbdi(9) manpage
> > talks about control transfers using usbd_transfer_submit, but they're
> > not synchronous. What about using usbd_transfer_drain? Is there an
> > example driver showing setting up and doing control transfers?
> >
> > The ucom driver seems to only implement TIOCSBRK and TIOCCBRK iotcls
> > at the moment.
> >
> > Thanks
>
> Scanning through the ucom code, it seems to me that the
> usbd_do_request_proc has somehting to do with blocking control transfers.
> Am I on the right track here?
Yes, this is correct. You have to re-format the do request information a
little bit compared with Linux. This function is supposed to be called from a
UCOM callback. Please also check recent changes in USB P4:
http://p4web.freebsd.org/@md=d&cd=//depot/projects/usb/src/sys/dev/usb/controller/&cdf=//depot/projects/usb/src/sys/dev/usb/serial/usb_serial.c&c=LJN@//depot/projects/usb/src/sys/dev/usb/serial/usb_serial.c?ac=22
--HPS
More information about the freebsd-usb
mailing list