Is the freebsd usb generic device driver complete?
Hans Petter Selasky
hselasky at c2i.net
Sat Apr 30 06:04:00 PDT 2005
On Saturday 30 April 2005 09:00, paradox wrote:
> sorry, i wrote the last mail in linux,can't check the
> source codes,so i made some mistakes.
> The ival is set to USBD_DEFAULT_INTERVAL, whose value
> should be -1, In uhci_open function, it will be convert
> to pipe->endpoint>edesc->binterval automatically.
> My machine are uhci interface, with the usb key
> linked to the usb bus directly.In linux , the driver
> first set the address to 00 02, then get descriptors,
> at last,it set the configuration to 0x 00 01, then
> send 5 bytes to the usb ckey and got a ACK response.
> In freebsd, it first set the address to 00 02 also,
> but it insert a GET_STATUS packet in thosr
> GET_DESCRIPTOR packet and got 0x 00 00 resopnse.It
> also set the configuration to 0x 00 01(two times, one
> is when I load usb.ko,another time is when I load
> ugen.ko.when I open the nodes. it send CLEAR_FEATURE
> packet twice, then send a OUT packet just like in the
> linux environment, but got a NAK response.
It might be the CLEAR_FEATURE or clear stall packet that does it. Some devices
will only work if clear stall is issued as a part of a reset sequence. This
has been discussed before on this list.
In the file "/sys/dev/usb/usb_subr.c" in the function "usbd_setup_pipe" could
err = usbd_clear_endpoint_stall(p);
err = 0; /* usbd_clear_endpoint_stall(p); */
Then recompile the USB module:
"make -C/sys/modules/usb depend all install clean"
Reboot and see if there is any change.
More information about the freebsd-usb