Quirks

Tino Engel goaengel at gmx.net
Wed Jul 9 21:01:08 UTC 2008


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
- 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

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.

Best regards, Tino Engel


More information about the freebsd-usb mailing list