[rt2x00-users] rt2800pci: interrupt handling and tx status handling

Ivo Van Doorn ivdoorn at gmail.com
Tue Sep 7 13:41:51 UTC 2010


Hi,

> I'd like to prepare a patch for rt2800pci to improve tx status reporting (no
> lost status reports anymore ;) ). At the moment the interrupt handling is as
> follows:

Well as always, I am a bit skeptical about the "no lost status reports
anymore". ;)

> So, I just switched to using a tasklet (just for tx status processing) as
> a tasklet can be scheduled multiple times. So the code would look like the
> following:

tasklets, nice, remember the problems I had with rt2800usb when I
switched them to tasklets?

> rt2800pci_interrupt
>        if tx status interrupt
>                read TX_STA_FIFO and copy to kfifo
>                schedule tx status tasklet
>                return handled
>        else
>                copy isrvalue
>        disable interrupt in device except tx status interrupt
>        return wake_thread
>
> rt2800pci_interrupt_thread
>        process isrvalue
>        enable_interrupts in device
>        return
>
> rt2800pci_tx_status_tasklet
>        process tx status kfifo
>
> At least with that approach I don't lose any status anymore resulting in much
> better rate selection and also no watchdog would be needed anymore ;)
>
> Would the approach described above be fine with you both? I mean we would have
> the interrupt thread for generic processing and the tx status tasklet just
> for tx status processing (and maybe only on rt2800pci, not sure bout rt61pci).

Well if you can manage to get tasklets working, then I would be
interested in having
those back again for rt2800usb again as well. That way rt2x00usb and
rt2x00pci can
have a similar interrupt management. :)

Ivo



More information about the users mailing list