[ALSA] hda-codec - Add zero checks in input-mux helper functions
Added zero checks in input-mux helper functions to avoid Oops. Some devices may have no input pins while the driver registers control elements calling these functions. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
This commit is contained in:
parent
2469049e72
commit
5513b0c582
|
@ -2341,6 +2341,8 @@ int snd_hda_input_mux_info(const struct hda_input_mux *imux,
|
||||||
uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
|
uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
|
||||||
uinfo->count = 1;
|
uinfo->count = 1;
|
||||||
uinfo->value.enumerated.items = imux->num_items;
|
uinfo->value.enumerated.items = imux->num_items;
|
||||||
|
if (!imux->num_items)
|
||||||
|
return 0;
|
||||||
index = uinfo->value.enumerated.item;
|
index = uinfo->value.enumerated.item;
|
||||||
if (index >= imux->num_items)
|
if (index >= imux->num_items)
|
||||||
index = imux->num_items - 1;
|
index = imux->num_items - 1;
|
||||||
|
@ -2356,6 +2358,8 @@ int snd_hda_input_mux_put(struct hda_codec *codec,
|
||||||
{
|
{
|
||||||
unsigned int idx;
|
unsigned int idx;
|
||||||
|
|
||||||
|
if (!imux->num_items)
|
||||||
|
return 0;
|
||||||
idx = ucontrol->value.enumerated.item[0];
|
idx = ucontrol->value.enumerated.item[0];
|
||||||
if (idx >= imux->num_items)
|
if (idx >= imux->num_items)
|
||||||
idx = imux->num_items - 1;
|
idx = imux->num_items - 1;
|
||||||
|
|
Loading…
Reference in New Issue