[alsa-devel] [PATCH] ALSA: hda: Disable 4/6 channels on some NVIDIA GPUs.
Takashi Iwai
tiwai at suse.de
Tue Jan 11 20:01:54 CET 2011
At Mon, 10 Jan 2011 21:49:31 +0530,
Nitin Daga wrote:
>
> 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 at nvidia.com>
> Acked-By: Stephen Warren <swarren at nvidia.com>
Applied now. Thanks.
Takashi
> ---
> pci/hda/patch_hdmi.c | 42 ++++++++++++++++++++++++++++++++++++++++++
> 1 files changed, 42 insertions(+), 0 deletions(-)
>
> diff --git a/pci/hda/patch_hdmi.c b/pci/hda/patch_hdmi.c
> index d3e49aa..ddde59b 100644
> --- a/pci/hda/patch_hdmi.c
> +++ b/pci/hda/patch_hdmi.c
> @@ -1166,11 +1166,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);
> }
>
> --
> 1.7.0.4
>
>
> -----------------------------------------------------------------------------------
> This email message is for the sole use of the intended recipient(s) and may contain
> confidential information. Any unauthorized review, use, disclosure or distribution
> is prohibited. If you are not the intended recipient, please contact the sender by
> reply email and destroy all copies of the original message.
> -----------------------------------------------------------------------------------
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel at alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
>
More information about the Alsa-devel
mailing list