ALSA: hda/hdmi - Work around "alsactl restore" errors
When "alsactl restore" is performed on HDMI codecs, it tries to restore the channel map value since the channel map controls are writable. But hdmi_chmap_ctl_put() returns -EBADFD when no PCM stream is assigned yet, and this results in an error message from alsactl. Although the error is harmless, it's certainly ugly and can be regarded as a regression. As a workaround, this patch changes the return code in such a case to be zero for making others happy. (A slight excuse is: when the chmap is changed through the proper alsa-lib API, the PCM status is checked there anyway, so we don't have to be too strict in the kernel side.) Cc: <stable@vger.kernel.org> [v3.7+] Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
2e4c4dbed0
commit
6f54c36132
|
@ -1502,7 +1502,7 @@ static int hdmi_chmap_ctl_put(struct snd_kcontrol *kcontrol,
|
|||
ctl_idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id);
|
||||
substream = snd_pcm_chmap_substream(info, ctl_idx);
|
||||
if (!substream || !substream->runtime)
|
||||
return -EBADFD;
|
||||
return 0; /* just for avoiding error from alsactl restore */
|
||||
switch (substream->runtime->status->state) {
|
||||
case SNDRV_PCM_STATE_OPEN:
|
||||
case SNDRV_PCM_STATE_SETUP:
|
||||
|
|
Loading…
Reference in New Issue