]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
ASoC: SOF: Intel: hda: cancel D0i3 work during runtime suspend
authorRanjani Sridharan <ranjani.sridharan@linux.intel.com>
Thu, 28 Jan 2021 09:23:45 +0000 (11:23 +0200)
committerAndrea Righi <andrea.righi@canonical.com>
Mon, 15 Mar 2021 14:09:09 +0000 (15:09 +0100)
[ Upstream commit 0084364d9678e9d722ee620ed916f2f9954abdbf ]

Cancel the D0i3 work during runtime suspend as no streams are
active at this point anyway.

Fixes: 63e51fd33fef ("ASoC: SOF: Intel: cnl: Implement feature to support DSP D0i3 in S0")
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20210128092345.1033085-1-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Andrea Righi <andrea.righi@canonical.com>
sound/soc/sof/intel/hda-dsp.c

index 1c5e05b88a90d7a25d21ab2830fc1e80f309254c..1799fc56a3e4191a3d65c0cc9c37e19b717ea9e9 100644 (file)
@@ -802,11 +802,15 @@ int hda_dsp_runtime_idle(struct snd_sof_dev *sdev)
 
 int hda_dsp_runtime_suspend(struct snd_sof_dev *sdev)
 {
+       struct sof_intel_hda_dev *hda = sdev->pdata->hw_pdata;
        const struct sof_dsp_power_state target_state = {
                .state = SOF_DSP_PM_D3,
        };
        int ret;
 
+       /* cancel any attempt for DSP D0I3 */
+       cancel_delayed_work_sync(&hda->d0i3_work);
+
        /* stop hda controller and power dsp off */
        ret = hda_suspend(sdev, true);
        if (ret < 0)