[rt2x00-users] [PATCH 7/8] rt2x00: Split watchdog check into a DMA and STATUS timeout
Ivo Van Doorn
ivdoorn at gmail.com
Mon Aug 30 18:23:38 UTC 2010
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.
Ivo
More information about the users
mailing list