q: USB_SET_TIMEOUT in ugen.

Weongyo Jeong weongyo.jeong at gmail.com
Wed Mar 18 04:46:51 PDT 2009


On Wed, Mar 18, 2009 at 08:52:47AM +0100, Hans Petter Selasky wrote:
> Hi,
> 
> On Wednesday 18 March 2009, Weongyo Jeong wrote:
> > Hello,
> >
> > During porting uath(4) to usb2 I found the following code failed to run:
> >
> > 	data = open("/dev/usb/0.2.2", O_WRONLY, 0);
> > 	timeout = UATH_DATA_TIMEOUT;
> > 	if (ioctl(data, USB_SET_TIMEOUT, &timeout) < 0)
> > 		err(-1, "%s: USB_SET_TIMEOUT(%u)", datadev,
> > 		    UATH_DATA_TIMEOUT);
> >
> > and the error was:
> >
> > 	uathload: /dev/usb/0.2.2: USB_SET_TIMEOUT(1000): Invalid
> >         argument
> 
> Use the following macro instead:
> 
> #define USB_SET_TX_TIMEOUT      _IOW ('U', 137, int)
> 
> There also is a match for USB_SET_RX_TIMEOUT .
> 
> USB_SET_TIMEOUT has been removed.
> 
> Also don't forget to include "usb_ioctl.h" .
> 
> Another idea:
> 
> Port the program to libusb ....
> 
> >
> > It looks it's ok with calling ioctl(msg, USB_SET_TIMEOUT, ..) to
> > /dev/usb/0.2.1
> >
> > And the behaviour of program isn't likely with usb1 that it worked well
> > in usb1.  After writing some data into msg and data pipe there was no
> > any response using read(2).  The problem source can be found at:.
> >
> > 	http://perforce.freebsd.org/depotTreeBrowser.cgi?FSPC=//depot/user/weongyo
> >/wireless/src/usr.sbin/uathload&HIDEDEL=NO
> >
> > Are there something I missed in here?
> >
> 
> See hints above.

Thank you for advise. :-)  I've solve `Invalid argument' error.  However
the program looks it still doesn't work.  All functions the problem used
are open(2), ioctl(2), read(2) and write(2).  I think I can try to use
libusb but it'd be better if it works again using the above 4 system
calls.

Is it supported in CURRENT or is it a one of regression?

regards,
Weongyo Jeong



More information about the freebsd-usb mailing list