[PATCH AUTOSEL 6.17-6.12] ACPI: scan: Update honor list for RPMI System MSI
Sasha Levin
sashal at kernel.org
Sat Oct 25 09:00:32 PDT 2025
From: Sunil V L <sunilvl at ventanamicro.com>
[ Upstream commit 4215d1cf59e4b272755f4277a05cd5967935a704 ]
The RPMI System MSI interrupt controller (just like PLIC and APLIC)
needs to probed prior to devices like GED which use interrupts provided
by it. Also, it has dependency on the SBI MPXY mailbox device.
Add HIDs of RPMI System MSI and SBI MPXY mailbox devices to the honor
list so that those dependencies are handled.
Reviewed-by: Atish Patra <atishp at rivosinc.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko at linux.intel.com>
Acked-by: Rafael J. Wysocki <rafael.j.wysocki at intel.com>
Signed-off-by: Sunil V L <sunilvl at ventanamicro.com>
Signed-off-by: Anup Patel <apatel at ventanamicro.com>
Acked-by: Jassi Brar <jassisinghbrar at gmail.com>
Link: https://lore.kernel.org/r/20250818040920.272664-17-apatel@ventanamicro.com
Signed-off-by: Paul Walmsley <pjw at kernel.org>
Signed-off-by: Sasha Levin <sashal at kernel.org>
---
LLM Generated explanations, may be completely bogus:
YES
**Why**
- The patch extends the `_DEP` honor list in
`drivers/acpi/scan.c:856-866` so that ACPI dependencies pointing at
the SBI MPXY mailbox (`RSCV0005`) and RPMI System MSI controller
(`RSCV0006`) are actually enforced. Without these entries,
`acpi_scan_add_dep()` never sets `dep->honor_dep` for those HIDs
(`drivers/acpi/scan.c:2034-2049`), leaving `device->flags.honor_deps`
clear and allowing consumers to enumerate even when their IRQ
provider/mailbox is missing, because
`acpi_dev_ready_for_enumeration()` only blocks devices when both
`honor_deps` and `dep_unmet` are set
(`drivers/acpi/scan.c:2481-2486`).
- On RISC-V ACPI systems the arch helper builds implicit dependencies
between devices and their interrupt controllers
(`drivers/acpi/riscv/irq.c:340-404`). GED and other consumers
therefore get `_DEP` entries that reference the RPMI System MSI node.
If the honor flag is missing, GED can probe before the MSI domain
exists, causing its interrupt setup to fail.
- The RPMI System MSI driver itself requires the MPXY mailbox to be
ready; it immediately requests a mailbox channel in probe
(`drivers/irqchip/irq-riscv-rpmi-sysmsi.c:223-233`). A premature probe
hits `-EPROBE_DEFER`, and without the dependency being honored the
driver keeps churning instead of waiting for the mailbox to finish.
- Both suppliers call `acpi_dev_clear_dependencies()` once they succeed
(`drivers/irqchip/irq-riscv-rpmi-sysmsi.c:298-303`,
`drivers/mailbox/riscv-sbi-mpxy-mbox.c:974-979`), so honoring their
`_DEP`s restores the intended sequencing with no behavioral change
elsewhere.
- Change risk is minimal: it only adds two strings, matching the
precedent already in place for other RISC-V interrupt controllers. It
fixes a user-visible failure (missing interrupts / repeated probe
defers) on ACPI RISC-V platforms that already shipped the new RPMI +
MPXY support.
**Next Step**
- Boot-test on an ACPI RISC-V platform using RPMI/MPXY to confirm GED
and dependent devices enumerate cleanly once the MSI controller and
mailbox load.
drivers/acpi/scan.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
index fb1fe9f3b1a36..54181b03b345b 100644
--- a/drivers/acpi/scan.c
+++ b/drivers/acpi/scan.c
@@ -858,6 +858,8 @@ static const char * const acpi_honor_dep_ids[] = {
"INTC10CF", /* IVSC (MTL) driver must be loaded to allow i2c access to camera sensors */
"RSCV0001", /* RISC-V PLIC */
"RSCV0002", /* RISC-V APLIC */
+ "RSCV0005", /* RISC-V SBI MPXY MBOX */
+ "RSCV0006", /* RISC-V RPMI SYSMSI */
"PNP0C0F", /* PCI Link Device */
NULL
};
--
2.51.0
More information about the linux-riscv
mailing list