Skip to content

Commit

Permalink
ALSA: x86: Don't return an error from chmap ctl at disconnected
Browse files Browse the repository at this point in the history
It's not wise to return an error at info/get callback when
disconnected, which happens at any time.
The chmap ctl is supposed to fill zero for such a case, instead.

Signed-off-by: Takashi Iwai <[email protected]>
  • Loading branch information
tiwai committed Feb 16, 2017
1 parent 1835319 commit a72ccfb
Showing 1 changed file with 3 additions and 9 deletions.
12 changes: 3 additions & 9 deletions sound/x86/intel_hdmi_audio.c
Original file line number Diff line number Diff line change
Expand Up @@ -504,11 +504,6 @@ static void had_build_channel_allocation_map(struct snd_intelhad *intelhaddata)
static int had_chmap_ctl_info(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_info *uinfo)
{
struct snd_pcm_chmap *info = snd_kcontrol_chip(kcontrol);
struct snd_intelhad *intelhaddata = info->private_data;

if (!intelhaddata->connected)
return -ENODEV;
uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
uinfo->count = HAD_MAX_CHANNEL;
uinfo->value.integer.min = 0;
Expand All @@ -524,13 +519,12 @@ static int had_chmap_ctl_get(struct snd_kcontrol *kcontrol,
int i;
const struct snd_pcm_chmap_elem *chmap;

if (!intelhaddata->connected)
return -ENODEV;

memset(ucontrol->value.integer.value, 0,
sizeof(long) * HAD_MAX_CHANNEL);
mutex_lock(&intelhaddata->mutex);
if (!intelhaddata->chmap->chmap) {
mutex_unlock(&intelhaddata->mutex);
return -ENODATA;
return 0;
}

chmap = intelhaddata->chmap->chmap;
Expand Down

0 comments on commit a72ccfb

Please sign in to comment.