]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ASoC: Intel: catpt: Do not block the system from suspending
authorCezary Rojewski <cezary.rojewski@intel.com>
Wed, 26 Nov 2025 09:55:23 +0000 (10:55 +0100)
committerMark Brown <broonie@kernel.org>
Thu, 27 Nov 2025 11:41:17 +0000 (11:41 +0000)
Even if something goes wrong when performing suspend on DSP, from the
system perspective the component is not critical enough to block the
suspend operation entirely. Leaving recovery to next resume() suffices.

Suggested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com>
Link: https://patch.msgid.link/20251126095523.3925364-7-cezary.rojewski@intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/catpt/device.c

index eed330bc82b6cf38d98f29187c3ef2e2fddd6289..d13062c8e907cc2e1a7f690e7cf82fd37613c95b 100644 (file)
@@ -28,7 +28,7 @@
 #define CREATE_TRACE_POINTS
 #include "trace.h"
 
-static int catpt_suspend(struct device *dev)
+static int catpt_do_suspend(struct device *dev)
 {
        struct catpt_dev *cdev = dev_get_drvdata(dev);
        struct dma_chan *chan;
@@ -72,6 +72,13 @@ release_dma_chan:
        return catpt_dsp_power_down(cdev);
 }
 
+/* Do not block the system from suspending, recover on resume() if needed. */
+static int catpt_suspend(struct device *dev)
+{
+       catpt_do_suspend(dev);
+       return 0;
+}
+
 static int catpt_resume(struct device *dev)
 {
        struct catpt_dev *cdev = dev_get_drvdata(dev);
@@ -114,7 +121,7 @@ static int catpt_runtime_suspend(struct device *dev)
        }
        module_put(dev->driver->owner);
 
-       return catpt_suspend(dev);
+       return catpt_do_suspend(dev);
 }
 
 static int catpt_runtime_resume(struct device *dev)