]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/commitdiff
Merge tag 'sound-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 25 May 2012 15:45:25 +0000 (08:45 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 25 May 2012 15:45:25 +0000 (08:45 -0700)
Pull sound update from Takashi Iwai:
 "This is the second updates for 3.5-rc1.  It's mainly for OMAP4 HDMI
  updates and the device tree updates for OMAP, in addition to a couple
  of PCM accuray improvement and Realtek ALC269VD codec support."

* tag 'sound-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (21 commits)
  ALSA: hda/realtek - Add new codec support for ALC269VD
  ALSA: core: group read of pointer, tstamp and jiffies
  ASoC: OMAP: HDMI: Rename sound card source file
  ASoC: OMAP: HDMI: Make sound card naming more generic
  ASoC: OMAP: HDMI: Make build config options more generic
  ASoC: OMAP: HDMI: Expand capabilities of the HDMI DAI
  ASoC: OMAP: HDMI: Improve how the display state is verified
  ASoC: OMAP: HDMI: Expand configuration of hw_params
  ASoC: OMAP: HDMI: Use the DSS audio interface
  ASoC: OMAP: HDMI: Create a structure for private data of the CPU DAI
  ASoC: OMAP: HDMI: Change error values in HDMI CPU DAI
  ASoC: OMAP: HDMI: Update the platform device names
  ASoC: omap-abe-twl6040: Introduce driver data for runtime parameters
  ASoC: omap-abe-twl6040: Move Digital Mic widget into dapm table
  ASoC: omap-abe-twl6040: Keep only one snd_soc_dai_link structure
  ASoC: omap-dmic: Add device tree bindings
  ASoC: omap-mcpdm: Add device tree bindings
  ASoC: omap-mcbsp: buffer size constraint only applies to playback stream
  ASoC: omap-mcbsp: Use the common interrupt line if supported by the SoC
  ASoC: omap-mcbsp: Remove unused FRAME dma_op_mode
  ...

1  2 
sound/pci/hda/patch_realtek.c

index ff71dcef08ef1c0d3b2790121fbfda1ebd989758,1ce7feaed91cb6f24dda9b957d425bffbf0dfef7..224410e8e9e7461431063a8d1f23b8650362faca
@@@ -6,7 -6,7 +6,7 @@@
   * Copyright (c) 2004 Kailang Yang <kailang@realtek.com.tw>
   *                    PeiSen Hou <pshou@realtek.com.tw>
   *                    Takashi Iwai <tiwai@suse.de>
 - *                    Jonathan Woithe <jwoithe@physics.adelaide.edu.au>
 + *                    Jonathan Woithe <jwoithe@just42.net>
   *
   *  This driver is free software; you can redistribute it and/or modify
   *  it under the terms of the GNU General Public License as published by
@@@ -2368,6 -2368,7 +2368,7 @@@ static struct alc_codec_rename_table re
        { 0x10ec0269, 0xffff, 0xa023, "ALC259" },
        { 0x10ec0269, 0xffff, 0x6023, "ALC281X" },
        { 0x10ec0269, 0x00f0, 0x0020, "ALC269VC" },
+       { 0x10ec0269, 0x00f0, 0x0030, "ALC269VD" },
        { 0x10ec0887, 0x00f0, 0x0030, "ALC887-VD" },
        { 0x10ec0888, 0x00f0, 0x0030, "ALC888-VD" },
        { 0x10ec0888, 0xf0f0, 0x3020, "ALC886" },
@@@ -5614,6 -5615,7 +5615,7 @@@ enum 
        ALC269_TYPE_ALC269VA,
        ALC269_TYPE_ALC269VB,
        ALC269_TYPE_ALC269VC,
+       ALC269_TYPE_ALC269VD,
  };
  
  /*
@@@ -5625,8 -5627,21 +5627,21 @@@ static int alc269_parse_auto_config(str
        static const hda_nid_t alc269_ssids[] = { 0, 0x1b, 0x14, 0x21 };
        static const hda_nid_t alc269va_ssids[] = { 0x15, 0x1b, 0x14, 0 };
        struct alc_spec *spec = codec->spec;
-       const hda_nid_t *ssids = spec->codec_variant == ALC269_TYPE_ALC269VA ?
-               alc269va_ssids : alc269_ssids;
+       const hda_nid_t *ssids;
+       switch (spec->codec_variant) {
+       case ALC269_TYPE_ALC269VA:
+       case ALC269_TYPE_ALC269VC:
+               ssids = alc269va_ssids;
+               break;
+       case ALC269_TYPE_ALC269VB:
+       case ALC269_TYPE_ALC269VD:
+               ssids = alc269_ssids;
+               break;
+       default:
+               ssids = alc269_ssids;
+               break;
+       }
  
        return alc_parse_auto_config(codec, alc269_ignore, ssids);
  }
@@@ -5643,6 -5658,11 +5658,11 @@@ static void alc269_toggle_power_output(
  
  static void alc269_shutup(struct hda_codec *codec)
  {
+       struct alc_spec *spec = codec->spec;
+       if (spec->codec_variant != ALC269_TYPE_ALC269VB)
+               return;
        if ((alc_get_coef0(codec) & 0x00ff) == 0x017)
                alc269_toggle_power_output(codec, 0);
        if ((alc_get_coef0(codec) & 0x00ff) == 0x018) {
  #ifdef CONFIG_PM
  static int alc269_resume(struct hda_codec *codec)
  {
-       if ((alc_get_coef0(codec) & 0x00ff) == 0x018) {
+       struct alc_spec *spec = codec->spec;
+       if (spec->codec_variant == ALC269_TYPE_ALC269VB ||
+                       (alc_get_coef0(codec) & 0x00ff) == 0x018) {
                alc269_toggle_power_output(codec, 0);
                msleep(150);
        }
  
        codec->patch_ops.init(codec);
  
-       if ((alc_get_coef0(codec) & 0x00ff) == 0x017) {
+       if (spec->codec_variant == ALC269_TYPE_ALC269VB ||
+                       (alc_get_coef0(codec) & 0x00ff) == 0x017) {
                alc269_toggle_power_output(codec, 1);
                msleep(200);
        }
  
-       if ((alc_get_coef0(codec) & 0x00ff) == 0x018)
+       if (spec->codec_variant == ALC269_TYPE_ALC269VB ||
+                       (alc_get_coef0(codec) & 0x00ff) == 0x018)
                alc269_toggle_power_output(codec, 1);
  
        snd_hda_codec_resume_amp(codec);
@@@ -6081,6 -6106,9 +6106,9 @@@ static int patch_alc269(struct hda_code
                                err = alc_codec_rename(codec, "ALC3202");
                        spec->codec_variant = ALC269_TYPE_ALC269VC;
                        break;
+               case 0x0030:
+                       spec->codec_variant = ALC269_TYPE_ALC269VD;
+                       break;
                default:
                        alc_fix_pll_init(codec, 0x20, 0x04, 15);
                }