Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a72ccfba authored by Takashi Iwai's avatar Takashi Iwai
Browse files

ALSA: x86: Don't return an error from chmap ctl at disconnected



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: default avatarTakashi Iwai <tiwai@suse.de>
parent 18353192
Loading
Loading
Loading
Loading
+3 −9
Original line number Diff line number Diff line
@@ -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;
@@ -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;