aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-03-30 13:59:52 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-03-30 13:59:52 -0400
commit48a46752a9a43c9bd106cc9798ee511feef5b7e6 (patch)
treece6c93ff9197bfa8cc3b65f57e6e5fa69afe61fe /sound/pci
parent59f2fe326666002f8387fb434a871815d3535f40 (diff)
parentc578ae0026da81a589245ee08e0fd1b1d8a55f4e (diff)
Merge tag 'sound-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound fixes from Takashi Iwai: "A collection of small fixes for 3.4-rc1, including - mic-recording regression fix for Realtek codec - clean-up of dmaengine parameter mess - WM8894 calibration tweak - minor fixes for asihpi and some bool module parms" * tag 'sound-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: ALSA: fix isa/opti9xx module param type sound: fix oss/msnd_pinnacle module param type ALSA: asihpi - fix return type of hpios_locked_mem_alloc() ASoC: dmaengine_pcm: use dmaengine cyclic wrapper ASoC: Add extra parameter to device_prep_dma_cyclic ALSA: hda/realtek - Fix ADC assignment with a shared HP/Mic pin ASoC: wm8994: Update WM8994 DCS calibration
Diffstat (limited to 'sound/pci')
-rw-r--r--sound/pci/asihpi/hpi_internal.h2
-rw-r--r--sound/pci/asihpi/hpios.c2
-rw-r--r--sound/pci/hda/patch_realtek.c11
3 files changed, 9 insertions, 6 deletions
diff --git a/sound/pci/asihpi/hpi_internal.h b/sound/pci/asihpi/hpi_internal.h
index 4cc315daeda0..8c63200cf339 100644
--- a/sound/pci/asihpi/hpi_internal.h
+++ b/sound/pci/asihpi/hpi_internal.h
@@ -42,7 +42,7 @@ On error *pLockedMemHandle marked invalid, non-zero returned.
42If this function succeeds, then HpiOs_LockedMem_GetVirtAddr() and 42If this function succeeds, then HpiOs_LockedMem_GetVirtAddr() and
43HpiOs_LockedMem_GetPyhsAddr() will always succed on the returned handle. 43HpiOs_LockedMem_GetPyhsAddr() will always succed on the returned handle.
44*/ 44*/
45u16 hpios_locked_mem_alloc(struct consistent_dma_area *p_locked_mem_handle, 45int hpios_locked_mem_alloc(struct consistent_dma_area *p_locked_mem_handle,
46 /**< memory handle */ 46 /**< memory handle */
47 u32 size, /**< Size in bytes to allocate */ 47 u32 size, /**< Size in bytes to allocate */
48 struct pci_dev *p_os_reference 48 struct pci_dev *p_os_reference
diff --git a/sound/pci/asihpi/hpios.c b/sound/pci/asihpi/hpios.c
index 2d7d1c2e1d0d..87f4385fe8c7 100644
--- a/sound/pci/asihpi/hpios.c
+++ b/sound/pci/asihpi/hpios.c
@@ -43,7 +43,7 @@ void hpios_delay_micro_seconds(u32 num_micro_sec)
43 43
44On error, return -ENOMEM, and *pMemArea.size = 0 44On error, return -ENOMEM, and *pMemArea.size = 0
45*/ 45*/
46u16 hpios_locked_mem_alloc(struct consistent_dma_area *p_mem_area, u32 size, 46int hpios_locked_mem_alloc(struct consistent_dma_area *p_mem_area, u32 size,
47 struct pci_dev *pdev) 47 struct pci_dev *pdev)
48{ 48{
49 /*?? any benefit in using managed dmam_alloc_coherent? */ 49 /*?? any benefit in using managed dmam_alloc_coherent? */
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 8ea2fd654327..9917e55d6f11 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -2717,9 +2717,6 @@ static int alc_auto_fill_adc_caps(struct hda_codec *codec)
2717 int max_nums = ARRAY_SIZE(spec->private_adc_nids); 2717 int max_nums = ARRAY_SIZE(spec->private_adc_nids);
2718 int i, nums = 0; 2718 int i, nums = 0;
2719 2719
2720 if (spec->shared_mic_hp)
2721 max_nums = 1; /* no multi streams with the shared HP/mic */
2722
2723 nid = codec->start_nid; 2720 nid = codec->start_nid;
2724 for (i = 0; i < codec->num_nodes; i++, nid++) { 2721 for (i = 0; i < codec->num_nodes; i++, nid++) {
2725 hda_nid_t src; 2722 hda_nid_t src;
@@ -4076,6 +4073,7 @@ static void alc_remove_invalid_adc_nids(struct hda_codec *codec)
4076 if (spec->dyn_adc_switch) 4073 if (spec->dyn_adc_switch)
4077 return; 4074 return;
4078 4075
4076 again:
4079 nums = 0; 4077 nums = 0;
4080 for (n = 0; n < spec->num_adc_nids; n++) { 4078 for (n = 0; n < spec->num_adc_nids; n++) {
4081 hda_nid_t cap = spec->private_capsrc_nids[n]; 4079 hda_nid_t cap = spec->private_capsrc_nids[n];
@@ -4096,6 +4094,11 @@ static void alc_remove_invalid_adc_nids(struct hda_codec *codec)
4096 if (!nums) { 4094 if (!nums) {
4097 /* check whether ADC-switch is possible */ 4095 /* check whether ADC-switch is possible */
4098 if (!alc_check_dyn_adc_switch(codec)) { 4096 if (!alc_check_dyn_adc_switch(codec)) {
4097 if (spec->shared_mic_hp) {
4098 spec->shared_mic_hp = 0;
4099 spec->private_imux[0].num_items = 1;
4100 goto again;
4101 }
4099 printk(KERN_WARNING "hda_codec: %s: no valid ADC found;" 4102 printk(KERN_WARNING "hda_codec: %s: no valid ADC found;"
4100 " using fallback 0x%x\n", 4103 " using fallback 0x%x\n",
4101 codec->chip_name, spec->private_adc_nids[0]); 4104 codec->chip_name, spec->private_adc_nids[0]);
@@ -4113,7 +4116,7 @@ static void alc_remove_invalid_adc_nids(struct hda_codec *codec)
4113 4116
4114 if (spec->auto_mic) 4117 if (spec->auto_mic)
4115 alc_auto_mic_check_imux(codec); /* check auto-mic setups */ 4118 alc_auto_mic_check_imux(codec); /* check auto-mic setups */
4116 else if (spec->input_mux->num_items == 1) 4119 else if (spec->input_mux->num_items == 1 || spec->shared_mic_hp)
4117 spec->num_adc_nids = 1; /* reduce to a single ADC */ 4120 spec->num_adc_nids = 1; /* reduce to a single ADC */
4118} 4121}
4119 4122