diff --git a/drivers/firmware/qcom_scm-smc.c b/drivers/firmware/qcom_scm-smc.c index c0306986a471..0de746009ef5 100644 --- a/drivers/firmware/qcom_scm-smc.c +++ b/drivers/firmware/qcom_scm-smc.c @@ -1059,6 +1059,7 @@ int __qcom_scm_get_feat_version(struct device *dev, u64 feat_id, u64 *version) void __qcom_scm_halt_spmi_pmic_arbiter(struct device *dev) { + int ret; struct qcom_scm_desc desc = { .svc = QCOM_SCM_SVC_PWR, .cmd = QCOM_SCM_PWR_IO_DISABLE_PMIC_ARBITER, @@ -1068,11 +1069,14 @@ void __qcom_scm_halt_spmi_pmic_arbiter(struct device *dev) desc.args[0] = 0; desc.arginfo = QCOM_SCM_ARGS(1); - qcom_scm_call_atomic(dev, &desc); + ret = qcom_scm_call_atomic(dev, &desc); + if (ret) + pr_err("Failed to halt_spmi_pmic_arbiter=0x%x\n", ret); } void __qcom_scm_deassert_ps_hold(struct device *dev) { + int ret; struct qcom_scm_desc desc = { .svc = QCOM_SCM_SVC_PWR, .cmd = QCOM_SCM_PWR_IO_DEASSERT_PS_HOLD, @@ -1082,7 +1086,9 @@ void __qcom_scm_deassert_ps_hold(struct device *dev) desc.args[0] = 0; desc.arginfo = QCOM_SCM_ARGS(1); - qcom_scm_call_atomic(dev, &desc); + ret = qcom_scm_call_atomic(dev, &desc); + if (ret) + pr_err("Failed to deassert_ps_hold=0x%x\n", ret); } void __qcom_scm_mmu_sync(struct device *dev, bool sync) diff --git a/drivers/firmware/qcom_scm.c b/drivers/firmware/qcom_scm.c index 34cbb16b607e..7bafd6afedf7 100644 --- a/drivers/firmware/qcom_scm.c +++ b/drivers/firmware/qcom_scm.c @@ -152,23 +152,15 @@ EXPORT_SYMBOL(qcom_scm_spin_cpu); void qcom_scm_set_download_mode(enum qcom_download_mode mode, phys_addr_t tcsr_boot_misc) { - bool avail; - int ret = 0; + int ret = -EINVAL; struct device *dev = __scm ? __scm->dev : NULL; - avail = __qcom_scm_is_call_available(dev, - QCOM_SCM_SVC_BOOT, - QCOM_SCM_BOOT_SET_DLOAD_MODE); - if (avail) { - ret = __qcom_scm_set_dload_mode(dev, mode); - } else if (tcsr_boot_misc || (__scm && __scm->dload_mode_addr)) { + if (tcsr_boot_misc || (__scm && __scm->dload_mode_addr)) { ret = __qcom_scm_io_writel(dev, tcsr_boot_misc ? : __scm->dload_mode_addr, mode); - } else { - dev_err(dev, - "No available mechanism for setting download mode\n"); - } + } else + ret = __qcom_scm_set_dload_mode(dev, mode); if (ret) dev_err(dev, "failed to set download mode: %d\n", ret); @@ -402,16 +394,8 @@ EXPORT_SYMBOL(qcom_scm_get_jtag_etm_feat_id); */ void qcom_scm_halt_spmi_pmic_arbiter(void) { - bool avail; struct device *dev = __scm ? __scm->dev : NULL; - avail = __qcom_scm_is_call_available(dev, - QCOM_SCM_SVC_PWR, - QCOM_SCM_PWR_IO_DISABLE_PMIC_ARBITER); - - if (!avail) - return; - pr_crit("Calling SCM to disable SPMI PMIC arbiter\n"); return __qcom_scm_halt_spmi_pmic_arbiter(dev); } @@ -426,15 +410,9 @@ EXPORT_SYMBOL(qcom_scm_halt_spmi_pmic_arbiter); */ void qcom_scm_deassert_ps_hold(void) { - bool avail; struct device *dev = __scm ? __scm->dev : NULL; - avail = __qcom_scm_is_call_available(dev, - QCOM_SCM_SVC_PWR, - QCOM_SCM_PWR_IO_DEASSERT_PS_HOLD); - - if (avail) - __qcom_scm_deassert_ps_hold(dev); + __qcom_scm_deassert_ps_hold(dev); } EXPORT_SYMBOL(qcom_scm_deassert_ps_hold);