build/patch/kernel/archive/sunxi-5.15/patches.megous/misc-modem-power-Modem-reset-is-broken-with-fast-poweroff-enabl.patch

41 lines
1.3 KiB
Diff
Raw Normal View History

From 65e4130644cd535da7cabfc6309897596bddf240 Mon Sep 17 00:00:00 2001
From: Ondrej Jirman <megous@megous.com>
Date: Mon, 28 Sep 2020 19:00:35 +0200
Subject: [PATCH 271/478] misc: modem-power: Modem reset is broken with fast
poweroff enabled
Disable fast poweroff for the duration of the reset after QDAI
change.
Signed-off-by: Ondrej Jirman <megous@megous.com>
---
drivers/misc/modem-power.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/drivers/misc/modem-power.c b/drivers/misc/modem-power.c
index d80eb9dacf7b..1f5bfe104463 100644
--- a/drivers/misc/modem-power.c
+++ b/drivers/misc/modem-power.c
@@ -554,7 +554,17 @@ static int mpwr_eg25_power_up(struct mpwr_dev* mpwr)
/* reset the modem, to apply QDAI config if necessary */
if (needs_restart) {
- mpwr_serdev_at_cmd(mpwr, "AT+CFUN=1,1", 15000);
+ dev_info(mpwr->dev, "Restarting modem\n");
+
+ /* reboot is broken with fastboot enabled */
+ mpwr_serdev_at_cmd(mpwr, "AT+QCFG=\"fast/poweroff\",0", 5000);
+
+ ret = mpwr_serdev_at_cmd(mpwr, "AT+CFUN=1,1", 5000);
+ if (ret)
+ goto err_shutdown;
+
+ /* wait a bit before starting to probe the modem again */
+ msleep(6000);
ret = mpwr_serdev_at_cmd_with_retry_ignore_timeout(mpwr, "AT&FE0", 1000, 30);
if (ret)
--
2.35.3