diff options
author | Arnd Bergmann <arnd@arndb.de> | 2012-05-15 04:41:07 -0400 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2012-05-15 04:41:07 -0400 |
commit | 423b742bec02b6c8d4e060517ce05b4cd3fd91c1 (patch) | |
tree | 3d4e090581970646d0afc92166bd490cc4977021 /sound | |
parent | be944f1e79063e4f27b46c74f10c86b2387afa9f (diff) | |
parent | f5520363532690f56e12126029864d9383d5203f (diff) |
Merge branch 'kirkwood_boards_for_v3.5' of git://git.infradead.org/users/jcooper/linux into next/boards
* 'kirkwood_boards_for_v3.5' of git://git.infradead.org/users/jcooper/linux:
ARM: kirkwood: Add support for RaidSonic IB-NAS6210/6220 using devicetree
kirkwood: Add iconnect support
orion/kirkwood: create a generic function for gpio led blinking
kirkwood/orion: fix orion_gpio_set_blink
ARM: kirkwood: Define DNS-320/DNS-325 NAND in fdt
kirkwood: Allow nand to be configured via. devicetree
mtd: Add orion_nand devicetree bindings
ARM: kirkwood: Basic support for DNS-320 and DNS-325
Includes an update to v3.4-rc7
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'sound')
-rw-r--r-- | sound/pci/echoaudio/echoaudio_dsp.c | 2 | ||||
-rw-r--r-- | sound/pci/hda/hda_codec.c | 4 | ||||
-rw-r--r-- | sound/pci/hda/hda_intel.c | 20 | ||||
-rw-r--r-- | sound/pci/hda/patch_realtek.c | 16 | ||||
-rw-r--r-- | sound/pci/rme9652/hdsp.c | 1 | ||||
-rw-r--r-- | sound/soc/sh/migor.c | 2 |
6 files changed, 30 insertions, 15 deletions
diff --git a/sound/pci/echoaudio/echoaudio_dsp.c b/sound/pci/echoaudio/echoaudio_dsp.c index 64417a733220..d8c670c9d62c 100644 --- a/sound/pci/echoaudio/echoaudio_dsp.c +++ b/sound/pci/echoaudio/echoaudio_dsp.c | |||
@@ -475,7 +475,7 @@ static int load_firmware(struct echoaudio *chip) | |||
475 | const struct firmware *fw; | 475 | const struct firmware *fw; |
476 | int box_type, err; | 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 | return -EPERM; | 479 | return -EPERM; |
480 | 480 | ||
481 | /* See if the ASIC is present and working - only if the DSP is already loaded */ | 481 | /* See if the ASIC is present and working - only if the DSP is already loaded */ |
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c index 7a8fcc4c15f8..841475cc13b6 100644 --- a/sound/pci/hda/hda_codec.c +++ b/sound/pci/hda/hda_codec.c | |||
@@ -5444,10 +5444,6 @@ int snd_hda_suspend(struct hda_bus *bus) | |||
5444 | list_for_each_entry(codec, &bus->codec_list, list) { | 5444 | list_for_each_entry(codec, &bus->codec_list, list) { |
5445 | if (hda_codec_is_power_on(codec)) | 5445 | if (hda_codec_is_power_on(codec)) |
5446 | hda_call_codec_suspend(codec); | 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 | if (codec->patch_ops.post_suspend) | 5447 | if (codec->patch_ops.post_suspend) |
5452 | codec->patch_ops.post_suspend(codec); | 5448 | codec->patch_ops.post_suspend(codec); |
5453 | } | 5449 | } |
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c index c19e71a94e1b..1f350522bed4 100644 --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c | |||
@@ -783,11 +783,13 @@ static unsigned int azx_rirb_get_response(struct hda_bus *bus, | |||
783 | { | 783 | { |
784 | struct azx *chip = bus->private_data; | 784 | struct azx *chip = bus->private_data; |
785 | unsigned long timeout; | 785 | unsigned long timeout; |
786 | unsigned long loopcounter; | ||
786 | int do_poll = 0; | 787 | int do_poll = 0; |
787 | 788 | ||
788 | again: | 789 | again: |
789 | timeout = jiffies + msecs_to_jiffies(1000); | 790 | timeout = jiffies + msecs_to_jiffies(1000); |
790 | for (;;) { | 791 | |
792 | for (loopcounter = 0;; loopcounter++) { | ||
791 | if (chip->polling_mode || do_poll) { | 793 | if (chip->polling_mode || do_poll) { |
792 | spin_lock_irq(&chip->reg_lock); | 794 | spin_lock_irq(&chip->reg_lock); |
793 | azx_update_rirb(chip); | 795 | azx_update_rirb(chip); |
@@ -803,7 +805,7 @@ static unsigned int azx_rirb_get_response(struct hda_bus *bus, | |||
803 | } | 805 | } |
804 | if (time_after(jiffies, timeout)) | 806 | if (time_after(jiffies, timeout)) |
805 | break; | 807 | break; |
806 | if (bus->needs_damn_long_delay) | 808 | if (bus->needs_damn_long_delay || loopcounter > 3000) |
807 | msleep(2); /* temporary workaround */ | 809 | msleep(2); /* temporary workaround */ |
808 | else { | 810 | else { |
809 | udelay(10); | 811 | udelay(10); |
@@ -2351,6 +2353,17 @@ static void azx_power_notify(struct hda_bus *bus) | |||
2351 | * power management | 2353 | * power management |
2352 | */ | 2354 | */ |
2353 | 2355 | ||
2356 | static int snd_hda_codecs_inuse(struct hda_bus *bus) | ||
2357 | { | ||
2358 | struct hda_codec *codec; | ||
2359 | |||
2360 | list_for_each_entry(codec, &bus->codec_list, list) { | ||
2361 | if (snd_hda_codec_needs_resume(codec)) | ||
2362 | return 1; | ||
2363 | } | ||
2364 | return 0; | ||
2365 | } | ||
2366 | |||
2354 | static int azx_suspend(struct pci_dev *pci, pm_message_t state) | 2367 | static int azx_suspend(struct pci_dev *pci, pm_message_t state) |
2355 | { | 2368 | { |
2356 | struct snd_card *card = pci_get_drvdata(pci); | 2369 | struct snd_card *card = pci_get_drvdata(pci); |
@@ -2397,7 +2410,8 @@ static int azx_resume(struct pci_dev *pci) | |||
2397 | return -EIO; | 2410 | return -EIO; |
2398 | azx_init_pci(chip); | 2411 | azx_init_pci(chip); |
2399 | 2412 | ||
2400 | azx_init_chip(chip, 1); | 2413 | if (snd_hda_codecs_inuse(chip->bus)) |
2414 | azx_init_chip(chip, 1); | ||
2401 | 2415 | ||
2402 | snd_hda_resume(chip->bus); | 2416 | snd_hda_resume(chip->bus); |
2403 | snd_power_change_state(card, SNDRV_CTL_POWER_D0); | 2417 | snd_power_change_state(card, SNDRV_CTL_POWER_D0); |
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 818f90bc7d57..7810913d07a0 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
@@ -5405,6 +5405,8 @@ static const struct snd_pci_quirk alc882_fixup_tbl[] = { | |||
5405 | SND_PCI_QUIRK(0x1025, 0x0142, "Acer Aspire 7730G", | 5405 | SND_PCI_QUIRK(0x1025, 0x0142, "Acer Aspire 7730G", |
5406 | ALC882_FIXUP_ACER_ASPIRE_4930G), | 5406 | ALC882_FIXUP_ACER_ASPIRE_4930G), |
5407 | SND_PCI_QUIRK(0x1025, 0x0155, "Packard-Bell M5120", ALC882_FIXUP_PB_M5210), | 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 | SND_PCI_QUIRK(0x1025, 0x0259, "Acer Aspire 5935", ALC889_FIXUP_DAC_ROUTE), | 5410 | SND_PCI_QUIRK(0x1025, 0x0259, "Acer Aspire 5935", ALC889_FIXUP_DAC_ROUTE), |
5409 | SND_PCI_QUIRK(0x1025, 0x026b, "Acer Aspire 8940G", ALC882_FIXUP_ACER_ASPIRE_8930G), | 5411 | SND_PCI_QUIRK(0x1025, 0x026b, "Acer Aspire 8940G", ALC882_FIXUP_ACER_ASPIRE_8930G), |
5410 | SND_PCI_QUIRK(0x1025, 0x0296, "Acer Aspire 7736z", ALC882_FIXUP_ACER_ASPIRE_7736), | 5412 | SND_PCI_QUIRK(0x1025, 0x0296, "Acer Aspire 7736z", ALC882_FIXUP_ACER_ASPIRE_7736), |
@@ -5438,6 +5440,7 @@ static const struct snd_pci_quirk alc882_fixup_tbl[] = { | |||
5438 | SND_PCI_QUIRK(0x106b, 0x4a00, "Macbook 5,2", ALC889_FIXUP_IMAC91_VREF), | 5440 | SND_PCI_QUIRK(0x106b, 0x4a00, "Macbook 5,2", ALC889_FIXUP_IMAC91_VREF), |
5439 | 5441 | ||
5440 | SND_PCI_QUIRK(0x1071, 0x8258, "Evesham Voyaeger", ALC882_FIXUP_EAPD), | 5442 | SND_PCI_QUIRK(0x1071, 0x8258, "Evesham Voyaeger", ALC882_FIXUP_EAPD), |
5443 | SND_PCI_QUIRK(0x1462, 0x7350, "MSI-7350", ALC889_FIXUP_CD), | ||
5441 | SND_PCI_QUIRK_VENDOR(0x1462, "MSI", ALC882_FIXUP_GPIO3), | 5444 | SND_PCI_QUIRK_VENDOR(0x1462, "MSI", ALC882_FIXUP_GPIO3), |
5442 | SND_PCI_QUIRK(0x1458, 0xa002, "Gigabyte EP45-DS3", ALC889_FIXUP_CD), | 5445 | SND_PCI_QUIRK(0x1458, 0xa002, "Gigabyte EP45-DS3", ALC889_FIXUP_CD), |
5443 | SND_PCI_QUIRK(0x147b, 0x107a, "Abit AW9D-MAX", ALC882_FIXUP_ABIT_AW9D_MAX), | 5446 | SND_PCI_QUIRK(0x147b, 0x107a, "Abit AW9D-MAX", ALC882_FIXUP_ABIT_AW9D_MAX), |
@@ -5638,13 +5641,13 @@ static int patch_alc262(struct hda_codec *codec) | |||
5638 | snd_hda_codec_write(codec, 0x1a, 0, AC_VERB_SET_PROC_COEF, tmp | 0x80); | 5641 | snd_hda_codec_write(codec, 0x1a, 0, AC_VERB_SET_PROC_COEF, tmp | 0x80); |
5639 | } | 5642 | } |
5640 | #endif | 5643 | #endif |
5641 | alc_auto_parse_customize_define(codec); | ||
5642 | |||
5643 | alc_fix_pll_init(codec, 0x20, 0x0a, 10); | 5644 | alc_fix_pll_init(codec, 0x20, 0x0a, 10); |
5644 | 5645 | ||
5645 | alc_pick_fixup(codec, NULL, alc262_fixup_tbl, alc262_fixups); | 5646 | alc_pick_fixup(codec, NULL, alc262_fixup_tbl, alc262_fixups); |
5646 | alc_apply_fixup(codec, ALC_FIXUP_ACT_PRE_PROBE); | 5647 | alc_apply_fixup(codec, ALC_FIXUP_ACT_PRE_PROBE); |
5647 | 5648 | ||
5649 | alc_auto_parse_customize_define(codec); | ||
5650 | |||
5648 | /* automatic parse from the BIOS config */ | 5651 | /* automatic parse from the BIOS config */ |
5649 | err = alc262_parse_auto_config(codec); | 5652 | err = alc262_parse_auto_config(codec); |
5650 | if (err < 0) | 5653 | if (err < 0) |
@@ -6249,8 +6252,6 @@ static int patch_alc269(struct hda_codec *codec) | |||
6249 | 6252 | ||
6250 | spec->mixer_nid = 0x0b; | 6253 | spec->mixer_nid = 0x0b; |
6251 | 6254 | ||
6252 | alc_auto_parse_customize_define(codec); | ||
6253 | |||
6254 | err = alc_codec_rename_from_preset(codec); | 6255 | err = alc_codec_rename_from_preset(codec); |
6255 | if (err < 0) | 6256 | if (err < 0) |
6256 | goto error; | 6257 | goto error; |
@@ -6283,6 +6284,8 @@ static int patch_alc269(struct hda_codec *codec) | |||
6283 | alc269_fixup_tbl, alc269_fixups); | 6284 | alc269_fixup_tbl, alc269_fixups); |
6284 | alc_apply_fixup(codec, ALC_FIXUP_ACT_PRE_PROBE); | 6285 | alc_apply_fixup(codec, ALC_FIXUP_ACT_PRE_PROBE); |
6285 | 6286 | ||
6287 | alc_auto_parse_customize_define(codec); | ||
6288 | |||
6286 | /* automatic parse from the BIOS config */ | 6289 | /* automatic parse from the BIOS config */ |
6287 | err = alc269_parse_auto_config(codec); | 6290 | err = alc269_parse_auto_config(codec); |
6288 | if (err < 0) | 6291 | if (err < 0) |
@@ -6859,8 +6862,6 @@ static int patch_alc662(struct hda_codec *codec) | |||
6859 | /* handle multiple HPs as is */ | 6862 | /* handle multiple HPs as is */ |
6860 | spec->parse_flags = HDA_PINCFG_NO_HP_FIXUP; | 6863 | spec->parse_flags = HDA_PINCFG_NO_HP_FIXUP; |
6861 | 6864 | ||
6862 | alc_auto_parse_customize_define(codec); | ||
6863 | |||
6864 | alc_fix_pll_init(codec, 0x20, 0x04, 15); | 6865 | alc_fix_pll_init(codec, 0x20, 0x04, 15); |
6865 | 6866 | ||
6866 | err = alc_codec_rename_from_preset(codec); | 6867 | err = alc_codec_rename_from_preset(codec); |
@@ -6877,6 +6878,9 @@ static int patch_alc662(struct hda_codec *codec) | |||
6877 | alc_pick_fixup(codec, alc662_fixup_models, | 6878 | alc_pick_fixup(codec, alc662_fixup_models, |
6878 | alc662_fixup_tbl, alc662_fixups); | 6879 | alc662_fixup_tbl, alc662_fixups); |
6879 | alc_apply_fixup(codec, ALC_FIXUP_ACT_PRE_PROBE); | 6880 | alc_apply_fixup(codec, ALC_FIXUP_ACT_PRE_PROBE); |
6881 | |||
6882 | alc_auto_parse_customize_define(codec); | ||
6883 | |||
6880 | /* automatic parse from the BIOS config */ | 6884 | /* automatic parse from the BIOS config */ |
6881 | err = alc662_parse_auto_config(codec); | 6885 | err = alc662_parse_auto_config(codec); |
6882 | if (err < 0) | 6886 | if (err < 0) |
diff --git a/sound/pci/rme9652/hdsp.c b/sound/pci/rme9652/hdsp.c index b68cdec03b9e..0b2aea2ce172 100644 --- a/sound/pci/rme9652/hdsp.c +++ b/sound/pci/rme9652/hdsp.c | |||
@@ -5170,6 +5170,7 @@ static int snd_hdsp_create_hwdep(struct snd_card *card, struct hdsp *hdsp) | |||
5170 | strcpy(hw->name, "HDSP hwdep interface"); | 5170 | strcpy(hw->name, "HDSP hwdep interface"); |
5171 | 5171 | ||
5172 | hw->ops.ioctl = snd_hdsp_hwdep_ioctl; | 5172 | hw->ops.ioctl = snd_hdsp_hwdep_ioctl; |
5173 | hw->ops.ioctl_compat = snd_hdsp_hwdep_ioctl; | ||
5173 | 5174 | ||
5174 | return 0; | 5175 | return 0; |
5175 | } | 5176 | } |
diff --git a/sound/soc/sh/migor.c b/sound/soc/sh/migor.c index 9d9ad8d61c0a..8526e1edaf45 100644 --- a/sound/soc/sh/migor.c +++ b/sound/soc/sh/migor.c | |||
@@ -35,7 +35,7 @@ static unsigned long siumckb_recalc(struct clk *clk) | |||
35 | return codec_freq; | 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 | .recalc = siumckb_recalc, | 39 | .recalc = siumckb_recalc, |
40 | }; | 40 | }; |
41 | 41 | ||