ASoC: Intel: catpt: use pm_runtime_resume_and_get()
The current code does not check for errors and does not release the reference on errors. Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com> Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com> Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Acked-by: Cezary Rojewski <cezary.rojewski@intel.com> Reviewed-by: Cezary Rojewski <cezary.rojewski@intel.com> Link: https://lore.kernel.org/r/20220616220427.136036-2-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
658e959530
commit
82102a24c9
|
@ -667,7 +667,9 @@ static int catpt_dai_pcm_new(struct snd_soc_pcm_runtime *rtm,
|
|||
if (!memcmp(&cdev->devfmt[devfmt.iface], &devfmt, sizeof(devfmt)))
|
||||
return 0;
|
||||
|
||||
pm_runtime_get_sync(cdev->dev);
|
||||
ret = pm_runtime_resume_and_get(cdev->dev);
|
||||
if (ret < 0 && ret != -EACCES)
|
||||
return ret;
|
||||
|
||||
ret = catpt_ipc_set_device_format(cdev, &devfmt);
|
||||
|
||||
|
@ -853,9 +855,12 @@ static int catpt_mixer_volume_get(struct snd_kcontrol *kcontrol,
|
|||
snd_soc_kcontrol_component(kcontrol);
|
||||
struct catpt_dev *cdev = dev_get_drvdata(component->dev);
|
||||
u32 dspvol;
|
||||
int ret;
|
||||
int i;
|
||||
|
||||
pm_runtime_get_sync(cdev->dev);
|
||||
ret = pm_runtime_resume_and_get(cdev->dev);
|
||||
if (ret < 0 && ret != -EACCES)
|
||||
return ret;
|
||||
|
||||
for (i = 0; i < CATPT_CHANNELS_MAX; i++) {
|
||||
dspvol = catpt_mixer_volume(cdev, &cdev->mixer, i);
|
||||
|
@ -876,7 +881,9 @@ static int catpt_mixer_volume_put(struct snd_kcontrol *kcontrol,
|
|||
struct catpt_dev *cdev = dev_get_drvdata(component->dev);
|
||||
int ret;
|
||||
|
||||
pm_runtime_get_sync(cdev->dev);
|
||||
ret = pm_runtime_resume_and_get(cdev->dev);
|
||||
if (ret < 0 && ret != -EACCES)
|
||||
return ret;
|
||||
|
||||
ret = catpt_set_dspvol(cdev, cdev->mixer.mixer_hw_id,
|
||||
ucontrol->value.integer.value);
|
||||
|
@ -897,6 +904,7 @@ static int catpt_stream_volume_get(struct snd_kcontrol *kcontrol,
|
|||
struct catpt_dev *cdev = dev_get_drvdata(component->dev);
|
||||
long *ctlvol = (long *)kcontrol->private_value;
|
||||
u32 dspvol;
|
||||
int ret;
|
||||
int i;
|
||||
|
||||
stream = catpt_stream_find(cdev, pin_id);
|
||||
|
@ -906,7 +914,9 @@ static int catpt_stream_volume_get(struct snd_kcontrol *kcontrol,
|
|||
return 0;
|
||||
}
|
||||
|
||||
pm_runtime_get_sync(cdev->dev);
|
||||
ret = pm_runtime_resume_and_get(cdev->dev);
|
||||
if (ret < 0 && ret != -EACCES)
|
||||
return ret;
|
||||
|
||||
for (i = 0; i < CATPT_CHANNELS_MAX; i++) {
|
||||
dspvol = catpt_stream_volume(cdev, stream, i);
|
||||
|
@ -937,7 +947,9 @@ static int catpt_stream_volume_put(struct snd_kcontrol *kcontrol,
|
|||
return 0;
|
||||
}
|
||||
|
||||
pm_runtime_get_sync(cdev->dev);
|
||||
ret = pm_runtime_resume_and_get(cdev->dev);
|
||||
if (ret < 0 && ret != -EACCES)
|
||||
return ret;
|
||||
|
||||
ret = catpt_set_dspvol(cdev, stream->info.stream_hw_id,
|
||||
ucontrol->value.integer.value);
|
||||
|
@ -1013,7 +1025,9 @@ static int catpt_loopback_switch_put(struct snd_kcontrol *kcontrol,
|
|||
return 0;
|
||||
}
|
||||
|
||||
pm_runtime_get_sync(cdev->dev);
|
||||
ret = pm_runtime_resume_and_get(cdev->dev);
|
||||
if (ret < 0 && ret != -EACCES)
|
||||
return ret;
|
||||
|
||||
ret = catpt_ipc_mute_loopback(cdev, stream->info.stream_hw_id, mute);
|
||||
|
||||
|
|
|
@ -15,7 +15,9 @@ static ssize_t fw_version_show(struct device *dev,
|
|||
struct catpt_fw_version version;
|
||||
int ret;
|
||||
|
||||
pm_runtime_get_sync(cdev->dev);
|
||||
ret = pm_runtime_resume_and_get(cdev->dev);
|
||||
if (ret < 0 && ret != -EACCES)
|
||||
return ret;
|
||||
|
||||
ret = catpt_ipc_get_fw_version(cdev, &version);
|
||||
|
||||
|
|
Loading…
Reference in New Issue