]> www.infradead.org Git - users/jedix/linux-maple.git/commit
firmware: SDEI: Allow sdei initialization without ACPI_APEI_GHES
authorHuang Yiwei <quic_hyiwei@quicinc.com>
Wed, 7 May 2025 04:57:57 +0000 (12:57 +0800)
committerWill Deacon <will@kernel.org>
Thu, 8 May 2025 12:35:22 +0000 (13:35 +0100)
commit59529bbe642de4eb2191a541d9b4bae7eb73862e
tree70aba5d3e186278d2e35b7266bbe0c9b81baa75e
parent0af2f6be1b4281385b618cb86ad946eded089ac8
firmware: SDEI: Allow sdei initialization without ACPI_APEI_GHES

SDEI usually initialize with the ACPI table, but on platforms where
ACPI is not used, the SDEI feature can still be used to handle
specific firmware calls or other customized purposes. Therefore, it
is not necessary for ARM_SDE_INTERFACE to depend on ACPI_APEI_GHES.

In commit dc4e8c07e9e2 ("ACPI: APEI: explicit init of HEST and GHES
in acpi_init()"), to make APEI ready earlier, sdei_init was moved
into acpi_ghes_init instead of being a standalone initcall, adding
ACPI_APEI_GHES dependency to ARM_SDE_INTERFACE. This restricts the
flexibility and usability of SDEI.

This patch corrects the dependency in Kconfig and splits sdei_init()
into two separate functions: sdei_init() and acpi_sdei_init().
sdei_init() will be called by arch_initcall and will only initialize
the platform driver, while acpi_sdei_init() will initialize the
device from acpi_ghes_init() when ACPI is ready. This allows the
initialization of SDEI without ACPI_APEI_GHES enabled.

Fixes: dc4e8c07e9e2 ("ACPI: APEI: explicit init of HEST and GHES in apci_init()")
Cc: Shuai Xue <xueshuai@linux.alibaba.com>
Signed-off-by: Huang Yiwei <quic_hyiwei@quicinc.com>
Reviewed-by: Shuai Xue <xueshuai@linux.alibaba.com>
Reviewed-by: Gavin Shan <gshan@redhat.com>
Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Link: https://lore.kernel.org/r/20250507045757.2658795-1-quic_hyiwei@quicinc.com
Signed-off-by: Will Deacon <will@kernel.org>
drivers/acpi/apei/Kconfig
drivers/acpi/apei/ghes.c
drivers/firmware/Kconfig
drivers/firmware/arm_sdei.c
include/linux/arm_sdei.h