Merge branch 'topic/pcm-dma-fix' into topic/core-change
authorTakashi Iwai <tiwai@suse.de>
Tue, 1 Dec 2009 14:58:15 +0000 (15:58 +0100)
committerTakashi Iwai <tiwai@suse.de>
Tue, 1 Dec 2009 14:58:15 +0000 (15:58 +0100)
1  2 
sound/pci/hda/patch_realtek.c
sound/pci/hda/patch_sigmatel.c
sound/soc/codecs/tlv320aic23.c

index 6edb5ec78ecd7848a89237b7cdaab0c991ab2b04,70583719282bed6d0e62b44cc1c15127fc0b916e..24b07c9b6a8e9ad5d7bb710e493306afc4f8db41
@@@ -4684,9 -4684,9 +4684,9 @@@ static int alc880_parse_auto_config(str
                        spec->multiout.dig_out_nid = dig_nid;
                else {
                        spec->multiout.slave_dig_outs = spec->slave_dig_outs;
-                       spec->slave_dig_outs[i - 1] = dig_nid;
-                       if (i == ARRAY_SIZE(spec->slave_dig_outs) - 1)
+                       if (i >= ARRAY_SIZE(spec->slave_dig_outs) - 1)
                                break;
+                       spec->slave_dig_outs[i - 1] = dig_nid;
                }
        }
        if (spec->autocfg.dig_in_pin)
@@@ -6249,7 -6249,7 +6249,7 @@@ static struct snd_pci_quirk alc260_cfg_
        SND_PCI_QUIRK(0x1025, 0x008f, "Acer", ALC260_ACER),
        SND_PCI_QUIRK(0x1509, 0x4540, "Favorit 100XS", ALC260_FAVORIT100),
        SND_PCI_QUIRK(0x103c, 0x2808, "HP d5700", ALC260_HP_3013),
-       SND_PCI_QUIRK(0x103c, 0x280a, "HP d5750", ALC260_HP_3013),
+       SND_PCI_QUIRK(0x103c, 0x280a, "HP d5750", ALC260_AUTO), /* no quirk */
        SND_PCI_QUIRK(0x103c, 0x3010, "HP", ALC260_HP_3013),
        SND_PCI_QUIRK(0x103c, 0x3011, "HP", ALC260_HP_3013),
        SND_PCI_QUIRK(0x103c, 0x3012, "HP", ALC260_HP_DC7600),
@@@ -7336,8 -7336,8 +7336,8 @@@ static struct snd_kcontrol_new alc882_m
        HDA_CODEC_VOLUME("Line Playback Volume", 0x0b, 0x01, HDA_INPUT),
        HDA_CODEC_MUTE("Line Playback Switch", 0x0b, 0x01, HDA_INPUT),
        /* FIXME: this looks suspicious...
 -      HDA_CODEC_VOLUME("PC Speaker Playback Volume", 0x0b, 0x02, HDA_INPUT),
 -      HDA_CODEC_MUTE("PC Speaker Playback Switch", 0x0b, 0x02, HDA_INPUT),
 +      HDA_CODEC_VOLUME("Beep Playback Volume", 0x0b, 0x02, HDA_INPUT),
 +      HDA_CODEC_MUTE("Beep Playback Switch", 0x0b, 0x02, HDA_INPUT),
        */
        { } /* end */
  };
@@@ -8911,10 -8911,11 +8911,11 @@@ static struct snd_pci_quirk alc882_ssid
        SND_PCI_QUIRK(0x106b, 0x3800, "MacbookPro 4,1", ALC885_MBP3),
        SND_PCI_QUIRK(0x106b, 0x3e00, "iMac 24 Aluminum", ALC885_IMAC24),
        SND_PCI_QUIRK(0x106b, 0x3f00, "Macbook 5,1", ALC885_MB5),
-       /* FIXME: HP jack sense seems not working for MBP 5,1, so apparently
-        * no perfect solution yet
+       /* FIXME: HP jack sense seems not working for MBP 5,1 or 5,2,
+        * so apparently no perfect solution yet
         */
        SND_PCI_QUIRK(0x106b, 0x4000, "MacbookPro 5,1", ALC885_MB5),
+       SND_PCI_QUIRK(0x106b, 0x4600, "MacbookPro 5,2", ALC885_MB5),
        {} /* terminator */
  };
  
@@@ -9813,9 -9814,9 +9814,9 @@@ static int alc882_parse_auto_config(str
                        spec->multiout.dig_out_nid = dig_nid;
                else {
                        spec->multiout.slave_dig_outs = spec->slave_dig_outs;
-                       spec->slave_dig_outs[i - 1] = dig_nid;
-                       if (i == ARRAY_SIZE(spec->slave_dig_outs) - 1)
+                       if (i >= ARRAY_SIZE(spec->slave_dig_outs) - 1)
                                break;
+                       spec->slave_dig_outs[i - 1] = dig_nid;
                }
        }
        if (spec->autocfg.dig_in_pin)
