Page MenuHomeFreeBSD

rk_gpio: improve EOI handling
AbandonedPublic

Authored by mhorne on Tue, Jul 14, 3:41 PM.
Tags
None
Referenced Files
Unknown Object (File)
Thu, Jul 23, 9:25 PM
Unknown Object (File)
Wed, Jul 22, 5:51 PM
Unknown Object (File)
Wed, Jul 22, 9:52 AM
Unknown Object (File)
Tue, Jul 21, 12:00 AM
Unknown Object (File)
Mon, Jul 20, 10:41 PM
Unknown Object (File)
Mon, Jul 20, 5:30 PM
Unknown Object (File)
Mon, Jul 20, 1:54 PM
Unknown Object (File)
Sun, Jul 19, 6:23 AM
Subscribers

Details

Reviewers
mmel
manu
andrew
Summary

Defer End-Of-Interrupt signaling for level-triggered interrupts to the
pic_post_filter / pic_pre_ithread methods.

This is a reapplication of 8ffb400bfd64, with changes:

  • Follow correct EOI handling scheme as reported by mmel@
  • Simplified commentary

Co-authored-by: mhorne
Fixes: ccda002ca10f ("rk_gpio: implement PIC masking methods and mask unhandled IRQs")

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 74798
Build 71681: arc lint + arc unit

Event Timeline

So, this applies the EOI handling scheme preferred by many drivers, and endorsed by mmel@.

FYI, a survey of GPIO PIC drivers reveals a few that defer ACK/EOI until pic_post_ithread(), at least: imx_gpio, pl061, aw_gpio, qoriq_gpio. I am not sure if it is a good idea to "fix" these, but I don't plan to touch them.

Per the replies in https://github.com/freebsd/freebsd-src/pull/2245, this ends up having no functional impact. Closing.