Page MenuHomeFreeBSD

rk_gpio: improve EOI handling
AbandonedPublic

Authored by mhorne on Jul 14 2026, 3:41 PM.
Tags
None
Referenced Files
Unknown Object (File)
Thu, Aug 13, 12:59 AM
Unknown Object (File)
Thu, Aug 13, 12:27 AM
Unknown Object (File)
Thu, Aug 13, 12:27 AM
Unknown Object (File)
Thu, Aug 13, 12:27 AM
Unknown Object (File)
Tue, Aug 11, 8:54 AM
Unknown Object (File)
Mon, Aug 10, 2:19 PM
Unknown Object (File)
Mon, Aug 10, 7:04 AM
Unknown Object (File)
Sat, Aug 8, 6:12 PM
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.