[PATCH 05/14] drivers/firmware/sdei: Remove sdei_get_conduit()
Gavin Shan
gshan at redhat.com
Mon Jul 6 01:47:23 EDT 2020
There are some logics in sdei_get_conduit() can be safely dropped:
* There are no associated device node with the platform device,
so it's pointless to check on it.
* ACPI functionality has been verified when the platform device
is added in sdei_init(). So it's unnecessary to recheck.
With above logics dropped, sdei_get_conduit() is quite simple and
it's not worthy to maintain a separate function. The logic is merged
to sdei_probe() as it's the only caller.
Signed-off-by: Gavin Shan <gshan at redhat.com>
---
drivers/firmware/arm_sdei.c | 40 +++----------------------------------
1 file changed, 3 insertions(+), 37 deletions(-)
diff --git a/drivers/firmware/arm_sdei.c b/drivers/firmware/arm_sdei.c
index 7e7b26b1f91b..ca0e3f5eb907 100644
--- a/drivers/firmware/arm_sdei.c
+++ b/drivers/firmware/arm_sdei.c
@@ -933,49 +933,15 @@ int sdei_unregister_ghes(struct ghes *ghes)
return err;
}
-static int sdei_get_conduit(struct platform_device *pdev)
-{
- const char *method;
- struct device_node *np = pdev->dev.of_node;
-
- sdei_firmware_call = NULL;
- if (np) {
- if (of_property_read_string(np, "method", &method)) {
- pr_warn("missing \"method\" property\n");
- return SMCCC_CONDUIT_NONE;
- }
-
- if (!strcmp("hvc", method)) {
- sdei_firmware_call = &sdei_smccc_hvc;
- return SMCCC_CONDUIT_HVC;
- } else if (!strcmp("smc", method)) {
- sdei_firmware_call = &sdei_smccc_smc;
- return SMCCC_CONDUIT_SMC;
- }
-
- pr_warn("invalid \"method\" property: %s\n", method);
- } else if (IS_ENABLED(CONFIG_ACPI) && !acpi_disabled) {
- if (acpi_psci_use_hvc()) {
- sdei_firmware_call = &sdei_smccc_hvc;
- return SMCCC_CONDUIT_HVC;
- } else {
- sdei_firmware_call = &sdei_smccc_smc;
- return SMCCC_CONDUIT_SMC;
- }
- }
-
- return SMCCC_CONDUIT_NONE;
-}
-
static int sdei_probe(struct platform_device *pdev)
{
int err;
u64 ver = 0;
int conduit;
- conduit = sdei_get_conduit(pdev);
- if (!sdei_firmware_call)
- return 0;
+ conduit = acpi_psci_use_hvc() ? SMCCC_CONDUIT_HVC : SMCCC_CONDUIT_SMC;
+ sdei_firmware_call = acpi_psci_use_hvc() ?
+ &sdei_smccc_hvc : &sdei_smccc_smc;
err = sdei_api_get_version(&ver);
if (err == -EOPNOTSUPP)
--
2.23.0
More information about the linux-arm-kernel
mailing list