Quirks

Hans Petter Selasky hselasky at c2i.net
Wed Jul 9 21:42:37 UTC 2008


Hi Tino,

On Wednesday 09 July 2008, Tino Engel wrote:
> Dear all,
>
> I had the chance to write my first Quirk-PR and therefore took some
> time looking at the FreeBSD usb system.
> I am thinking that the solution there is is not the ideal
> one. Through mailing list discussions I read, I also have the
> impression, that the usb part of the cam subsystem is kind of a problem
> child.
> I read through parts of the usb code and am kind of understanding it.
> So I am trying to make an attempt to help improving it. That means,
> that I would like to discuss some ideas and in case this is wanted,
> volunteer to do some coding.
>
> What I was thinking so far is:
>
> Since Windows and Linux can handle most of the the devices FreeBSD needs
> a quirk for out of the box, and at least in the case of linux, I believe
> they do not hold all quirks in a db, there must be a way of doing it.
>
> My idea so far is to do something like this:
> - When a usb device is connected, try to use it without quirks.
> - If it stalls, cache device id data
> - Then emulate a disconnect/connect

Yes, this is possible. But unfortunately some devices are very crappy and even 
if you do a USB BUS reset, they will malfunction after the invalid command, 
simply because the USB software on the dongle has crashed :-) Or the endpoint 
state is not correct.

> - Then try all permutations of possible quirks (most common to less
> common?) for the device
> - As soon as one permutation causes device not to stall -> done

I assume that you are thinking about Mass Storage devices. You might be 
interested in looking at:

http://www.selasky.org/hans_petter/isdn4bsd/sources/src/sys/dev/usb2/core/usb2_msctest.c

>
> Anyhow my knowledge concerning the topic is not too in-deep, but I would
> be happy to gather some feedback concerning my idea and maybe about
> other approaches in this area.

How much time are you willing to spend on this ?

--HPS


More information about the freebsd-usb mailing list