@@@ -11460,6 -11461,8 +11461,8 @@@ static struct snd_pci_quirk alc262_cfg_
        SND_PCI_QUIRK(0x104d, 0x820f, "Sony ASSAMD", ALC262_SONY_ASSAMD),
        SND_PCI_QUIRK(0x104d, 0x9016, "Sony VAIO", ALC262_AUTO), /* dig-only */
        SND_PCI_QUIRK(0x104d, 0x9025, "Sony VAIO Z21MN", ALC262_TOSHIBA_S06),
+       SND_PCI_QUIRK(0x104d, 0x9035, "Sony VAIO VGN-FW170J", ALC262_AUTO),
+       SND_PCI_QUIRK(0x104d, 0x9047, "Sony VAIO Type G", ALC262_AUTO),
        SND_PCI_QUIRK_MASK(0x104d, 0xff00, 0x9000, "Sony VAIO",
                           ALC262_SONY_ASSAMD),
        SND_PCI_QUIRK(0x1179, 0x0001, "Toshiba dynabook SS RX1",
index e18a439ba51f4669744910941d6cc6b5dd98a947,86de305fc9f225ef382f6a7bdfbd438a2f97840f..ec25262e59e7581ba29fa8a4dca58b86becf0774
@@@ -1590,6 -1590,8 +1590,8 @@@ static struct snd_pci_quirk stac92hd73x
                                "Dell Studio 17", STAC_DELL_M6_DMIC),
        SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x02be,
                                "Dell Studio 1555", STAC_DELL_M6_DMIC),
+       SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x02bd,
+                               "Dell Studio 1557", STAC_DELL_M6_DMIC),
        {} /* terminator */
  };
  
@@@ -3224,7 -3226,7 +3226,7 @@@ static int stac92xx_auto_create_beep_ct
        /* check for mute support for the the amp */
        if ((caps & AC_AMPCAP_MUTE) >> AC_AMPCAP_MUTE_SHIFT) {
                err = stac92xx_add_control(spec, STAC_CTL_WIDGET_MUTE,
 -                      "PC Beep Playback Switch",
 +                      "Beep Playback Switch",
                        HDA_COMPOSE_AMP_VAL(nid, 1, 0, HDA_OUTPUT));
                        if (err < 0)
                                return err;
        /* check to see if there is volume support for the amp */
        if ((caps & AC_AMPCAP_NUM_STEPS) >> AC_AMPCAP_NUM_STEPS_SHIFT) {
                err = stac92xx_add_control(spec, STAC_CTL_WIDGET_VOL,
 -                      "PC Beep Playback Volume",
 +                      "Beep Playback Volume",
                        HDA_COMPOSE_AMP_VAL(nid, 1, 0, HDA_OUTPUT));
                        if (err < 0)
                                return err;
@@@ -3274,7 -3276,7 +3276,7 @@@ static struct snd_kcontrol_new stac92xx
  static int stac92xx_beep_switch_ctl(struct hda_codec *codec)
  {
        return stac92xx_add_control_temp(codec->spec, &stac92xx_dig_beep_ctrl,
 -                                       0, "PC Beep Playback Switch", 0);
 +                                       0, "Beep Playback Switch", 0);
  }
  #endif
  
index 35606ae60868bc964ded7236ae0890d8098682c8,6b24d8bb02bb0915d415de444270608ae48d62c0..fb6b7dd558f3fd720d551e9781a2c7fd930754b1
@@@ -85,7 -85,7 +85,7 @@@ static int tlv320aic23_write(struct snd
         * of data into val
         */
  
 -      if ((reg < 0 || reg > 9) && (reg != 15)) {
 +      if (reg > 9 && reg != 15) {
                printk(KERN_WARNING "%s Invalid register R%u\n", __func__, reg);
                return -1;
        }
@@@ -265,8 -265,8 +265,8 @@@ static const int bosr_usb_divisor_table
  #define UPPER_GROUP ((1<<8) | (1<<9) | (1<<10) | (1<<11)        | (1<<15))
  static const unsigned short sr_valid_mask[] = {
        LOWER_GROUP|UPPER_GROUP,        /* Normal, bosr - 0*/
-       LOWER_GROUP|UPPER_GROUP,        /* Normal, bosr - 1*/
        LOWER_GROUP,                    /* Usb, bosr - 0*/
+       LOWER_GROUP|UPPER_GROUP,        /* Normal, bosr - 1*/
        UPPER_GROUP,                    /* Usb, bosr - 1*/
  };
  /*