]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
irqchip/jcore-aic, clocksource/drivers/jcore: Fix jcore-pit interrupt request
authorArtur Rojek <contact@artur-rojek.eu>
Sun, 16 Feb 2025 17:55:45 +0000 (18:55 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 27 Feb 2025 12:34:18 +0000 (04:34 -0800)
commit3c79476ea60d88945865aff259a8dccbd39e0591
treef4a5a96b2c82ddac35f7787d15f9d3d5213736d1
parent193ca4909d3a23e021781f72b4ec8604fb8815e6
irqchip/jcore-aic, clocksource/drivers/jcore: Fix jcore-pit interrupt request

[ Upstream commit d7e3fd658248f257006227285095d190e70ee73a ]

The jcore-aic irqchip does not have separate interrupt numbers reserved for
cpu-local vs global interrupts. Therefore the device drivers need to
request the given interrupt as per CPU interrupt.

69a9dcbd2d65 ("clocksource/drivers/jcore: Use request_percpu_irq()")
converted the clocksource driver over to request_percpu_irq(), but failed
to do add all the required changes, resulting in a failure to register PIT
interrupts.

Fix this by:

 1) Explicitly mark the interrupt via irq_set_percpu_devid() in
    jcore_pit_init().

 2) Enable and disable the per CPU interrupt in the CPU hotplug callbacks.

 3) Pass the correct per-cpu cookie to the irq handler by using
    handle_percpu_devid_irq() instead of handle_percpu_irq() in
    handle_jcore_irq().

[ tglx: Massage change log ]

Fixes: 69a9dcbd2d65 ("clocksource/drivers/jcore: Use request_percpu_irq()")
Signed-off-by: Artur Rojek <contact@artur-rojek.eu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Uros Bizjak <ubizjak@gmail.com>
Link: https://lore.kernel.org/all/20250216175545.35079-3-contact@artur-rojek.eu
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/clocksource/jcore-pit.c
drivers/irqchip/irq-jcore-aic.c