Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 9 Jul 2008 22:39:26 +0200
From:      Tino Engel <goaengel@gmx.net>
To:        freebsd-usb@freebsd.org
Subject:   Quirks
Message-ID:  <20080709223926.142cbe5b@gmx.net>

next in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080709223926.142cbe5b>