Page MenuHomeFreeBSD

Ignoring rtwn(4) debug interrupts
AbandonedPublic

Authored by farhan_farhan.codes on Jun 7 2018, 5:13 PM.

Details

Summary

Ignoring empty R92C_C2H_EVT_DEBUG interrupts rtl8188ee sends debugging interrupts a few times a second, which contain no information.
Linux's rtl8723ae also ignores this signal.

Currently, my unmerged rtl8188ee driver prints endless C2H unhandled reports to the kernel messages, such as this:
rtwn0: r92c_handle_c2h_task: C2H report 0 (len 0) was not handled
rtwn0: r92c_handle_c2h_task: C2H report 0 (len 0) was not handled
rtwn0: r92c_handle_c2h_task: C2H report 0 (len 0) was not handled
.....

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Skipped
Unit
Unit Tests Skipped

Event Timeline

Hi,

does it really need this loop? (AFAIR, you need to check for arrived event in rtwn_pci_intr() - and then classify it and pass to r88e_ratectl_tx_complete()

Hi Andriy,

It appears to me that the classification/identification of C2H interrupts does not take place until r92c_handle_c2h_task().
Are you referring to the for-loop just above this?

Hi,

last time I've seen this code the path for classification was similar to rtwn_pci_intr() -> rtwn_classify() and then (in theory, this does not exist in HEAD yet) should be redirected to r88e_ratectl_tx_completed() when the event arrives

the register is empty for 88e, so you will not see events from it

Hi,
I read what you wrote several times, but I really did not understand you.
Yes, the interrupt lands in rtwn_pci_intr and rtwn_classify. But the classification starts at r92c_handle_c2h_task, specifically from reading the R92C_C2H_EVT_CLEAR register:

status = rtwn_read_1(sc, R92C_C2H_EVT_CLEAR);

If there is something else that would allow you to perform the classification prior to this state? If so, I do not know what it would be.

Not needed anymore; event handling was implemented in rS342677.

This was incorporated into a commit.