]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ASoC: Intel: catpt: Do not ignore errors on runtime resume
authorCezary Rojewski <cezary.rojewski@intel.com>
Wed, 26 Nov 2025 09:55:22 +0000 (10:55 +0100)
committerMark Brown <broonie@kernel.org>
Thu, 27 Nov 2025 11:41:16 +0000 (11:41 +0000)
If pm_runtime_resume_and_get() fails, follow up pm_runtime_xxx()
operate on device in erroneous state.

Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com>
Link: https://patch.msgid.link/20251126095523.3925364-6-cezary.rojewski@intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/catpt/pcm.c
sound/soc/intel/catpt/sysfs.c

index 9baaad13a273e09853696705778a8847e742c972..abd1cb07c60c491d94a6d6236e62fc2bd6400813 100644 (file)
@@ -671,7 +671,7 @@ static int catpt_dai_pcm_new(struct snd_soc_pcm_runtime *rtm,
                return 0;
 
        ret = pm_runtime_resume_and_get(cdev->dev);
-       if (ret < 0 && ret != -EACCES)
+       if (ret)
                return ret;
 
        ret = catpt_ipc_set_device_format(cdev, &devfmt);
@@ -874,7 +874,7 @@ static int catpt_mixer_volume_get(struct snd_kcontrol *kcontrol,
        int i;
 
        ret = pm_runtime_resume_and_get(cdev->dev);
-       if (ret < 0 && ret != -EACCES)
+       if (ret)
                return ret;
 
        for (i = 0; i < CATPT_CHANNELS_MAX; i++) {
@@ -895,7 +895,7 @@ static int catpt_mixer_volume_put(struct snd_kcontrol *kcontrol,
        int ret;
 
        ret = pm_runtime_resume_and_get(cdev->dev);
-       if (ret < 0 && ret != -EACCES)
+       if (ret)
                return ret;
 
        ret = catpt_set_dspvol(cdev, cdev->mixer.mixer_hw_id,
@@ -926,7 +926,7 @@ static int catpt_stream_volume_get(struct snd_kcontrol *kcontrol,
        }
 
        ret = pm_runtime_resume_and_get(cdev->dev);
-       if (ret < 0 && ret != -EACCES)
+       if (ret)
                return ret;
 
        for (i = 0; i < CATPT_CHANNELS_MAX; i++) {
@@ -957,7 +957,7 @@ static int catpt_stream_volume_put(struct snd_kcontrol *kcontrol,
        }
 
        ret = pm_runtime_resume_and_get(cdev->dev);
-       if (ret < 0 && ret != -EACCES)
+       if (ret)
                return ret;
 
        ret = catpt_set_dspvol(cdev, stream->info.stream_hw_id,
@@ -1033,7 +1033,7 @@ static int catpt_loopback_switch_put(struct snd_kcontrol *kcontrol,
        }
 
        ret = pm_runtime_resume_and_get(cdev->dev);
-       if (ret < 0 && ret != -EACCES)
+       if (ret)
                return ret;
 
        ret = catpt_ipc_mute_loopback(cdev, stream->info.stream_hw_id, mute);
index 048253002ec87cf5db107d8ca48ace1355907681..e961e172f9b760282282eb1d56939d9994611149 100644 (file)
@@ -16,7 +16,7 @@ static ssize_t fw_version_show(struct device *dev,
        int ret;
 
        ret = pm_runtime_resume_and_get(cdev->dev);
-       if (ret < 0 && ret != -EACCES)
+       if (ret)
                return ret;
 
        ret = catpt_ipc_get_fw_version(cdev, &version);