diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-11-09 12:30:14 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-11-09 12:30:14 -0500 |
| commit | d5d6eba94b4c390c29e375bacabf9fdc2f01243d (patch) | |
| tree | 54e2d16e92cbafed2e16399f31b2143c54093226 | |
| parent | f0ede3f36188237d124b457d6735941d8e2cf981 (diff) | |
| parent | dede17b8e931eeaa38b0288e8d545d558d904942 (diff) | |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
ALSA: snd-aica: declare MODULE_FIRMWARE
ALSA: hda - Don't initialize CORB/RIRB for single_cmd mode
ALSA: usb-audio: fix combine_word problem
sound: Replace old style lock initializer
ASoC: S3C64XX I2S: Enable audio-bus clock
ASoC: OMAP: Don't try to set unsupported OMAP_DMA_DATA_BURST_16 on OMAP1
ALSA: hda, move hp_bseries_system
sound: Use KERN_WARNING instead of KERN_WARN, which does not exist
ALSA: intel8x0: Mute External Amplifier by default for another Sony model
ALSA: hda - Add OLPC XO-1.5 PCI ID
ALSA: hda - Enable GPIO control for mute LED on HP systems
| -rw-r--r-- | sound/oss/dmasound/dmasound_core.c | 4 | ||||
| -rw-r--r-- | sound/oss/sb_common.c | 4 | ||||
| -rw-r--r-- | sound/oss/sb_ess.c | 2 | ||||
| -rw-r--r-- | sound/pci/hda/hda_intel.c | 12 | ||||
| -rw-r--r-- | sound/pci/hda/patch_conexant.c | 1 | ||||
| -rw-r--r-- | sound/pci/hda/patch_sigmatel.c | 68 | ||||
| -rw-r--r-- | sound/pci/intel8x0.c | 6 | ||||
| -rw-r--r-- | sound/sh/aica.c | 1 | ||||
| -rw-r--r-- | sound/soc/omap/omap-pcm.c | 8 | ||||
| -rw-r--r-- | sound/soc/s3c24xx/s3c64xx-i2s.c | 2 | ||||
| -rw-r--r-- | sound/usb/usbaudio.h | 2 |
11 files changed, 99 insertions, 11 deletions
diff --git a/sound/oss/dmasound/dmasound_core.c b/sound/oss/dmasound/dmasound_core.c index 793b7f478433..3f3c3f71db4b 100644 --- a/sound/oss/dmasound/dmasound_core.c +++ b/sound/oss/dmasound/dmasound_core.c | |||
| @@ -219,7 +219,9 @@ static int shared_resources_initialised; | |||
| 219 | * Mid level stuff | 219 | * Mid level stuff |
| 220 | */ | 220 | */ |
| 221 | 221 | ||
| 222 | struct sound_settings dmasound = { .lock = SPIN_LOCK_UNLOCKED }; | 222 | struct sound_settings dmasound = { |
| 223 | .lock = __SPIN_LOCK_UNLOCKED(dmasound.lock) | ||
| 224 | }; | ||
| 223 | 225 | ||
| 224 | static inline void sound_silence(void) | 226 | static inline void sound_silence(void) |
| 225 | { | 227 | { |
diff --git a/sound/oss/sb_common.c b/sound/oss/sb_common.c index 77d0e5efda76..ce4db49291f7 100644 --- a/sound/oss/sb_common.c +++ b/sound/oss/sb_common.c | |||
| @@ -157,7 +157,7 @@ static void sb_intr (sb_devc *devc) | |||
| 157 | break; | 157 | break; |
| 158 | 158 | ||
| 159 | default: | 159 | default: |
| 160 | /* printk(KERN_WARN "Sound Blaster: Unexpected interrupt\n"); */ | 160 | /* printk(KERN_WARNING "Sound Blaster: Unexpected interrupt\n"); */ |
| 161 | ; | 161 | ; |
| 162 | } | 162 | } |
| 163 | } | 163 | } |
| @@ -177,7 +177,7 @@ static void sb_intr (sb_devc *devc) | |||
| 177 | break; | 177 | break; |
| 178 | 178 | ||
| 179 | default: | 179 | default: |
| 180 | /* printk(KERN_WARN "Sound Blaster: Unexpected interrupt\n"); */ | 180 | /* printk(KERN_WARNING "Sound Blaster: Unexpected interrupt\n"); */ |
| 181 | ; | 181 | ; |
| 182 | } | 182 | } |
| 183 | } | 183 | } |
diff --git a/sound/oss/sb_ess.c b/sound/oss/sb_ess.c index 180e95c87e3e..51a3d381a59e 100644 --- a/sound/oss/sb_ess.c +++ b/sound/oss/sb_ess.c | |||
| @@ -782,7 +782,7 @@ printk(KERN_INFO "FKS: ess_handle_channel %s irq_mode=%d\n", channel, irq_mode); | |||
| 782 | break; | 782 | break; |
| 783 | 783 | ||
| 784 | default:; | 784 | default:; |
| 785 | /* printk(KERN_WARN "ESS: Unexpected interrupt\n"); */ | 785 | /* printk(KERN_WARNING "ESS: Unexpected interrupt\n"); */ |
| 786 | } | 786 | } |
| 787 | } | 787 | } |
| 788 | 788 | ||
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c index e340792f6cb3..6517f589d01d 100644 --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c | |||
| @@ -722,9 +722,10 @@ static unsigned int azx_rirb_get_response(struct hda_bus *bus, | |||
| 722 | chip->last_cmd[addr]); | 722 | chip->last_cmd[addr]); |
| 723 | chip->single_cmd = 1; | 723 | chip->single_cmd = 1; |
| 724 | bus->response_reset = 0; | 724 | bus->response_reset = 0; |
| 725 | /* re-initialize CORB/RIRB */ | 725 | /* release CORB/RIRB */ |
| 726 | azx_free_cmd_io(chip); | 726 | azx_free_cmd_io(chip); |
| 727 | azx_init_cmd_io(chip); | 727 | /* disable unsolicited responses */ |
| 728 | azx_writel(chip, GCTL, azx_readl(chip, GCTL) & ~ICH6_GCTL_UNSOL); | ||
| 728 | return -1; | 729 | return -1; |
| 729 | } | 730 | } |
| 730 | 731 | ||
| @@ -865,7 +866,9 @@ static int azx_reset(struct azx *chip) | |||
| 865 | } | 866 | } |
| 866 | 867 | ||
| 867 | /* Accept unsolicited responses */ | 868 | /* Accept unsolicited responses */ |
| 868 | azx_writel(chip, GCTL, azx_readl(chip, GCTL) | ICH6_GCTL_UNSOL); | 869 | if (!chip->single_cmd) |
| 870 | azx_writel(chip, GCTL, azx_readl(chip, GCTL) | | ||
| 871 | ICH6_GCTL_UNSOL); | ||
| 869 | 872 | ||
| 870 | /* detect codecs */ | 873 | /* detect codecs */ |
| 871 | if (!chip->codec_mask) { | 874 | if (!chip->codec_mask) { |
| @@ -980,7 +983,8 @@ static void azx_init_chip(struct azx *chip) | |||
| 980 | azx_int_enable(chip); | 983 | azx_int_enable(chip); |
| 981 | 984 | ||
| 982 | /* initialize the codec command I/O */ | 985 | /* initialize the codec command I/O */ |
| 983 | azx_init_cmd_io(chip); | 986 | if (!chip->single_cmd) |
| 987 | azx_init_cmd_io(chip); | ||
| 984 | 988 | ||
| 985 | /* program the position buffer */ | 989 | /* program the position buffer */ |
| 986 | azx_writel(chip, DPLBASE, (u32)chip->posbuf.addr); | 990 | azx_writel(chip, DPLBASE, (u32)chip->posbuf.addr); |
diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c index 3fbbc8c01e70..6479e65858d3 100644 --- a/sound/pci/hda/patch_conexant.c +++ b/sound/pci/hda/patch_conexant.c | |||
| @@ -2325,6 +2325,7 @@ static struct snd_pci_quirk cxt5066_cfg_tbl[] = { | |||
| 2325 | CXT5066_LAPTOP), | 2325 | CXT5066_LAPTOP), |
| 2326 | SND_PCI_QUIRK(0x1028, 0x02f5, "Dell", | 2326 | SND_PCI_QUIRK(0x1028, 0x02f5, "Dell", |
| 2327 | CXT5066_DELL_LAPTOP), | 2327 | CXT5066_DELL_LAPTOP), |
| 2328 | SND_PCI_QUIRK(0x152d, 0x0833, "OLPC XO-1.5", CXT5066_OLPC_XO_1_5), | ||
| 2328 | {} | 2329 | {} |
| 2329 | }; | 2330 | }; |
| 2330 | 2331 | ||
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index 66c0876bf734..8eb6508cd991 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c | |||
| @@ -28,6 +28,7 @@ | |||
| 28 | #include <linux/delay.h> | 28 | #include <linux/delay.h> |
| 29 | #include <linux/slab.h> | 29 | #include <linux/slab.h> |
| 30 | #include <linux/pci.h> | 30 | #include <linux/pci.h> |
| 31 | #include <linux/dmi.h> | ||
| 31 | #include <sound/core.h> | 32 | #include <sound/core.h> |
| 32 | #include <sound/asoundef.h> | 33 | #include <sound/asoundef.h> |
| 33 | #include <sound/jack.h> | 34 | #include <sound/jack.h> |
| @@ -1693,6 +1694,8 @@ static struct snd_pci_quirk stac92hd71bxx_cfg_tbl[] = { | |||
| 1693 | "DFI LanParty", STAC_92HD71BXX_REF), | 1694 | "DFI LanParty", STAC_92HD71BXX_REF), |
| 1694 | SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x30fb, | 1695 | SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x30fb, |
| 1695 | "HP dv4-1222nr", STAC_HP_DV4_1222NR), | 1696 | "HP dv4-1222nr", STAC_HP_DV4_1222NR), |
| 1697 | SND_PCI_QUIRK_MASK(PCI_VENDOR_ID_HP, 0xfff0, 0x1720, | ||
| 1698 | "HP", STAC_HP_DV5), | ||
| 1696 | SND_PCI_QUIRK_MASK(PCI_VENDOR_ID_HP, 0xfff0, 0x3080, | 1699 | SND_PCI_QUIRK_MASK(PCI_VENDOR_ID_HP, 0xfff0, 0x3080, |
| 1697 | "HP", STAC_HP_DV5), | 1700 | "HP", STAC_HP_DV5), |
| 1698 | SND_PCI_QUIRK_MASK(PCI_VENDOR_ID_HP, 0xfff0, 0x30f0, | 1701 | SND_PCI_QUIRK_MASK(PCI_VENDOR_ID_HP, 0xfff0, 0x30f0, |
| @@ -4665,6 +4668,26 @@ static void stac92xx_unsol_event(struct hda_codec *codec, unsigned int res) | |||
| 4665 | } | 4668 | } |
| 4666 | } | 4669 | } |
| 4667 | 4670 | ||
| 4671 | static int hp_bseries_system(u32 subsystem_id) | ||
| 4672 | { | ||
| 4673 | switch (subsystem_id) { | ||
| 4674 | case 0x103c307e: | ||
| 4675 | case 0x103c307f: | ||
| 4676 | case 0x103c3080: | ||
| 4677 | case 0x103c3081: | ||
| 4678 | case 0x103c1722: | ||
| 4679 | case 0x103c1723: | ||
| 4680 | case 0x103c1724: | ||
| 4681 | case 0x103c1725: | ||
| 4682 | case 0x103c1726: | ||
| 4683 | case 0x103c1727: | ||
| 4684 | case 0x103c1728: | ||
| 4685 | case 0x103c1729: | ||
| 4686 | return 1; | ||
| 4687 | } | ||
| 4688 | return 0; | ||
| 4689 | } | ||
| 4690 | |||
| 4668 | #ifdef CONFIG_PROC_FS | 4691 | #ifdef CONFIG_PROC_FS |
| 4669 | static void stac92hd_proc_hook(struct snd_info_buffer *buffer, | 4692 | static void stac92hd_proc_hook(struct snd_info_buffer *buffer, |
| 4670 | struct hda_codec *codec, hda_nid_t nid) | 4693 | struct hda_codec *codec, hda_nid_t nid) |
| @@ -4754,6 +4777,11 @@ static int stac92xx_hp_check_power_status(struct hda_codec *codec, | |||
| 4754 | else | 4777 | else |
| 4755 | spec->gpio_data |= spec->gpio_led; /* white */ | 4778 | spec->gpio_data |= spec->gpio_led; /* white */ |
| 4756 | 4779 | ||
| 4780 | if (hp_bseries_system(codec->subsystem_id)) { | ||
| 4781 | /* LED state is inverted on these systems */ | ||
| 4782 | spec->gpio_data ^= spec->gpio_led; | ||
| 4783 | } | ||
| 4784 | |||
| 4757 | stac_gpio_set(codec, spec->gpio_mask, | 4785 | stac_gpio_set(codec, spec->gpio_mask, |
| 4758 | spec->gpio_dir, | 4786 | spec->gpio_dir, |
| 4759 | spec->gpio_data); | 4787 | spec->gpio_data); |
| @@ -5243,6 +5271,7 @@ static int patch_stac92hd71bxx(struct hda_codec *codec) | |||
| 5243 | { | 5271 | { |
| 5244 | struct sigmatel_spec *spec; | 5272 | struct sigmatel_spec *spec; |
| 5245 | struct hda_verb *unmute_init = stac92hd71bxx_unmute_core_init; | 5273 | struct hda_verb *unmute_init = stac92hd71bxx_unmute_core_init; |
| 5274 | unsigned int pin_cfg; | ||
| 5246 | int err = 0; | 5275 | int err = 0; |
| 5247 | 5276 | ||
| 5248 | spec = kzalloc(sizeof(*spec), GFP_KERNEL); | 5277 | spec = kzalloc(sizeof(*spec), GFP_KERNEL); |
| @@ -5426,6 +5455,45 @@ again: | |||
| 5426 | break; | 5455 | break; |
| 5427 | } | 5456 | } |
| 5428 | 5457 | ||
| 5458 | if (hp_bseries_system(codec->subsystem_id)) { | ||
| 5459 | pin_cfg = snd_hda_codec_get_pincfg(codec, 0x0f); | ||
| 5460 | if (get_defcfg_device(pin_cfg) == AC_JACK_LINE_OUT || | ||
| 5461 | get_defcfg_device(pin_cfg) == AC_JACK_SPEAKER || | ||
| 5462 | get_defcfg_device(pin_cfg) == AC_JACK_HP_OUT) { | ||
| 5463 | /* It was changed in the BIOS to just satisfy MS DTM. | ||
| 5464 | * Lets turn it back into slaved HP | ||
| 5465 | */ | ||
| 5466 | pin_cfg = (pin_cfg & (~AC_DEFCFG_DEVICE)) | ||
| 5467 | | (AC_JACK_HP_OUT << | ||
| 5468 | AC_DEFCFG_DEVICE_SHIFT); | ||
| 5469 | pin_cfg = (pin_cfg & (~(AC_DEFCFG_DEF_ASSOC | ||
| 5470 | | AC_DEFCFG_SEQUENCE))) | ||
| 5471 | | 0x1f; | ||
| 5472 | snd_hda_codec_set_pincfg(codec, 0x0f, pin_cfg); | ||
| 5473 | } | ||
| 5474 | } | ||
| 5475 | |||
| 5476 | if ((codec->subsystem_id >> 16) == PCI_VENDOR_ID_HP) { | ||
| 5477 | const struct dmi_device *dev = NULL; | ||
| 5478 | while ((dev = dmi_find_device(DMI_DEV_TYPE_OEM_STRING, | ||
| 5479 | NULL, dev))) { | ||
| 5480 | if (strcmp(dev->name, "HP_Mute_LED_1")) { | ||
| 5481 | switch (codec->vendor_id) { | ||
| 5482 | case 0x111d7608: | ||
| 5483 | spec->gpio_led = 0x01; | ||
| 5484 | break; | ||
| 5485 | case 0x111d7600: | ||
| 5486 | case 0x111d7601: | ||
| 5487 | case 0x111d7602: | ||
| 5488 | case 0x111d7603: | ||
| 5489 | spec->gpio_led = 0x08; | ||
| 5490 | break; | ||
| 5491 | } | ||
| 5492 | break; | ||
| 5493 | } | ||
| 5494 | } | ||
| 5495 | } | ||
| 5496 | |||
| 5429 | #ifdef CONFIG_SND_HDA_POWER_SAVE | 5497 | #ifdef CONFIG_SND_HDA_POWER_SAVE |
| 5430 | if (spec->gpio_led) { | 5498 | if (spec->gpio_led) { |
| 5431 | spec->gpio_mask |= spec->gpio_led; | 5499 | spec->gpio_mask |= spec->gpio_led; |
diff --git a/sound/pci/intel8x0.c b/sound/pci/intel8x0.c index 754867ed4785..aac20fb4aad2 100644 --- a/sound/pci/intel8x0.c +++ b/sound/pci/intel8x0.c | |||
| @@ -1950,6 +1950,12 @@ static struct ac97_quirk ac97_quirks[] __devinitdata = { | |||
| 1950 | }, | 1950 | }, |
| 1951 | { | 1951 | { |
| 1952 | .subvendor = 0x104d, | 1952 | .subvendor = 0x104d, |
| 1953 | .subdevice = 0x8144, | ||
| 1954 | .name = "Sony", | ||
| 1955 | .type = AC97_TUNE_INV_EAPD | ||
| 1956 | }, | ||
| 1957 | { | ||
| 1958 | .subvendor = 0x104d, | ||
| 1953 | .subdevice = 0x8197, | 1959 | .subdevice = 0x8197, |
| 1954 | .name = "Sony S1XP", | 1960 | .name = "Sony S1XP", |
| 1955 | .type = AC97_TUNE_INV_EAPD | 1961 | .type = AC97_TUNE_INV_EAPD |
diff --git a/sound/sh/aica.c b/sound/sh/aica.c index 583a3693df75..a0df401ebb9f 100644 --- a/sound/sh/aica.c +++ b/sound/sh/aica.c | |||
| @@ -49,6 +49,7 @@ MODULE_AUTHOR("Adrian McMenamin <adrian@mcmen.demon.co.uk>"); | |||
| 49 | MODULE_DESCRIPTION("Dreamcast AICA sound (pcm) driver"); | 49 | MODULE_DESCRIPTION("Dreamcast AICA sound (pcm) driver"); |
| 50 | MODULE_LICENSE("GPL"); | 50 | MODULE_LICENSE("GPL"); |
| 51 | MODULE_SUPPORTED_DEVICE("{{Yamaha/SEGA, AICA}}"); | 51 | MODULE_SUPPORTED_DEVICE("{{Yamaha/SEGA, AICA}}"); |
| 52 | MODULE_FIRMWARE("aica_firmware.bin"); | ||
| 52 | 53 | ||
| 53 | /* module parameters */ | 54 | /* module parameters */ |
| 54 | #define CARD_NAME "AICA" | 55 | #define CARD_NAME "AICA" |
diff --git a/sound/soc/omap/omap-pcm.c b/sound/soc/omap/omap-pcm.c index 5735945788bf..6a829eef2a4f 100644 --- a/sound/soc/omap/omap-pcm.c +++ b/sound/soc/omap/omap-pcm.c | |||
| @@ -195,8 +195,12 @@ static int omap_pcm_prepare(struct snd_pcm_substream *substream) | |||
| 195 | else | 195 | else |
| 196 | omap_enable_dma_irq(prtd->dma_ch, OMAP_DMA_FRAME_IRQ); | 196 | omap_enable_dma_irq(prtd->dma_ch, OMAP_DMA_FRAME_IRQ); |
| 197 | 197 | ||
| 198 | omap_set_dma_src_burst_mode(prtd->dma_ch, OMAP_DMA_DATA_BURST_16); | 198 | if (!(cpu_class_is_omap1())) { |
| 199 | omap_set_dma_dest_burst_mode(prtd->dma_ch, OMAP_DMA_DATA_BURST_16); | 199 | omap_set_dma_src_burst_mode(prtd->dma_ch, |
| 200 | OMAP_DMA_DATA_BURST_16); | ||
| 201 | omap_set_dma_dest_burst_mode(prtd->dma_ch, | ||
| 202 | OMAP_DMA_DATA_BURST_16); | ||
| 203 | } | ||
| 200 | 204 | ||
| 201 | return 0; | 205 | return 0; |
| 202 | } | 206 | } |
diff --git a/sound/soc/s3c24xx/s3c64xx-i2s.c b/sound/soc/s3c24xx/s3c64xx-i2s.c index 3c06c401d0fb..105a77eeded0 100644 --- a/sound/soc/s3c24xx/s3c64xx-i2s.c +++ b/sound/soc/s3c24xx/s3c64xx-i2s.c | |||
| @@ -220,6 +220,8 @@ static __devinit int s3c64xx_iis_dev_probe(struct platform_device *pdev) | |||
| 220 | goto err; | 220 | goto err; |
| 221 | } | 221 | } |
| 222 | 222 | ||
| 223 | clk_enable(i2s->iis_cclk); | ||
| 224 | |||
| 223 | ret = s3c_i2sv2_probe(pdev, dai, i2s, 0); | 225 | ret = s3c_i2sv2_probe(pdev, dai, i2s, 0); |
| 224 | if (ret) | 226 | if (ret) |
| 225 | goto err_clk; | 227 | goto err_clk; |
diff --git a/sound/usb/usbaudio.h b/sound/usb/usbaudio.h index 8e7f78941ba6..e9a3a9dca15c 100644 --- a/sound/usb/usbaudio.h +++ b/sound/usb/usbaudio.h | |||
| @@ -210,7 +210,7 @@ struct snd_usb_midi_endpoint_info { | |||
| 210 | /* | 210 | /* |
| 211 | */ | 211 | */ |
| 212 | 212 | ||
| 213 | #define combine_word(s) ((*s) | ((unsigned int)(s)[1] << 8)) | 213 | #define combine_word(s) ((*(s)) | ((unsigned int)(s)[1] << 8)) |
| 214 | #define combine_triple(s) (combine_word(s) | ((unsigned int)(s)[2] << 16)) | 214 | #define combine_triple(s) (combine_word(s) | ((unsigned int)(s)[2] << 16)) |
| 215 | #define combine_quad(s) (combine_triple(s) | ((unsigned int)(s)[3] << 24)) | 215 | #define combine_quad(s) (combine_triple(s) | ((unsigned int)(s)[3] << 24)) |
| 216 | 216 | ||
