Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 11 Jul 2009 17:10:16 +0200
From:      Hans Petter Selasky <hselasky@c2i.net>
To:        freebsd-current@freebsd.org
Cc:        usb@freebsd.org, Andrew Thompson <thompsa@freebsd.org>
Subject:   Re: USB polling
Message-ID:  <200907111710.18843.hselasky@c2i.net>
In-Reply-To: <1280352d0907101020q69f494cdndb01ff14ecf7ea8c@mail.gmail.com>
References:  <1280352d0907101020q69f494cdndb01ff14ecf7ea8c@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Friday 10 July 2009 19:20:01 Andrew Thompson wrote:
> Hi,
>
> The one usb task that is still an issue for 8.0 is the polling
> support. The code needs to call into the host controller driver to
> check if the usb descriptor has been marked as done and call the
> completion callback. I am now traveling so cant look at it, if anyone
> wants to have a look it would be fantastic. This is needed for places
> where a usb keyboard is used and interrupts are disabled (root mount,
> DDB).

Hi,

Probably we can implement USB polling with minimal transfer support. That 
basically means:

- no timeouts
- no automatic clear-stall

Only support for ukbd and umass.

Shouldn't be too hard.

What is more hard, is that the sys/dev/usb/input/ukbd.c driver has to get away 
from using the Giant lock. Last time I looked at that it was impossible 
because the whole keyboard layer was under Giant. Has anything changed here? 
If not the USB keyboard will only work if kdb_enter() is called when Giant is 
locked!

--HPS




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