[rt2x00-users] [PATCH 7/8] rt2x00: Split watchdog check into a DMA and STATUS timeout
Gertjan van Wingerde
gwingerde at gmail.com
Mon Aug 30 18:51:33 UTC 2010
On 08/30/10 20:23, Ivo Van Doorn wrote:
> On Mon, Aug 30, 2010 at 8:18 PM, Gertjan van Wingerde
> <gwingerde at gmail.com> wrote:
>> On 08/30/10 19:24, Ivo van Doorn wrote:
>>> The watchdog for rt2800usb triggers frequently causing all URB's
>>> to be canceled often enough to interrupt the normal TX flow.
>>> More research indicated that not the URB upload to the USB host
>>> were hanging, but instead the TX status reports.
>>> To correctly detect what is going on, we introduce Q_INDEX_DMA_DONE
>>> which is an index counter between Q_INDEX_DONE and Q_INDEX and indicates
>>> if the frame has been transfered to the device.
>>> This also requires the rt2x00queue timeout functions to be updated
>>> to differentiate between a DMA timeout (time between Q_INDEX and
>>> Q_INDEX_DMA_DONE timeout) and a STATUS timeout (time between
>>> Q_INDEX_DMA_DONE and Q_INDEX_DONE timeout)
>>> All Q_INDEX_DMA_DONE code was taken from the RFC from
>>> Helmut Schaa <helmut.schaa at googlemail.com> for the implementation
>>> for watchdog for rt2800pci.
>>> Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
>> Shouldn't we at least let rt2800pci use this new field as well?
>> It has explicitly this state via an interrupt, so it would make sense to at least
>> have rt2800pci maintain this field, even if it doesn't use it yet.
> True, but I wanted to keep that part for Helmuth who is working on the rt2800pci
> drivers, I understood that he was respinning his patches after my
> previous changes,
> so I didn't want to cause too many code conflicts. So it seemed best
> to just implement
> it for USB for now, and we can later on see which PCI drivers can also use it.
OK. Fair enough.
Acked-by: Gertjan van Wingerde <gwingerde at gmail.com>
More information about the users