ALSA: hda: Disable 4/6 channels on some NVIDIA GPUs.
commit 393004b2ea49524ee41a562cae8db67f50f372a5 upstream. Added hardware constraint in patch_hdmi.c to disable channels 4/6 which are not supported by some older NVIDIA GPUs. Signed-off-by: Nitin Daga <ndaga@nvidia.com> Acked-By: Stephen Warren <swarren@nvidia.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
a7c0c6726c
commit
1ef29de9af
@ -1165,11 +1165,53 @@ static int nvhdmi_7x_init(struct hda_codec *codec)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static unsigned int channels_2_6_8[] = {
|
||||
2, 6, 8
|
||||
};
|
||||
|
||||
static unsigned int channels_2_8[] = {
|
||||
2, 8
|
||||
};
|
||||
|
||||
static struct snd_pcm_hw_constraint_list hw_constraints_2_6_8_channels = {
|
||||
.count = ARRAY_SIZE(channels_2_6_8),
|
||||
.list = channels_2_6_8,
|
||||
.mask = 0,
|
||||
};
|
||||
|
||||
static struct snd_pcm_hw_constraint_list hw_constraints_2_8_channels = {
|
||||
.count = ARRAY_SIZE(channels_2_8),
|
||||
.list = channels_2_8,
|
||||
.mask = 0,
|
||||
};
|
||||
|
||||
static int simple_playback_pcm_open(struct hda_pcm_stream *hinfo,
|
||||
struct hda_codec *codec,
|
||||
struct snd_pcm_substream *substream)
|
||||
{
|
||||
struct hdmi_spec *spec = codec->spec;
|
||||
struct snd_pcm_hw_constraint_list *hw_constraints_channels = NULL;
|
||||
|
||||
switch (codec->preset->id) {
|
||||
case 0x10de0002:
|
||||
case 0x10de0003:
|
||||
case 0x10de0005:
|
||||
case 0x10de0006:
|
||||
hw_constraints_channels = &hw_constraints_2_8_channels;
|
||||
break;
|
||||
case 0x10de0007:
|
||||
hw_constraints_channels = &hw_constraints_2_6_8_channels;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (hw_constraints_channels != NULL) {
|
||||
snd_pcm_hw_constraint_list(substream->runtime, 0,
|
||||
SNDRV_PCM_HW_PARAM_CHANNELS,
|
||||
hw_constraints_channels);
|
||||
}
|
||||
|
||||
return snd_hda_multi_out_dig_open(codec, &spec->multiout);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user