target: msm8610: Fix spmi lockup issue
Call spmi shutdown before dropping the ps hold for
msm reboot function.
CRs-Fixed: 589035
Change-Id: I067661b5ff89d9a6673f96a0a1940facf0a30663
diff --git a/target/msm8610/init.c b/target/msm8610/init.c
index b4f78d3..e2c003b 100644
--- a/target/msm8610/init.c
+++ b/target/msm8610/init.c
@@ -316,11 +316,17 @@
void reboot_device(unsigned reboot_reason)
{
+ int ret = 0;
+
writel(reboot_reason, RESTART_REASON_ADDR);
/* Configure PMIC for warm reset */
pm8x41_reset_configure(PON_PSHOLD_WARM_RESET);
+ ret = scm_halt_pmic_arbiter();
+ if (ret)
+ dprintf(CRITICAL , "Failed to halt pmic arbiter: %d\n", ret);
+
/* Drop PS_HOLD for MSM */
writel(0x00, MPM2_MPM_PS_HOLD);