Loading drivers/firmware/qcom_scm-smc.c +9 −3 Original line number Diff line number Diff line Loading @@ -1032,7 +1032,7 @@ int __qcom_scm_is_call_available(struct device *dev, u32 svc_id, u32 cmd_id) return -EINVAL; } ret = qcom_scm_call_atomic(dev, &desc); ret = qcom_scm_call(dev, &desc); return ret ? : desc.res[0]; } Loading @@ -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, Loading @@ -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, Loading @@ -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) Loading drivers/firmware/qcom_scm.c +5 −27 Original line number Diff line number Diff line Loading @@ -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); Loading Loading @@ -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); } Loading @@ -426,14 +410,8 @@ 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); } EXPORT_SYMBOL(qcom_scm_deassert_ps_hold); Loading Loading
drivers/firmware/qcom_scm-smc.c +9 −3 Original line number Diff line number Diff line Loading @@ -1032,7 +1032,7 @@ int __qcom_scm_is_call_available(struct device *dev, u32 svc_id, u32 cmd_id) return -EINVAL; } ret = qcom_scm_call_atomic(dev, &desc); ret = qcom_scm_call(dev, &desc); return ret ? : desc.res[0]; } Loading @@ -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, Loading @@ -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, Loading @@ -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) Loading
drivers/firmware/qcom_scm.c +5 −27 Original line number Diff line number Diff line Loading @@ -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); Loading Loading @@ -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); } Loading @@ -426,14 +410,8 @@ 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); } EXPORT_SYMBOL(qcom_scm_deassert_ps_hold); Loading