CVSROOT:        /cvs
Module name:    src
Changes by:     patr...@cvs.openbsd.org 2020/07/14 09:52:20

Modified files:
        sys/arch/arm64/dev: ampintc.c 

Log message:
Add support for routing interrupts to other CPUs in ampintc(4).  Most of the
supporting code was already there.  The driver supports establishing multiple
handlers on the same pin.  Make sure that a single pin can only be established
on a specific core by recording the struct cpu_info * of the first establish,
and returning NULL if someone tries to share the pin with a different core.

Since the array of CPU masks, used for enabling/disabling interrupt routing to
specific cores, is only populated during cpu_boot_secondary_processors(), each
core will re-route the interrupts once a core read its mask.  Until then, the
core will not receive interrupts for that pin.

While there, remove a call to ampintc_setipl(), which seems to be a no-op.  It
tries to set the same value that's already set.  Since the function that calls
it is supposed to calculate a pin's mask and do the routing, this doesn't seem
to be the correct place for such a call.  agintc(4) doesn't have it either.

Prompted by dlg@
ok kettenis@

Reply via email to