lkml.org 
[lkml]   [2011]   [Feb]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[091/272] ALSA: hda: Disable 4/6 channels on some NVIDIA GPUs.
    2.6.37-stable review patch.  If anyone has any objections, please let us know.

    ------------------

    From: Nitin Daga <ndaga@nvidia.com>

    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>

    ---
    sound/pci/hda/patch_hdmi.c | 42 ++++++++++++++++++++++++++++++++++++++++++
    1 file changed, 42 insertions(+)

    --- a/sound/pci/hda/patch_hdmi.c
    +++ b/sound/pci/hda/patch_hdmi.c
    @@ -1165,11 +1165,53 @@ static int nvhdmi_7x_init(struct hda_cod
    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);
    }




    \
     
     \ /
      Last update: 2011-02-16 01:25    [W:0.023 / U:31.608 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site