Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 27 Dec 2004 12:42:42 +0100
From:      Hans Petter Selasky <hselasky@c2i.net>
To:        freebsd-usb@freebsd.org
Subject:   Re: USB vendore designations..
Message-ID:  <200412271242.43441.hselasky@c2i.net>
In-Reply-To: <41CFB6AE.1080705@elischer.org>
References:  <41CB38A7.5020700@vicor.com> <200412261747.36555.hselasky@c2i.net> <41CFB6AE.1080705@elischer.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Monday 27 December 2004 08:15, Julian Elischer wrote:
> Now, when you do the "doobell trick" as descibed in the spec,
> there is one little part of it.. that is the catch.
>
> The spec says:
> "Software should first deactivate all active qTDs, wait for the
> queue head to go inactive, then remove the queue head from
> the asynchronous list."
>
> Note the word "all"
>
> Ok, so since we want to remove only SOME of the qTDs from the queue
> (those corresponding to the aborting command), and we need to read
> the status word to see which has been completed by whether the
> active bit is set, and since we are in a race with the hardware
> to clear the active bit, which of the qTDs, not in the list of
> qTDs we want to remove, was completed?
>
Maybe the EHCI driver should not reuse the QH's for transfers on the same 
pipe, but instead like I did, have one QH for each transfer, insterted into 
the asynchronous schedule after that the last QH has been removed?

Yours
--HPS



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