--- zzzz-none-000/linux-5.4.213/drivers/power/reset/msm-poweroff.c 2022-09-15 10:04:56.000000000 +0000 +++ miami-7690-761/linux-5.4.213/drivers/power/reset/msm-poweroff.c 2024-05-29 11:20:00.000000000 +0000 @@ -12,13 +12,22 @@ #include #include #include +#include +static int secure; static void __iomem *msm_ps_hold; static int deassert_pshold(struct notifier_block *nb, unsigned long action, void *data) { - writel(0, msm_ps_hold); - mdelay(10000); + int ret; + + if (secure) { + ret = qti_scm_pshold(); + pr_info("Resetting using secure PSHOLD : returned %d\n", ret); + } else { + writel(0, msm_ps_hold); + mdelay(10000); + } return NOTIFY_DONE; } @@ -47,6 +56,8 @@ pm_power_off = do_msm_poweroff; + secure = of_property_read_bool(pdev->dev.of_node, "qcom,secure"); + return 0; }