Page MenuHomeFreeBSD

rk_gpio: improve EOI handling
AbandonedPublic

Authored by mhorne on Tue, Jul 14, 3:41 PM.
Tags
None
Referenced Files
F162884554: D58227.id181979.diff
Sat, Jul 18, 12:04 AM
F162881227: D58227.diff
Fri, Jul 17, 11:13 PM
Unknown Object (File)
Tue, Jul 14, 8:36 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.