Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'sound-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound

Pull sound fixes from Takashi Iwai:
"Slightly more than expected as rc7, but all are reasonablly small
fixes. A few additions of HD-audio fixup entries, a couple of other
regression fixes including a revert, and a few other trivial
oneliners."

* tag 'sound-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
ASoC: sh: fix migor.c compilation
ALSA: HDA: Lessen CPU usage when waiting for chip to respond
Revert "ALSA: hda - Set codec to D3 forcibly even if not used"
ALSA: hda/realtek - Call alc_auto_parse_customize_define() always after fixup
ALSA: hdsp - Provide ioctl_compat
ALSA: hda/realtek - Add missing CD-input pin for MSI-7350 mobo
ALSA: hda/realtek - Add a fixup for Acer Aspire 5739G
ALSA: echoaudio: Remove incorrect part of assertion

+30 -15
+1 -1
sound/pci/echoaudio/echoaudio_dsp.c
··· 475 475 const struct firmware *fw; 476 476 int box_type, err; 477 477 478 - if (snd_BUG_ON(!chip->dsp_code_to_load || !chip->comm_page)) 478 + if (snd_BUG_ON(!chip->comm_page)) 479 479 return -EPERM; 480 480 481 481 /* See if the ASIC is present and working - only if the DSP is already loaded */
-4
sound/pci/hda/hda_codec.c
··· 5444 5444 list_for_each_entry(codec, &bus->codec_list, list) { 5445 5445 if (hda_codec_is_power_on(codec)) 5446 5446 hda_call_codec_suspend(codec); 5447 - else /* forcibly change the power to D3 even if not used */ 5448 - hda_set_power_state(codec, 5449 - codec->afg ? codec->afg : codec->mfg, 5450 - AC_PWRST_D3); 5451 5447 if (codec->patch_ops.post_suspend) 5452 5448 codec->patch_ops.post_suspend(codec); 5453 5449 }
+17 -3
sound/pci/hda/hda_intel.c
··· 783 783 { 784 784 struct azx *chip = bus->private_data; 785 785 unsigned long timeout; 786 + unsigned long loopcounter; 786 787 int do_poll = 0; 787 788 788 789 again: 789 790 timeout = jiffies + msecs_to_jiffies(1000); 790 - for (;;) { 791 + 792 + for (loopcounter = 0;; loopcounter++) { 791 793 if (chip->polling_mode || do_poll) { 792 794 spin_lock_irq(&chip->reg_lock); 793 795 azx_update_rirb(chip); ··· 805 803 } 806 804 if (time_after(jiffies, timeout)) 807 805 break; 808 - if (bus->needs_damn_long_delay) 806 + if (bus->needs_damn_long_delay || loopcounter > 3000) 809 807 msleep(2); /* temporary workaround */ 810 808 else { 811 809 udelay(10); ··· 2353 2351 * power management 2354 2352 */ 2355 2353 2354 + static int snd_hda_codecs_inuse(struct hda_bus *bus) 2355 + { 2356 + struct hda_codec *codec; 2357 + 2358 + list_for_each_entry(codec, &bus->codec_list, list) { 2359 + if (snd_hda_codec_needs_resume(codec)) 2360 + return 1; 2361 + } 2362 + return 0; 2363 + } 2364 + 2356 2365 static int azx_suspend(struct pci_dev *pci, pm_message_t state) 2357 2366 { 2358 2367 struct snd_card *card = pci_get_drvdata(pci); ··· 2410 2397 return -EIO; 2411 2398 azx_init_pci(chip); 2412 2399 2413 - azx_init_chip(chip, 1); 2400 + if (snd_hda_codecs_inuse(chip->bus)) 2401 + azx_init_chip(chip, 1); 2414 2402 2415 2403 snd_hda_resume(chip->bus); 2416 2404 snd_power_change_state(card, SNDRV_CTL_POWER_D0);
+10 -6
sound/pci/hda/patch_realtek.c
··· 5405 5405 SND_PCI_QUIRK(0x1025, 0x0142, "Acer Aspire 7730G", 5406 5406 ALC882_FIXUP_ACER_ASPIRE_4930G), 5407 5407 SND_PCI_QUIRK(0x1025, 0x0155, "Packard-Bell M5120", ALC882_FIXUP_PB_M5210), 5408 + SND_PCI_QUIRK(0x1025, 0x021e, "Acer Aspire 5739G", 5409 + ALC882_FIXUP_ACER_ASPIRE_4930G), 5408 5410 SND_PCI_QUIRK(0x1025, 0x0259, "Acer Aspire 5935", ALC889_FIXUP_DAC_ROUTE), 5409 5411 SND_PCI_QUIRK(0x1025, 0x026b, "Acer Aspire 8940G", ALC882_FIXUP_ACER_ASPIRE_8930G), 5410 5412 SND_PCI_QUIRK(0x1025, 0x0296, "Acer Aspire 7736z", ALC882_FIXUP_ACER_ASPIRE_7736), ··· 5440 5438 SND_PCI_QUIRK(0x106b, 0x4a00, "Macbook 5,2", ALC889_FIXUP_IMAC91_VREF), 5441 5439 5442 5440 SND_PCI_QUIRK(0x1071, 0x8258, "Evesham Voyaeger", ALC882_FIXUP_EAPD), 5441 + SND_PCI_QUIRK(0x1462, 0x7350, "MSI-7350", ALC889_FIXUP_CD), 5443 5442 SND_PCI_QUIRK_VENDOR(0x1462, "MSI", ALC882_FIXUP_GPIO3), 5444 5443 SND_PCI_QUIRK(0x1458, 0xa002, "Gigabyte EP45-DS3", ALC889_FIXUP_CD), 5445 5444 SND_PCI_QUIRK(0x147b, 0x107a, "Abit AW9D-MAX", ALC882_FIXUP_ABIT_AW9D_MAX), ··· 5641 5638 snd_hda_codec_write(codec, 0x1a, 0, AC_VERB_SET_PROC_COEF, tmp | 0x80); 5642 5639 } 5643 5640 #endif 5644 - alc_auto_parse_customize_define(codec); 5645 - 5646 5641 alc_fix_pll_init(codec, 0x20, 0x0a, 10); 5647 5642 5648 5643 alc_pick_fixup(codec, NULL, alc262_fixup_tbl, alc262_fixups); 5649 5644 alc_apply_fixup(codec, ALC_FIXUP_ACT_PRE_PROBE); 5645 + 5646 + alc_auto_parse_customize_define(codec); 5650 5647 5651 5648 /* automatic parse from the BIOS config */ 5652 5649 err = alc262_parse_auto_config(codec); ··· 6252 6249 6253 6250 spec->mixer_nid = 0x0b; 6254 6251 6255 - alc_auto_parse_customize_define(codec); 6256 - 6257 6252 err = alc_codec_rename_from_preset(codec); 6258 6253 if (err < 0) 6259 6254 goto error; ··· 6283 6282 alc_pick_fixup(codec, alc269_fixup_models, 6284 6283 alc269_fixup_tbl, alc269_fixups); 6285 6284 alc_apply_fixup(codec, ALC_FIXUP_ACT_PRE_PROBE); 6285 + 6286 + alc_auto_parse_customize_define(codec); 6286 6287 6287 6288 /* automatic parse from the BIOS config */ 6288 6289 err = alc269_parse_auto_config(codec); ··· 6862 6859 /* handle multiple HPs as is */ 6863 6860 spec->parse_flags = HDA_PINCFG_NO_HP_FIXUP; 6864 6861 6865 - alc_auto_parse_customize_define(codec); 6866 - 6867 6862 alc_fix_pll_init(codec, 0x20, 0x04, 15); 6868 6863 6869 6864 err = alc_codec_rename_from_preset(codec); ··· 6878 6877 alc_pick_fixup(codec, alc662_fixup_models, 6879 6878 alc662_fixup_tbl, alc662_fixups); 6880 6879 alc_apply_fixup(codec, ALC_FIXUP_ACT_PRE_PROBE); 6880 + 6881 + alc_auto_parse_customize_define(codec); 6882 + 6881 6883 /* automatic parse from the BIOS config */ 6882 6884 err = alc662_parse_auto_config(codec); 6883 6885 if (err < 0)
+1
sound/pci/rme9652/hdsp.c
··· 5170 5170 strcpy(hw->name, "HDSP hwdep interface"); 5171 5171 5172 5172 hw->ops.ioctl = snd_hdsp_hwdep_ioctl; 5173 + hw->ops.ioctl_compat = snd_hdsp_hwdep_ioctl; 5173 5174 5174 5175 return 0; 5175 5176 }
+1 -1
sound/soc/sh/migor.c
··· 35 35 return codec_freq; 36 36 } 37 37 38 - static struct clk_ops siumckb_clk_ops = { 38 + static struct sh_clk_ops siumckb_clk_ops = { 39 39 .recalc = siumckb_recalc, 40 40 }; 41 41