net: ipa: add clock reference for remoteproc SSR
authorAlex Elder <elder@linaro.org>
Tue, 27 Jul 2021 21:19:31 +0000 (16:19 -0500)
committerDavid S. Miller <davem@davemloft.net>
Tue, 27 Jul 2021 23:06:27 +0000 (00:06 +0100)
The remoteproc SSR callback function for the modem requires hardware
access when handling a modem crash or shutdown.  Take and later
release an IPA clock reference in ipa_modem_crashed(), to ensure the
hardware is operational.

Signed-off-by: Alex Elder <elder@linaro.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ipa/ipa_modem.c

index c851e2c..a744b81 100644 (file)
@@ -20,6 +20,7 @@
 #include "ipa_smp2p.h"
 #include "ipa_qmi.h"
 #include "ipa_uc.h"
+#include "ipa_clock.h"
 
 #define IPA_NETDEV_NAME                "rmnet_ipa%d"
 #define IPA_NETDEV_TAILROOM    0       /* for padding by mux layer */
@@ -279,6 +280,8 @@ static void ipa_modem_crashed(struct ipa *ipa)
        struct device *dev = &ipa->pdev->dev;
        int ret;
 
+       ipa_clock_get(ipa);
+
        ipa_endpoint_modem_pause_all(ipa, true);
 
        ipa_endpoint_modem_hol_block_clear_all(ipa);
@@ -303,6 +306,8 @@ static void ipa_modem_crashed(struct ipa *ipa)
        ret = ipa_mem_zero_modem(ipa);
        if (ret)
                dev_err(dev, "error %d zeroing modem memory regions\n", ret);
+
+       ipa_clock_put(ipa);
 }
 
 static int ipa_modem_notify(struct notifier_block *nb, unsigned long action,