From 563db68137475d011b355bfe674d1b7a24778091 Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Sat, 8 Oct 2022 22:26:31 +0200 Subject: [PATCH] psci: dont advertise OSI support for IPQ6018 Some older IPQ60xx SoC series boards ship with TrustZone/QSEE firmware older than TZ.WNS.5.1-00084 which will advertise OSI[1] but are broken and trying to use OSI will cause the board to hang until WDT kicks in. So workaround it by checking for SoC compatible and returning false so OSI is not used. [1] https://www.spinics.net/lists/linux-arm-msm/msg79916.html Signed-off-by: Robert Marko --- drivers/firmware/psci/psci.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) --- a/drivers/firmware/psci/psci.c +++ b/drivers/firmware/psci/psci.c @@ -87,6 +87,18 @@ static inline bool psci_has_ext_power_st bool psci_has_osi_support(void) { + /* + * Some older IPQ60xx SoC series boards ship with + * TrustZone/QSEE firmware older than TZ.WNS.5.1-00084 + * which will advertise OSI but is broken and trying + * to use OSI will cause the board to hang until WDT + * kicks in. + * So workaround it by checking for SoC compatible + * and returning false so OSI is not used. + */ + if (of_machine_is_compatible("qcom,ipq6018")) + return false; + return psci_cpu_suspend_feature & PSCI_1_0_OS_INITIATED; }