Yong-Xuan Wang
03f9885c60
irqchip/riscv-aplic: Retrigger MSI interrupt on source configuration
...
The section 4.5.2 of the RISC-V AIA specification says that "any write
to a sourcecfg register of an APLIC might (or might not) cause the
corresponding interrupt-pending bit to be set to one if the rectified
input value is high (= 1) under the new source mode."
When the interrupt type is changed in the sourcecfg register, the APLIC
device might not set the corresponding pending bit, so the interrupt might
never become pending.
To handle sourcecfg register changes for level-triggered interrupts in MSI
mode, manually set the pending bit for retriggering interrupt so it gets
retriggered if it was already asserted.
Fixes: ca8df97fe679 ("irqchip/riscv-aplic: Add support for MSI-mode")
Signed-off-by: Yong-Xuan Wang <yongxuan.wang@sifive.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Vincent Chen <vincent.chen@sifive.com>
Reviewed-by: Anup Patel <anup@brainfault.org>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/all/20240809071049.2454-1-yongxuan.wang@sifive.com
2024-08-10 10:42:04 +02:00
..
2019-05-30 11:26:32 -07:00
2021-06-11 14:32:12 +01:00
2023-04-13 13:13:50 -07:00
2024-04-09 11:03:15 +02:00
2023-02-25 11:30:21 -08:00
2024-06-23 17:23:08 +02:00
2022-05-04 16:37:48 +01:00
2023-02-05 10:55:19 +00:00
2021-10-26 10:13:31 +01:00
2019-06-19 17:09:55 +02:00
2021-06-10 13:09:19 +01:00
2021-10-26 10:13:31 +01:00
2024-07-25 06:53:47 -05:00
2017-07-04 11:10:37 +01:00
2021-10-26 10:13:31 +01:00
2024-07-15 15:13:55 +02:00
2023-01-11 19:51:39 +01:00
2024-04-24 21:23:49 +02:00
2024-02-13 10:53:15 +01:00
2023-02-18 14:23:41 +00:00
2024-04-24 21:11:48 +02:00
2023-06-17 07:21:08 +01:00
2019-06-19 17:09:55 +02:00
2023-04-08 11:07:49 +01:00
2021-11-12 16:09:50 +00:00
2021-10-26 10:13:31 +01:00
2021-10-26 10:13:31 +01:00
2024-06-25 21:30:48 +02:00
2023-06-17 07:20:52 +01:00
2024-06-24 18:16:44 +01:00
2024-07-22 14:02:19 -07:00
2023-08-21 17:49:11 +01:00
2022-06-09 17:36:57 +01:00
2024-07-18 20:31:20 +02:00
2023-08-21 17:49:11 +01:00
2024-07-18 20:34:46 +02:00
2024-07-22 14:02:19 -07:00
2024-07-18 20:31:20 +02:00
2024-07-22 13:52:05 -07:00
2023-12-20 19:26:31 -05:00
2024-06-24 18:16:44 +01:00
2021-06-10 13:09:19 +01:00
2024-06-24 18:16:44 +01:00
2023-08-21 17:40:30 +01:00
2021-06-10 13:09:19 +01:00
2024-02-27 18:12:09 +01:00
2023-02-08 13:37:55 +01:00
2024-03-11 14:03:03 -07:00
2024-07-15 15:13:56 +02:00
2024-07-18 20:31:20 +02:00
2021-12-16 15:19:52 +00:00
2021-06-10 13:09:19 +01:00
2022-04-25 20:53:18 +02:00
2023-06-17 07:54:48 +01:00
2024-02-27 18:12:09 +01:00
2024-06-17 15:48:15 +02:00
2024-07-26 21:08:42 +02:00
2024-06-25 07:40:08 +02:00
2021-06-10 13:09:19 +01:00
2023-08-21 17:49:11 +01:00
2024-06-23 17:09:26 +02:00
2022-11-26 13:12:13 +00:00
2024-06-25 07:40:08 +02:00
2024-04-23 00:17:07 +02:00
2022-02-15 11:25:46 +00:00
2021-06-10 13:09:19 +01:00
2022-12-05 10:39:52 +00:00
2024-02-27 18:12:10 +01:00
2024-02-27 18:12:10 +01:00
2024-07-30 20:59:12 +02:00
2023-04-13 13:13:52 -07:00
2024-07-29 15:43:50 +02:00
2021-07-09 10:18:58 +01:00
2023-08-21 17:40:20 +01:00
2023-06-17 07:21:02 +01:00
2021-06-10 13:09:19 +01:00
2024-07-18 20:31:20 +02:00
2024-07-18 20:31:20 +02:00
2021-04-07 13:26:00 +01:00
2022-11-28 11:44:02 +00:00
2021-08-12 08:15:15 +01:00
2024-07-18 20:31:20 +02:00
2024-07-18 20:31:21 +02:00
2024-07-18 20:31:21 +02:00
2024-06-23 17:23:08 +02:00
2024-07-18 20:31:21 +02:00
2024-04-23 00:28:14 +02:00
2022-03-23 17:35:57 -07:00
2021-10-26 10:13:31 +01:00
2018-01-04 11:13:22 +00:00
2022-06-28 17:31:15 +09:00
2023-08-21 17:48:59 +01:00
2020-09-25 16:57:33 +01:00
2021-07-26 18:01:27 +01:00
2024-08-04 08:36:57 -07:00
2024-02-27 18:12:10 +01:00
2024-02-13 10:26:15 +01:00
2021-10-26 10:13:31 +01:00
2022-09-28 14:17:10 +01:00
2024-02-27 18:12:10 +01:00
2024-02-27 18:12:10 +01:00
2024-02-27 18:12:10 +01:00
2024-06-23 17:23:08 +02:00
2024-04-24 21:23:49 +02:00
2024-06-23 19:09:14 +02:00
2024-03-25 17:38:29 +01:00
2024-08-10 10:42:04 +02:00
2024-05-23 04:48:40 -07:00
2024-04-14 13:28:49 +02:00
2024-03-25 17:38:28 +01:00
2024-03-25 17:38:28 +01:00
2024-07-22 13:52:05 -07:00
2021-10-26 10:13:31 +01:00
2024-06-03 13:53:12 +02:00
2023-04-13 13:13:53 -07:00
2022-05-04 16:33:17 +01:00
2022-07-08 14:23:57 +02:00
2023-08-21 17:49:11 +01:00
2024-02-26 15:09:18 +01:00
2024-06-23 19:49:45 +02:00
2024-06-24 00:16:43 +02:00
2021-10-26 10:13:31 +01:00
2024-07-28 20:23:27 -07:00
2024-03-25 17:38:29 +01:00
2024-03-25 17:38:29 +01:00
2022-06-15 17:41:11 +02:00
2023-08-21 17:49:11 +01:00
2023-08-21 17:49:11 +01:00
2024-06-23 17:23:08 +02:00
2023-08-21 17:49:11 +01:00
2023-08-14 10:26:56 +02:00
2019-06-19 17:09:55 +02:00
2024-02-21 18:31:08 +01:00
2021-10-26 10:13:31 +01:00
2022-11-26 13:29:48 +00:00
2024-08-10 10:39:24 +02:00
2023-09-20 05:03:20 -07:00
2023-12-12 15:45:39 +01:00
2021-10-26 10:13:31 +01:00
2023-08-21 17:49:11 +01:00
2024-07-22 14:02:19 -07:00
2024-07-22 14:02:19 -07:00
2021-06-10 13:09:19 +01:00
2023-09-12 13:38:08 +01:00
2021-12-16 13:29:44 +00:00