summaryrefslogtreecommitdiffstats
path: root/sys/dev/fdt/imxgpio.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Re-work intr_barrier(9) on arm64 to remove layer violation. So far wepatrick2020-07-171-1/+15
| | | | | | | | | | | have stored the struct cpu_info * in the wrapper around the interrupt handler cookie, but since we can have a few layers inbetween, this does not seem very nice. Instead have each and every interrupt controller provide a barrier function. This means that intr_barrier(9) will in the end be executed by the interrupt controller that actually wired the pin to a core. And that's the only place where the information is stored. ok kettenis@
* Extend the interrupt API on arm64 and armv7 to be able to pass aroundpatrick2020-07-141-4/+7
| | | | | | | | | | | | | | | | | | | | | | | | a struct cpu_info *. From a driver point of view the fdt_intr_establish_* API now also exist same functions with a *_cpu suffix. Internally the "old" functions now call their *_cpu counterparts, passing NULL as ci. NULL will be interpreted as primary CPU in the interrupt controller code. The internal framework for interrupt controllers has been changed so that the establish methods provided by an interrupt controller function always takes a struct cpu_info *. Some drivers, like imxgpio(4) and rkgpio(4), only have a single interrupt line for multiple pins. On those we simply disallow trying to establish an interrupt on a non-primary CPU, returning NULL. Since we do not have MP yet on armv7, all armv7 interrupt controllers do return NULL if an attempt is made to establish an interrupt on a different CPU. That said, so far there's no way this can happen. If we ever gain MP support, this is a reminder that the interrupt controller drivers have to be adjusted. Prompted by dlg@ ok kettenis@
* Implement IRQ masking and unmasking in imxgpio(4).patrick2018-08-081-1/+35
|
* Give the FDT interrupt API a more generic naming by replacing thepatrick2018-08-061-6/+6
| | | | | | arm_intr_* prefix with fdt_intr_*. ok kettenis@
* Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.patrick2018-03-301-0/+374