Skip to content

Commit 3ee1514

Browse files
umang-chhedasgaud-quic
authored andcommitted
WORKAROUND: remoteproc: qcom: Fix RB8 device hung issue
A race condition is occasionally observed on the RB8 platform where the APPS processor removes its turbo vote from the LCX and LMX rails immediately after receiving the handover interrupt from firmware. At that moment, the ADSP firmware vote has not yet been applied to these rails, causing the PMIC shut down and leading the device to hang. Keep the vote of lcx and lmx rails to SVS_L1 from APPS side instead of completely removing it as a WA until actual fix is available. Signed-off-by: Umang Chheda <umang.chheda@oss.qualcomm.com>
1 parent 597a977 commit 3ee1514

1 file changed

Lines changed: 12 additions & 0 deletions

File tree

drivers/remoteproc/qcom_q6v5_pas.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,18 @@ static void qcom_pas_pds_disable(struct qcom_pas *pas, struct device **pds,
184184
int i;
185185

186186
for (i = 0; i < pd_count; i++) {
187+
/*
188+
* There is a race condition which occurs sometimes for RB8 platform when APPS
189+
* removes it's vote on handover INT from fw - ADSP F/W side vote is not yet
190+
* applied on the lcx and lmx rails because of which PMIC shutdowns shut and device
191+
* goes into hung state. Carry this WA until a proper fix is finalized.
192+
*/
193+
if (of_device_is_compatible(dev_of_node(pas->dev), "qcom,sa8775p-adsp-pas")) {
194+
/* Apply SVS_L1 vote to keep lcx and lmx rails ON */
195+
dev_pm_genpd_set_performance_state(pds[i], 192);
196+
return;
197+
}
198+
187199
dev_pm_genpd_set_performance_state(pds[i], 0);
188200
pm_runtime_put(pds[i]);
189201
}

0 commit comments

Comments
 (0)