From 6c1080c1ea0ecdd541dac25e6550449390935db6 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Wed, 4 Jan 2006 12:15:07 +0100 Subject: [ALSA] via82xx - Add dxs_support for ASUS mobo Modules: VIA82xx driver Add a dxs_support entry for ASUS mobo. Signed-off-by: Takashi Iwai diff --git a/sound/pci/via82xx.c b/sound/pci/via82xx.c index ed26a15..9188a9f 100644 --- a/sound/pci/via82xx.c +++ b/sound/pci/via82xx.c @@ -2340,6 +2340,7 @@ static int __devinit check_dxs_list(struct pci_dev *pci) { .subvendor = 0x1043, .subdevice = 0x80b0, .action = VIA_DXS_NO_VRA }, /* ASUS A7V600 & K8V*/ { .subvendor = 0x1043, .subdevice = 0x810d, .action = VIA_DXS_SRC }, /* ASUS */ { .subvendor = 0x1043, .subdevice = 0x812a, .action = VIA_DXS_SRC }, /* ASUS A8V Deluxe */ + { .subvendor = 0x1043, .subdevice = 0x8174, .action = VIA_DXS_SRC }, /* ASUS */ { .subvendor = 0x1071, .subdevice = 0x8375, .action = VIA_DXS_NO_VRA }, /* Vobis/Yakumo/Mitac notebook */ { .subvendor = 0x1071, .subdevice = 0x8399, .action = VIA_DXS_NO_VRA }, /* Umax AB 595T (VIA K8N800A - VT8237) */ { .subvendor = 0x10cf, .subdevice = 0x118e, .action = VIA_DXS_ENABLE }, /* FSC laptop */ -- cgit v0.10.2 From d82ed2ffc2839413c20b41a271a4d8db12b0683c Mon Sep 17 00:00:00 2001 From: Ulrich Mueller Date: Wed, 4 Jan 2006 12:21:11 +0100 Subject: [ALSA] intel8x0 - Fix duplicate ac97_quirks entry Modules: Intel8x0 driver in recent -mm kernels additional quirks for ac97 hardware in HP laptops have been added. However, now the list in intel8x0.c contains a duplicate, since the HP nx6110 and nc6120 have identical subdevice ids. This was introduced in -mm1 by the following patch: add-new-quirk-for-devices-with-mute-leds-and-separate-headphone-volume.patch Since the HP nx6110 and nc6120 are almost identical, both entries should really be combined, as in the following patch. I have checked that AC97_TUNE_HP_MUTE_LED is the right thing to do. Signed-off-by: Andrew Morton Signed-off-by: Takashi Iwai diff --git a/sound/pci/intel8x0.c b/sound/pci/intel8x0.c index 5466b1f..2fe2a8a 100644 --- a/sound/pci/intel8x0.c +++ b/sound/pci/intel8x0.c @@ -1847,12 +1847,6 @@ static struct ac97_quirk ac97_quirks[] __devinitdata = { }, { .subvendor = 0x103c, - .subdevice = 0x099c, - .name = "HP nx6110", /* AD1981B */ - .type = AC97_TUNE_HP_ONLY - }, - { - .subvendor = 0x103c, .subdevice = 0x129d, .name = "HP xw8000", .type = AC97_TUNE_HP_ONLY @@ -1866,7 +1860,7 @@ static struct ac97_quirk ac97_quirks[] __devinitdata = { { .subvendor = 0x103c, .subdevice = 0x099c, - .name = "HP nc6120", + .name = "HP nx6110/nc6120", .type = AC97_TUNE_HP_MUTE_LED }, { -- cgit v0.10.2 From 59b1b34f47e6c8ac8f00660db2cd34216819b400 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Wed, 4 Jan 2006 15:06:44 +0100 Subject: [ALSA] Fix compilation without CONFIG_PNP Fix compilation of some ISA drivers without CONFIG_PNP. Signed-off-by: Takashi Iwai diff --git a/sound/isa/cmi8330.c b/sound/isa/cmi8330.c index bd8e238..fd9bb25 100644 --- a/sound/isa/cmi8330.c +++ b/sound/isa/cmi8330.c @@ -109,7 +109,9 @@ module_param_array(wssdma, int, NULL, 0444); MODULE_PARM_DESC(wssdma, "DMA for CMI8330 WSS driver."); static struct platform_device *platform_devices[SNDRV_CARDS]; +#ifdef CONFIG_PNP static int pnp_registered; +#endif #define CMI8330_RMUX3D 16 #define CMI8330_MUTEMUX 17 @@ -672,8 +674,10 @@ static void __init_or_module snd_cmi8330_unregister_all(void) { int i; +#ifdef CONFIG_PNP if (pnp_registered) pnp_unregister_card_driver(&cmi8330_pnpc_driver); +#endif for (i = 0; i < ARRAY_SIZE(platform_devices); ++i) platform_device_unregister(platform_devices[i]); platform_driver_unregister(&snd_cmi8330_driver); @@ -700,11 +704,13 @@ static int __init alsa_card_cmi8330_init(void) cards++; } +#ifdef CONFIG_PNP err = pnp_register_card_driver(&cmi8330_pnpc_driver); if (err >= 0) { pnp_registered = 1; cards += err; } +#endif if (!cards) { #ifdef MODULE diff --git a/sound/isa/cs423x/cs4236.c b/sound/isa/cs423x/cs4236.c index e168333..2bfa68b 100644 --- a/sound/isa/cs423x/cs4236.c +++ b/sound/isa/cs423x/cs4236.c @@ -125,10 +125,12 @@ module_param_array(dma2, int, NULL, 0444); MODULE_PARM_DESC(dma2, "DMA2 # for " IDENT " driver."); static struct platform_device *platform_devices[SNDRV_CARDS]; +#ifdef CONFIG_PNP static int pnpc_registered; #ifdef CS4232 static int pnp_registered; #endif +#endif /* CONFIG_PNP */ struct snd_card_cs4236 { struct snd_cs4231 *chip; @@ -747,12 +749,14 @@ static void __init_or_module snd_cs423x_unregister_all(void) { int i; +#ifdef CONFIG_PNP if (pnpc_registered) pnp_unregister_card_driver(&cs423x_pnpc_driver); #ifdef CS4232 if (pnp_registered) pnp_unregister_driver(&cs4232_pnp_driver); #endif +#endif /* CONFIG_PNP */ for (i = 0; i < ARRAY_SIZE(platform_devices); ++i) platform_device_unregister(platform_devices[i]); platform_driver_unregister(&cs423x_nonpnp_driver); @@ -778,6 +782,7 @@ static int __init alsa_card_cs423x_init(void) platform_devices[i] = device; cards++; } +#ifdef CONFIG_PNP #ifdef CS4232 i = pnp_register_driver(&cs4232_pnp_driver); if (i >= 0) { @@ -790,6 +795,8 @@ static int __init alsa_card_cs423x_init(void) pnpc_registered = 1; cards += i; } +#endif /* CONFIG_PNP */ + if (!cards) { #ifdef MODULE printk(KERN_ERR IDENT " soundcard not found or device busy\n"); diff --git a/sound/isa/es18xx.c b/sound/isa/es18xx.c index bf5de07..08f032b 100644 --- a/sound/isa/es18xx.c +++ b/sound/isa/es18xx.c @@ -1878,9 +1878,9 @@ module_param_array(dma2, int, NULL, 0444); MODULE_PARM_DESC(dma2, "DMA 2 # for ES18xx driver."); static struct platform_device *platform_devices[SNDRV_CARDS]; -static int pnp_registered; #ifdef CONFIG_PNP +static int pnp_registered; static struct pnp_card_device_id snd_audiodrive_pnpids[] = { /* ESS 1868 (integrated on Compaq dual P-Pro motherboard and Genius 18PnP 3D) */ @@ -2209,8 +2209,10 @@ static void __init_or_module snd_es18xx_unregister_all(void) { int i; +#ifdef CONFIG_PNP if (pnp_registered) pnp_unregister_card_driver(&es18xx_pnpc_driver); +#endif for (i = 0; i < ARRAY_SIZE(platform_devices); ++i) platform_device_unregister(platform_devices[i]); platform_driver_unregister(&snd_es18xx_nonpnp_driver); @@ -2237,11 +2239,13 @@ static int __init alsa_card_es18xx_init(void) cards++; } +#ifdef CONFIG_PNP i = pnp_register_card_driver(&es18xx_pnpc_driver); if (i >= 0) { pnp_registered = 1; cards += i; } +#endif if(!cards) { #ifdef MODULE diff --git a/sound/isa/opl3sa2.c b/sound/isa/opl3sa2.c index ca359e0..84ffa8f 100644 --- a/sound/isa/opl3sa2.c +++ b/sound/isa/opl3sa2.c @@ -91,8 +91,10 @@ module_param_array(opl3sa3_ymode, int, NULL, 0444); MODULE_PARM_DESC(opl3sa3_ymode, "Speaker size selection for 3D Enhancement mode: Desktop/Large Notebook/Small Notebook/HiFi."); static struct platform_device *platform_devices[SNDRV_CARDS]; +#ifdef CONFIG_PNP static int pnp_registered; static int pnpc_registered; +#endif /* control ports */ #define OPL3SA2_PM_CTRL 0x01 @@ -929,10 +931,12 @@ static void __init_or_module snd_opl3sa2_unregister_all(void) { int i; +#ifdef CONFIG_PNP if (pnpc_registered) pnp_unregister_card_driver(&opl3sa2_pnpc_driver); if (pnp_registered) pnp_unregister_driver(&opl3sa2_pnp_driver); +#endif for (i = 0; i < ARRAY_SIZE(platform_devices); ++i) platform_device_unregister(platform_devices[i]); platform_driver_unregister(&snd_opl3sa2_nonpnp_driver); @@ -961,6 +965,7 @@ static int __init alsa_card_opl3sa2_init(void) cards++; } +#ifdef CONFIG_PNP err = pnp_register_driver(&opl3sa2_pnp_driver); if (err >= 0) { pnp_registered = 1; @@ -971,6 +976,7 @@ static int __init alsa_card_opl3sa2_init(void) pnpc_registered = 1; cards += err; } +#endif if (!cards) { #ifdef MODULE diff --git a/sound/isa/sscape.c b/sound/isa/sscape.c index 5fb981c..29bba8c 100644 --- a/sound/isa/sscape.c +++ b/sound/isa/sscape.c @@ -69,9 +69,9 @@ module_param_array(dma, int, NULL, 0444); MODULE_PARM_DESC(dma, "DMA # for SoundScape driver."); static struct platform_device *platform_devices[SNDRV_CARDS]; -static int pnp_registered; #ifdef CONFIG_PNP +static int pnp_registered; static struct pnp_card_device_id sscape_pnpids[] = { { .id = "ENS3081", .devs = { { "ENS0000" } } }, { .id = "" } /* end */ @@ -1391,8 +1391,10 @@ static void __init_or_module sscape_unregister_all(void) { int i; +#ifdef CONFIG_PNP if (pnp_registered) pnp_unregister_card_driver(&sscape_pnpc_driver); +#endif for (i = 0; i < ARRAY_SIZE(platform_devices); ++i) platform_device_unregister(platform_devices[i]); platform_driver_unregister(&snd_sscape_driver); @@ -1466,8 +1468,10 @@ static int __init sscape_init(void) ret = sscape_manual_probe(); if (ret < 0) return ret; +#ifdef CONFIG_PNP if (pnp_register_card_driver(&sscape_pnpc_driver) >= 0) pnp_registered = 1; +#endif return 0; } diff --git a/sound/isa/wavefront/wavefront.c b/sound/isa/wavefront/wavefront.c index a6dcb2f..fa3ab96 100644 --- a/sound/isa/wavefront/wavefront.c +++ b/sound/isa/wavefront/wavefront.c @@ -84,10 +84,9 @@ module_param_array(use_cs4232_midi, bool, NULL, 0444); MODULE_PARM_DESC(use_cs4232_midi, "Use CS4232 MPU-401 interface (inaccessibly located inside your computer)"); static struct platform_device *platform_devices[SNDRV_CARDS]; -static int pnp_registered; - #ifdef CONFIG_PNP +static int pnp_registered; static struct pnp_card_device_id snd_wavefront_pnpids[] = { /* Tropez */ @@ -695,8 +694,10 @@ static void __init_or_module snd_wavefront_unregister_all(void) { int i; +#ifdef CONFIG_PNP if (pnp_registered) pnp_unregister_card_driver(&wavefront_pnpc_driver); +#endif for (i = 0; i < ARRAY_SIZE(platform_devices); ++i) platform_device_unregister(platform_devices[i]); platform_driver_unregister(&snd_wavefront_driver); @@ -725,11 +726,13 @@ static int __init alsa_card_wavefront_init(void) cards++; } +#ifdef CONFIG_PNP i = pnp_register_card_driver(&wavefront_pnpc_driver); if (i >= 0) { pnp_registered = 1; cards += i; } +#endif if (!cards) { #ifdef MODULE -- cgit v0.10.2 From 4d7d7596287588a953f450a3f18c5d4587f763d0 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Wed, 4 Jan 2006 16:00:48 +0100 Subject: [ALSA] emu10k1 - Fix silence problems after suspend Modules: EMU10K1/EMU10K2 driver Fix silence problems on some boards after suspend/resume (bug#1674). Signed-off-by: Takashi Iwai diff --git a/sound/pci/emu10k1/emumixer.c b/sound/pci/emu10k1/emumixer.c index 2e86a90..8c912b1 100644 --- a/sound/pci/emu10k1/emumixer.c +++ b/sound/pci/emu10k1/emumixer.c @@ -829,9 +829,9 @@ int __devinit snd_emu10k1_mixer(struct snd_emu10k1 *emu, } if (emu->audigy) { /* set master volume to 0 dB */ - snd_ac97_write(emu->ac97, AC97_MASTER, 0x0000); + snd_ac97_write_cache(emu->ac97, AC97_MASTER, 0x0000); /* set capture source to mic */ - snd_ac97_write(emu->ac97, AC97_REC_SEL, 0x0000); + snd_ac97_write_cache(emu->ac97, AC97_REC_SEL, 0x0000); c = audigy_remove_ctls; } else { /* @@ -844,8 +844,8 @@ int __devinit snd_emu10k1_mixer(struct snd_emu10k1 *emu, snd_emu10k1_ptr_write(emu, AC97SLOT, 0, AC97SLOT_CNTR|AC97SLOT_LFE|AC97SLOT_REAR_LEFT|AC97SLOT_REAR_RIGHT); } /* remove unused AC97 controls */ - snd_ac97_write(emu->ac97, AC97_SURROUND_MASTER, 0x0202); - snd_ac97_write(emu->ac97, AC97_CENTER_LFE_MASTER, 0x0202); + snd_ac97_write_cache(emu->ac97, AC97_SURROUND_MASTER, 0x0202); + snd_ac97_write_cache(emu->ac97, AC97_CENTER_LFE_MASTER, 0x0202); c = emu10k1_remove_ctls; } for (; *c; c++) -- cgit v0.10.2 From 6421776a6f8b8503a88e07b205162842d3f7d702 Mon Sep 17 00:00:00 2001 From: Martin Drab Date: Thu, 5 Jan 2006 18:33:56 +0100 Subject: [ALSA] bt87x - Fix the unability of snd-bt87x to recognize AVerMedia Studio Modules: BT87x driver The patch siply adds the PCI IDs of AVerMedia Studio No. 103, 203, and possibly even other versions with the same PCI IDs to the snd-bt87x driver and sets its default sampling rate to 48 kHz. Signed-off-by: Martin Drab Signed-off-by: Takashi Iwai diff --git a/sound/pci/bt87x.c b/sound/pci/bt87x.c index dc9cd30..aaaa2e0 100644 --- a/sound/pci/bt87x.c +++ b/sound/pci/bt87x.c @@ -781,6 +781,8 @@ static struct pci_device_id snd_bt87x_ids[] = { BT_DEVICE(PCI_DEVICE_ID_BROOKTREE_879, 0x0070, 0x13eb, 32000), /* Viewcast Osprey 200 */ BT_DEVICE(PCI_DEVICE_ID_BROOKTREE_878, 0x0070, 0xff01, 44100), + /* AVerMedia Studio No. 103, 203, ...? */ + BT_DEVICE(PCI_DEVICE_ID_BROOKTREE_878, 0x1461, 0x0003, 48000), { } }; MODULE_DEVICE_TABLE(pci, snd_bt87x_ids); -- cgit v0.10.2 From 7eae36fbd5ea9db3d3fe0d671199121be782a5b3 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 5 Jan 2006 18:40:56 +0100 Subject: [ALSA] emu10k1 - Fix the confliction of 'Front' control Modules: EMU10K1/EMU10K2 driver Fix the confliction of 'Front' controls on models with STAC9758 codec. Signed-off-by: Takashi Iwai diff --git a/sound/pci/emu10k1/emumixer.c b/sound/pci/emu10k1/emumixer.c index 8c912b1..2a9d12d 100644 --- a/sound/pci/emu10k1/emumixer.c +++ b/sound/pci/emu10k1/emumixer.c @@ -759,6 +759,8 @@ int __devinit snd_emu10k1_mixer(struct snd_emu10k1 *emu, "Master Mono Playback Volume", "PCM Out Path & Mute", "Mono Output Select", + "Front Playback Switch", + "Front Playback Volume", "Surround Playback Switch", "Surround Playback Volume", "Center Playback Switch", -- cgit v0.10.2 From d0bd41e289768ff851066f1e952ae4c802c4dca7 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Mon, 9 Jan 2006 12:36:53 +0100 Subject: [ALSA] via82xx - Add dxs_support entry Modules: VIA82xx driver Added a dxs_support entry for Jetway K8M8MS. Signed-off-by: Takashi Iwai diff --git a/sound/pci/via82xx.c b/sound/pci/via82xx.c index 9188a9f..8664bc4 100644 --- a/sound/pci/via82xx.c +++ b/sound/pci/via82xx.c @@ -2372,6 +2372,7 @@ static int __devinit check_dxs_list(struct pci_dev *pci) { .subvendor = 0x161f, .subdevice = 0x2032, .action = VIA_DXS_48K }, /* m680x machines */ { .subvendor = 0x1631, .subdevice = 0xe004, .action = VIA_DXS_ENABLE }, /* Easy Note 3174, Packard Bell */ { .subvendor = 0x1695, .subdevice = 0x3005, .action = VIA_DXS_ENABLE }, /* EPoX EP-8K9A */ + { .subvendor = 0x16f3, .subdevice = 0x6405, .action = VIA_DXS_SRC }, /* Jetway K8M8MS */ { .subvendor = 0x1849, .subdevice = 0x3059, .action = VIA_DXS_NO_VRA }, /* ASRock K7VM2 */ { .subvendor = 0x1849, .subdevice = 0x9761, .action = VIA_DXS_SRC }, /* ASRock mobo(?) */ { .subvendor = 0x1919, .subdevice = 0x200a, .action = VIA_DXS_NO_VRA }, /* Soltek SL-K8Tpro-939 */ -- cgit v0.10.2 From d99e98891ccde745c6c25b7a11a139123e74db4c Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Mon, 9 Jan 2006 16:44:46 +0100 Subject: [ALSA] Remove BKL from sound/core/info.c Modules: ALSA Core Remove BKL from sound/core/info.c Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Takashi Iwai diff --git a/sound/core/info.c b/sound/core/info.c index ae88539..af123e3 100644 --- a/sound/core/info.c +++ b/sound/core/info.c @@ -444,8 +444,8 @@ static unsigned int snd_info_entry_poll(struct file *file, poll_table * wait) return mask; } -static inline int _snd_info_entry_ioctl(struct inode *inode, struct file *file, - unsigned int cmd, unsigned long arg) +static long snd_info_entry_ioctl(struct file *file, unsigned int cmd, + unsigned long arg) { struct snd_info_private_data *data; struct snd_info_entry *entry; @@ -465,17 +465,6 @@ static inline int _snd_info_entry_ioctl(struct inode *inode, struct file *file, return -ENOTTY; } -/* FIXME: need to unlock BKL to allow preemption */ -static int snd_info_entry_ioctl(struct inode *inode, struct file *file, - unsigned int cmd, unsigned long arg) -{ - int err; - unlock_kernel(); - err = _snd_info_entry_ioctl(inode, file, cmd, arg); - lock_kernel(); - return err; -} - static int snd_info_entry_mmap(struct file *file, struct vm_area_struct *vma) { struct inode *inode = file->f_dentry->d_inode; @@ -499,15 +488,15 @@ static int snd_info_entry_mmap(struct file *file, struct vm_area_struct *vma) static struct file_operations snd_info_entry_operations = { - .owner = THIS_MODULE, - .llseek = snd_info_entry_llseek, - .read = snd_info_entry_read, - .write = snd_info_entry_write, - .poll = snd_info_entry_poll, - .ioctl = snd_info_entry_ioctl, - .mmap = snd_info_entry_mmap, - .open = snd_info_entry_open, - .release = snd_info_entry_release, + .owner = THIS_MODULE, + .llseek = snd_info_entry_llseek, + .read = snd_info_entry_read, + .write = snd_info_entry_write, + .poll = snd_info_entry_poll, + .unlocked_ioctl = snd_info_entry_ioctl, + .mmap = snd_info_entry_mmap, + .open = snd_info_entry_open, + .release = snd_info_entry_release, }; /** -- cgit v0.10.2 From be3cd57aa65c366e479d6a21a5d49a08117b5d77 Mon Sep 17 00:00:00 2001 From: James Courtier-Dutton Date: Mon, 9 Jan 2006 21:20:56 +0100 Subject: [ALSA] snd-ca0106: Fixed ALSA bug#1600 Modules: CA0106 driver Description: Shuttle XPC SD11G5 which has an onboard Creative Labs Sound Blaster Live! 24-bit EAX high-definition 7.1 audio processor'. Fixes ALSA bug#1600 Signed-off-by: James Courtier-Dutton diff --git a/sound/pci/ca0106/ca0106_main.c b/sound/pci/ca0106/ca0106_main.c index 6ed7c0b..9477838 100644 --- a/sound/pci/ca0106/ca0106_main.c +++ b/sound/pci/ca0106/ca0106_main.c @@ -199,7 +199,8 @@ static struct snd_ca0106_details ca0106_chip_details[] = { .name = "MSI K8N Diamond MB [SB0438]", .gpio_type = 1, .i2c_adc = 1 } , - /* Shuttle XPC SD31P which has an onboard Creative Labs Sound Blaster Live! 24-bit EAX + /* Shuttle XPC SD31P which has an onboard Creative Labs + * Sound Blaster Live! 24-bit EAX * high-definition 7.1 audio processor". * Added using info from andrewvegan in alsa bug #1298 */ @@ -207,6 +208,15 @@ static struct snd_ca0106_details ca0106_chip_details[] = { .name = "Shuttle XPC SD31P [SD31P]", .gpio_type = 1, .i2c_adc = 1 } , + /* Shuttle XPC SD11G5 which has an onboard Creative Labs + * Sound Blaster Live! 24-bit EAX + * high-definition 7.1 audio processor". + * Fixes ALSA bug#1600 + */ + { .serial = 0x30411297, + .name = "Shuttle XPC SD11G5 [SD11G5]", + .gpio_type = 1, + .i2c_adc = 1 } , { .serial = 0, .name = "AudigyLS [Unknown]" } }; -- cgit v0.10.2 From d2981393615f9a7adb8223a2ab1e0d7423d5c9dd Mon Sep 17 00:00:00 2001 From: Jason Gaston Date: Tue, 10 Jan 2006 11:07:37 +0100 Subject: [ALSA] hda-intel - patch for Intel ICH8 Modules: HDA Intel driver This patch adds the Intel ICH8 HD Audio DID to the hda_intel.c audio driver. Signed-off-by: Jason Gaston Signed-off-by: Takashi Iwai diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c index a983deb..fd12b69 100644 --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c @@ -75,6 +75,7 @@ MODULE_SUPPORTED_DEVICE("{{Intel, ICH6}," "{Intel, ICH6M}," "{Intel, ICH7}," "{Intel, ESB2}," + "{Intel, ICH8}," "{ATI, SB450}," "{VIA, VT8251}," "{VIA, VT8237A}," @@ -1586,6 +1587,7 @@ static struct pci_device_id azx_ids[] = { { 0x8086, 0x2668, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_ICH }, /* ICH6 */ { 0x8086, 0x27d8, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_ICH }, /* ICH7 */ { 0x8086, 0x269a, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_ICH }, /* ESB2 */ + { 0x8086, 0x284b, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_ICH }, /* ICH8 */ { 0x1002, 0x437b, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_ATI }, /* ATI SB450 */ { 0x1106, 0x3288, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_VIA }, /* VIA VT8251/VT8237A */ { 0x1039, 0x7502, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_SIS }, /* SIS966 */ -- cgit v0.10.2 From 8937fd88558d5a741d6ed29d5f8c327646a4f1db Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Tue, 10 Jan 2006 11:14:49 +0100 Subject: [ALSA] pcxhr - Fix the sample rate changes Modules: Digigram PCXHR driver Fix the hardware set up when the sample rate is changed multiple times. Signed-off-by: Takashi Iwai diff --git a/sound/pci/pcxhr/pcxhr.c b/sound/pci/pcxhr/pcxhr.c index b8c0853..57fe953 100644 --- a/sound/pci/pcxhr/pcxhr.c +++ b/sound/pci/pcxhr/pcxhr.c @@ -744,13 +744,14 @@ static int pcxhr_prepare(struct snd_pcm_substream *subs) /* only the first stream can choose the sample rate */ /* the further opened streams will be limited to its frequency (see open) */ /* set the clock only once (first stream) */ - if (mgr->sample_rate == 0) { + if (mgr->sample_rate != subs->runtime->rate) { err = pcxhr_set_clock(mgr, subs->runtime->rate); if (err) break; + if (mgr->sample_rate == 0) + /* start the DSP-timer */ + err = pcxhr_hardware_timer(mgr, 1); mgr->sample_rate = subs->runtime->rate; - - err = pcxhr_hardware_timer(mgr, 1); /* start the DSP-timer */ } } while(0); /* do only once (so we can use break instead of goto) */ -- cgit v0.10.2 From b14e77e613a104c78ab455c0109b566dab430de6 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Wed, 11 Jan 2006 18:10:50 +0100 Subject: [ALSA] hda-codec - Add model entry for Sony VAIO Modules: HDA Codec driver Added an ALC260 model entry (basic) for Sony VAIO. Signed-off-by: Takashi Iwai diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index ad9e501..543980d 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -2945,6 +2945,8 @@ static int alc260_auto_init(struct hda_codec *codec) */ static struct hda_board_config alc260_cfg_tbl[] = { { .modelname = "basic", .config = ALC260_BASIC }, + { .pci_subvendor = 0x104d, .pci_subdevice = 0x81bb, + .config = ALC260_BASIC }, /* Sony VAIO */ { .modelname = "hp", .config = ALC260_HP }, { .pci_subvendor = 0x103c, .pci_subdevice = 0x3010, .config = ALC260_HP }, { .pci_subvendor = 0x103c, .pci_subdevice = 0x3011, .config = ALC260_HP }, -- cgit v0.10.2 From 128a46a55da81e563116e99e08e295fda41a145b Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Wed, 11 Jan 2006 18:15:43 +0100 Subject: [ALSA] ac97 - Suppress jack sense controls for Thinkpads Modules: AC97 Codec Added a blacklist to suppress to create jack sense controls. These controls must be always off on some devices (e.g. Thinkpad). Signed-off-by: Takashi Iwai diff --git a/sound/pci/ac97/ac97_patch.c b/sound/pci/ac97/ac97_patch.c index 4aa5fdc..bccce44 100644 --- a/sound/pci/ac97/ac97_patch.c +++ b/sound/pci/ac97/ac97_patch.c @@ -1621,8 +1621,27 @@ static const struct snd_kcontrol_new snd_ac97_ad1981x_jack_sense[] = { AC97_SINGLE("Line Jack Sense", AC97_AD_JACK_SPDIF, 12, 1, 0), }; +/* black list to avoid HP/Line jack-sense controls + * (SS vendor << 16 | device) + */ +static unsigned int ad1981_jacks_blacklist[] = { + 0x10140554, /* Thinkpad T42p/R50p */ + 0 /* end */ +}; + +static int check_list(struct snd_ac97 *ac97, const unsigned int *list) +{ + u32 subid = ((u32)ac97->subsystem_vendor << 16) | ac97->subsystem_device; + for (; *list; list++) + if (*list == subid) + return 1; + return 0; +} + static int patch_ad1981a_specific(struct snd_ac97 * ac97) { + if (check_list(ac97, ad1981_jacks_blacklist)) + return 0; return patch_build_controls(ac97, snd_ac97_ad1981x_jack_sense, ARRAY_SIZE(snd_ac97_ad1981x_jack_sense)); } @@ -1635,22 +1654,26 @@ static struct snd_ac97_build_ops patch_ad1981a_build_ops = { #endif }; +/* white list to enable HP jack-sense bits + * (SS vendor << 16 | device) + */ +static unsigned int ad1981_jacks_whitelist[] = { + 0x0e11005a, /* HP nc4000/4010 */ + 0x103c0890, /* HP nc6000 */ + 0x103c0938, /* HP nc4220 */ + 0x103c099c, /* HP nx6110 */ + 0x103c0944, /* HP nc6220 */ + 0x103c0934, /* HP nc8220 */ + 0x103c006d, /* HP nx9105 */ + 0x17340088, /* FSC Scenic-W */ + 0 /* end */ +}; + static void check_ad1981_hp_jack_sense(struct snd_ac97 *ac97) { - u32 subid = ((u32)ac97->subsystem_vendor << 16) | ac97->subsystem_device; - switch (subid) { - case 0x0e11005a: /* HP nc4000/4010 */ - case 0x103c0890: /* HP nc6000 */ - case 0x103c0938: /* HP nc4220 */ - case 0x103c099c: /* HP nx6110 */ - case 0x103c0944: /* HP nc6220 */ - case 0x103c0934: /* HP nc8220 */ - case 0x103c006d: /* HP nx9105 */ - case 0x17340088: /* FSC Scenic-W */ + if (check_list(ac97, ad1981_jacks_whitelist)) /* enable headphone jack sense */ snd_ac97_update_bits(ac97, AC97_AD_JACK_SPDIF, 1<<11, 1<<11); - break; - } } int patch_ad1981a(struct snd_ac97 *ac97) @@ -1672,6 +1695,8 @@ static int patch_ad1981b_specific(struct snd_ac97 *ac97) if ((err = patch_build_controls(ac97, &snd_ac97_ad198x_2cmic, 1)) < 0) return err; + if (check_list(ac97, ad1981_jacks_blacklist)) + return 0; return patch_build_controls(ac97, snd_ac97_ad1981x_jack_sense, ARRAY_SIZE(snd_ac97_ad1981x_jack_sense)); } -- cgit v0.10.2 From 54c63cfc153c6909a5d5dbe6072e8704b091f30e Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Thu, 12 Jan 2006 07:56:40 +0100 Subject: [ALSA] bt87x - fix detection of unknown card Modules: BT87x driver Signed-off-by: Jaroslav Kysela diff --git a/sound/pci/bt87x.c b/sound/pci/bt87x.c index aaaa2e0..c840a4c 100644 --- a/sound/pci/bt87x.c +++ b/sound/pci/bt87x.c @@ -810,7 +810,7 @@ static int __devinit snd_bt87x_detect_card(struct pci_dev *pci) const struct pci_device_id *supported; supported = pci_match_device(&driver, pci); - if (supported) + if (supported && supported->driver_data > 0) return supported->driver_data; for (i = 0; i < ARRAY_SIZE(blacklist); ++i) -- cgit v0.10.2 From 4b2849283461a64c6d8cc6c7e72c62d7b4d91b43 Mon Sep 17 00:00:00 2001 From: Clemens Ladisch Date: Thu, 12 Jan 2006 08:17:49 +0100 Subject: [ALSA] usb-audio: don't use empty packets at start of playback Modules: USB generic driver Some widespread USB interface chips with adaptive iso endpoints hang after receiving a series of empty packets when they expect data (ALSA bug#1585). To avoid this, we have to send packets containing silence (zero samples) instead. Signed-off-by: Clemens Ladisch diff --git a/sound/usb/usbaudio.c b/sound/usb/usbaudio.c index a1bd804..9572973 100644 --- a/sound/usb/usbaudio.c +++ b/sound/usb/usbaudio.c @@ -478,22 +478,38 @@ static int retire_playback_sync_urb_hs(struct snd_usb_substream *subs, /* * Prepare urb for streaming before playback starts. * - * We don't care about (or have) any data, so we just send a transfer delimiter. + * We don't yet have data, so we send a frame of silence. */ static int prepare_startup_playback_urb(struct snd_usb_substream *subs, struct snd_pcm_runtime *runtime, struct urb *urb) { - unsigned int i; + unsigned int i, offs, counts; struct snd_urb_ctx *ctx = urb->context; + int stride = runtime->frame_bits >> 3; + offs = 0; urb->dev = ctx->subs->dev; urb->number_of_packets = subs->packs_per_ms; for (i = 0; i < subs->packs_per_ms; ++i) { - urb->iso_frame_desc[i].offset = 0; - urb->iso_frame_desc[i].length = 0; + /* calculate the size of a packet */ + if (subs->fill_max) + counts = subs->maxframesize; /* fixed */ + else { + subs->phase = (subs->phase & 0xffff) + + (subs->freqm << subs->datainterval); + counts = subs->phase >> 16; + if (counts > subs->maxframesize) + counts = subs->maxframesize; + } + urb->iso_frame_desc[i].offset = offs * stride; + urb->iso_frame_desc[i].length = counts * stride; + offs += counts; } - urb->transfer_buffer_length = 0; + urb->transfer_buffer_length = offs * stride; + memset(urb->transfer_buffer, + subs->cur_audiofmt->format == SNDRV_PCM_FORMAT_U8 ? 0x80 : 0, + offs * stride); return 0; } -- cgit v0.10.2 From 363fa1d615d93fe047659c16ff3277d78302b2eb Mon Sep 17 00:00:00 2001 From: Rene Rebe Date: Thu, 12 Jan 2006 11:42:47 +0100 Subject: [ALSA] AMD cs5536 ID for cs5535audio Modules: CS5535 driver Added AMD CS5536 to the cs5535audio driver. Signed-off-by: Rene Rebe Signed-off-by: Andrew Morton Signed-off-by: Takashi Iwai diff --git a/sound/pci/cs5535audio/cs5535audio.c b/sound/pci/cs5535audio/cs5535audio.c index f36ede8..02e3721 100644 --- a/sound/pci/cs5535audio/cs5535audio.c +++ b/sound/pci/cs5535audio/cs5535audio.c @@ -46,8 +46,10 @@ static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; static int enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE_PNP; static struct pci_device_id snd_cs5535audio_ids[] = { - { PCI_VENDOR_ID_NS, PCI_DEVICE_ID_NS_CS5535_AUDIO, PCI_ANY_ID, - PCI_ANY_ID, 0, 0, 0, }, + { PCI_VENDOR_ID_NS, PCI_DEVICE_ID_NS_CS5535_AUDIO, + PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, + { PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_CS5536_AUDIO, + PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, {} }; -- cgit v0.10.2 From da79e44df4fff22c7f815687ea210b2324b3507c Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 12 Jan 2006 11:45:51 +0100 Subject: [ALSA] ac97 - Fix CLFE channel setting of ALC850 Modules: AC97 Codec Fix CLFE channel setting of ALC850 (ALSA bug#1731). Signed-off-by: Takashi Iwai diff --git a/sound/pci/ac97/ac97_patch.c b/sound/pci/ac97/ac97_patch.c index bccce44..a444a78 100644 --- a/sound/pci/ac97/ac97_patch.c +++ b/sound/pci/ac97/ac97_patch.c @@ -2235,9 +2235,9 @@ static void alc850_update_jacks(struct snd_ac97 *ac97) /* Vref disable (bit12), 1kOhm (bit13) */ snd_ac97_update_bits(ac97, AC97_ALC850_MISC1, (1<<12)|(1<<13), shared ? (1<<12) : (1<<13)); - /* MIC-IN = 1, CENTER-LFE = 2 */ + /* MIC-IN = 1, CENTER-LFE = 5 */ snd_ac97_update_bits(ac97, AC97_ALC850_JACK_SELECT, 7 << 4, - shared ? (2<<4) : (1<<4)); + shared ? (5<<4) : (1<<4)); } static const struct snd_kcontrol_new snd_ac97_controls_alc850[] = { -- cgit v0.10.2 From fc80a2027afc31e8447a0691ea1279166ce5d69f Mon Sep 17 00:00:00 2001 From: Clemens Ladisch Date: Fri, 13 Jan 2006 07:41:45 +0100 Subject: [ALSA] ymfpci: fix SPDIF sample rate information Modules: YMFPCI driver Set the (read only) sample rate field in the IEC958 mixer controls to 48 kHz (instead of 44.1 kHz) because that is the rate actually supported by the hardware. Signed-off-by: Clemens Ladisch diff --git a/sound/pci/ymfpci/ymfpci_main.c b/sound/pci/ymfpci/ymfpci_main.c index 1dfc723..a1aa74b 100644 --- a/sound/pci/ymfpci/ymfpci_main.c +++ b/sound/pci/ymfpci/ymfpci_main.c @@ -1229,6 +1229,7 @@ static int snd_ymfpci_spdif_default_get(struct snd_kcontrol *kcontrol, spin_lock_irq(&chip->reg_lock); ucontrol->value.iec958.status[0] = (chip->spdif_bits >> 0) & 0xff; ucontrol->value.iec958.status[1] = (chip->spdif_bits >> 8) & 0xff; + ucontrol->value.iec958.status[3] = IEC958_AES3_CON_FS_48000; spin_unlock_irq(&chip->reg_lock); return 0; } @@ -1303,6 +1304,7 @@ static int snd_ymfpci_spdif_stream_get(struct snd_kcontrol *kcontrol, spin_lock_irq(&chip->reg_lock); ucontrol->value.iec958.status[0] = (chip->spdif_pcm_bits >> 0) & 0xff; ucontrol->value.iec958.status[1] = (chip->spdif_pcm_bits >> 8) & 0xff; + ucontrol->value.iec958.status[3] = IEC958_AES3_CON_FS_48000; spin_unlock_irq(&chip->reg_lock); return 0; } -- cgit v0.10.2 From 33159378254b67d0080a8d63197e95654b672cf7 Mon Sep 17 00:00:00 2001 From: Clemens Ladisch Date: Fri, 13 Jan 2006 08:11:22 +0100 Subject: [ALSA] usb-audio: fix non-48k sample rates with SB Audigy 2 ZS Modules: USB generic driver On the Audigy 2 ZS, disable all sample rate that are not a multiple of 48 kHz because the others work only with the digital output which is not yet supported. Signed-off-by: Clemens Ladisch diff --git a/sound/usb/usbaudio.c b/sound/usb/usbaudio.c index 9572973..d501338 100644 --- a/sound/usb/usbaudio.c +++ b/sound/usb/usbaudio.c @@ -2493,12 +2493,13 @@ static int parse_audio_format(struct snd_usb_audio *chip, struct audioformat *fp if (err < 0) return err; #if 1 - /* FIXME: temporary hack for extigy/audigy 2 nx */ + /* FIXME: temporary hack for extigy/audigy 2 nx/zs */ /* extigy apparently supports sample rates other than 48k * but not in ordinary way. so we enable only 48k atm. */ if (chip->usb_id == USB_ID(0x041e, 0x3000) || - chip->usb_id == USB_ID(0x041e, 0x3020)) { + chip->usb_id == USB_ID(0x041e, 0x3020) || + chip->usb_id == USB_ID(0x041e, 0x3061)) { if (fmt[3] == USB_FORMAT_TYPE_I && fp->rates != SNDRV_PCM_RATE_48000 && fp->rates != SNDRV_PCM_RATE_96000) -- cgit v0.10.2 From e3183ec9cd98db7800d078768b1c9edc2fd0425f Mon Sep 17 00:00:00 2001 From: Jon Mason Date: Fri, 13 Jan 2006 13:14:53 +0100 Subject: [ALSA] Prevent ALSA trident driver from grabbing pcnet32 hardware Modules: Trident driver Some pcnet32 hardware erroneously has the Vendor ID for Trident. The pcnet32 driver looks for the PCI ethernet class before grabbing the hardware, but the current trident driver does not check against the PCI audio class. This allows the trident driver to claim the pcnet32 hardware. This patch prevents that. Per Jiri Slaby's request, I changed the trident driver to use PCI_DEVICE macro and PCI ID #defines. This patch is untested on Trident 4DWAVE_DX hardware, but has been tested on pcnet32 hardware. Signed-off-by: Jon Mason Signed-off-by: Takashi Iwai diff --git a/sound/pci/trident/trident.c b/sound/pci/trident/trident.c index 2b21df1..b453804 100644 --- a/sound/pci/trident/trident.c +++ b/sound/pci/trident/trident.c @@ -64,9 +64,11 @@ module_param_array(wavetable_size, int, NULL, 0444); MODULE_PARM_DESC(wavetable_size, "Maximum memory size in kB for wavetable synth."); static struct pci_device_id snd_trident_ids[] = { - { 0x1023, 0x2000, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* Trident 4DWave DX PCI Audio */ - { 0x1023, 0x2001, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* Trident 4DWave NX PCI Audio */ - { 0x1039, 0x7018, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* SiS SI7018 PCI Audio */ + {PCI_DEVICE(PCI_VENDOR_ID_TRIDENT, PCI_DEVICE_ID_TRIDENT_4DWAVE_DX), + PCI_CLASS_MULTIMEDIA_AUDIO << 8, 0xffff00, 0}, + {PCI_DEVICE(PCI_VENDOR_ID_TRIDENT, PCI_DEVICE_ID_TRIDENT_4DWAVE_NX), + 0, 0, 0}, + {PCI_DEVICE(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_7018), 0, 0, 0}, { 0, } }; -- cgit v0.10.2 From ec6c8c3b2588261669c1b101338ab4fe43b1b9c0 Mon Sep 17 00:00:00 2001 From: Jon Mason Date: Fri, 13 Jan 2006 13:17:43 +0100 Subject: [ALSA] ali5451: Add PCI_DEVICE and #defines in snd_ali_ids Modules: ALI5451 driver This patch uses #defines for the Vendor ID and Device ID and uses the new PCI_DEVICE macro. Signed-off-by: Jon Mason Signed-off-by: Andrew Morton Signed-off-by: Takashi Iwai diff --git a/sound/pci/ali5451/ali5451.c b/sound/pci/ali5451/ali5451.c index bc4d1ef..e264136 100644 --- a/sound/pci/ali5451/ali5451.c +++ b/sound/pci/ali5451/ali5451.c @@ -279,7 +279,7 @@ struct snd_ali { }; static struct pci_device_id snd_ali_ids[] = { - {0x10b9, 0x5451, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, + {PCI_DEVICE(PCI_VENDOR_ID_AL, PCI_DEVICE_ID_AL_M5451), 0, 0, 0}, {0, } }; MODULE_DEVICE_TABLE(pci, snd_ali_ids); -- cgit v0.10.2 From c9fe51c492fbb0de789a16828749595dc1985610 Mon Sep 17 00:00:00 2001 From: Chris Ball Date: Fri, 13 Jan 2006 13:26:42 +0100 Subject: [ALSA] intel8x0: Add quirk for Optiplex GX270 Modules: Intel8x0 driver This patch adds a quirk entry for the Dell Optiplex GX270, on which the volume is set by the headphone control, not the master control. Signed-off-by: Chris Ball Signed-off-by: Takashi Iwai diff --git a/sound/pci/intel8x0.c b/sound/pci/intel8x0.c index 2fe2a8a..b345894 100644 --- a/sound/pci/intel8x0.c +++ b/sound/pci/intel8x0.c @@ -1805,6 +1805,12 @@ static struct ac97_quirk ac97_quirks[] __devinitdata = { }, { .subvendor = 0x1028, + .subdevice = 0x0151, + .name = "Dell Optiplex GX270", /* AD1981B */ + .type = AC97_TUNE_HP_ONLY + }, + { + .subvendor = 0x1028, .subdevice = 0x0163, .name = "Dell Unknown", /* STAC9750/51 */ .type = AC97_TUNE_HP_ONLY -- cgit v0.10.2 From 0fd1708a199bf55ebf21d611225866955babc1ba Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Fri, 13 Jan 2006 18:46:21 +0100 Subject: [ALSA] hda-codec - Fix capture on Sigmatel STAC92xx codecs Modules: HDA Codec driver Added the missing 'Capture Switch' control for Sigmatel STAC92xx codecs. Signed-off-by: Takashi Iwai diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index 6190384..4f78b58 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c @@ -183,6 +183,7 @@ static struct snd_kcontrol_new stac922x_mixer[] = { .put = stac92xx_mux_enum_put, }, HDA_CODEC_VOLUME("Capture Volume", 0x17, 0x0, HDA_INPUT), + HDA_CODEC_MUTE("Capture Switch", 0x17, 0x0, HDA_INPUT), HDA_CODEC_VOLUME("Mux Capture Volume", 0x12, 0x0, HDA_OUTPUT), { } /* end */ }; -- cgit v0.10.2 From cacd3347ce5b5ee4fce90c2627d80bf0ac15dec0 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Mon, 16 Jan 2006 13:00:50 +0100 Subject: [ALSA] via82xx - Add dxs_support entry for EpoX 9HEAI Modules: VIA82xx driver Added the dxs_support entry for EpoX 9HEAI. Signed-off-by: Takashi Iwai diff --git a/sound/pci/via82xx.c b/sound/pci/via82xx.c index 8664bc4..d59fe3e 100644 --- a/sound/pci/via82xx.c +++ b/sound/pci/via82xx.c @@ -2372,6 +2372,7 @@ static int __devinit check_dxs_list(struct pci_dev *pci) { .subvendor = 0x161f, .subdevice = 0x2032, .action = VIA_DXS_48K }, /* m680x machines */ { .subvendor = 0x1631, .subdevice = 0xe004, .action = VIA_DXS_ENABLE }, /* Easy Note 3174, Packard Bell */ { .subvendor = 0x1695, .subdevice = 0x3005, .action = VIA_DXS_ENABLE }, /* EPoX EP-8K9A */ + { .subvendor = 0x1695, .subdevice = 0x300e, .action = VIA_DXS_SRC }, /* EPoX 9HEAI */ { .subvendor = 0x16f3, .subdevice = 0x6405, .action = VIA_DXS_SRC }, /* Jetway K8M8MS */ { .subvendor = 0x1849, .subdevice = 0x3059, .action = VIA_DXS_NO_VRA }, /* ASRock K7VM2 */ { .subvendor = 0x1849, .subdevice = 0x9761, .action = VIA_DXS_SRC }, /* ASRock mobo(?) */ -- cgit v0.10.2 From 7113d680d4824dfd4db43bc9880cdc98bcc309b9 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Mon, 16 Jan 2006 13:55:48 +0100 Subject: [ALSA] au88x0 - Fix a compile warning Modules: au88x0 driver Fixed an uninitialized variable. Signed-off-by: Takashi Iwai diff --git a/sound/pci/au88x0/au88x0_eq.c b/sound/pci/au88x0/au88x0_eq.c index 13bc8ed..c8280f8 100644 --- a/sound/pci/au88x0/au88x0_eq.c +++ b/sound/pci/au88x0/au88x0_eq.c @@ -849,7 +849,7 @@ static int snd_vortex_peaks_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { vortex_t *vortex = snd_kcontrol_chip(kcontrol); - int i, count; + int i, count = 0; u16 peaks[20]; vortex_Eqlzr_GetAllPeaks(vortex, peaks, &count); -- cgit v0.10.2 From 2f25b7feab257bae406f1edb44438a347a1cc727 Mon Sep 17 00:00:00 2001 From: Andrew Morton Date: Tue, 17 Jan 2006 18:31:42 +0100 Subject: [ALSA] Fix a typo in snd_assert() Modules: CS46xx driver Reported by in http://bugzilla.kernel.org/show_bug.cgi?id=5903 Signed-off-by: Andrew Morton Signed-off-by: Takashi Iwai diff --git a/sound/pci/cs46xx/dsp_spos_scb_lib.c b/sound/pci/cs46xx/dsp_spos_scb_lib.c index 509aa2b..d4e0fb3 100644 --- a/sound/pci/cs46xx/dsp_spos_scb_lib.c +++ b/sound/pci/cs46xx/dsp_spos_scb_lib.c @@ -675,7 +675,7 @@ cs46xx_dsp_create_src_task_scb(struct snd_cs46xx * chip, char * scb_name, if (pass_through) { /* wont work with any other rate than the native DSP rate */ - snd_assert (rate = 48000); + snd_assert (rate == 48000); scb = cs46xx_dsp_create_generic_scb(chip,scb_name,(u32 *)&src_task_scb, dest,"DMAREADER",parent_scb, -- cgit v0.10.2 From 62af9905a1f809094f5209ae15d2ce69599a8123 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Fri, 20 Jan 2006 14:03:06 +0100 Subject: [ALSA] opl3sa2 - Fix conflict of driver name on sysfs Modules: OPL3SA2 driver Fix the conflict of driver name 'opl3sa2' on sysfs with OSS driver. Signed-off-by: Takashi Iwai diff --git a/sound/isa/opl3sa2.c b/sound/isa/opl3sa2.c index 84ffa8f..9dc6b20 100644 --- a/sound/isa/opl3sa2.c +++ b/sound/isa/opl3sa2.c @@ -781,7 +781,7 @@ static int snd_opl3sa2_pnp_resume(struct pnp_dev *pdev) #endif static struct pnp_driver opl3sa2_pnp_driver = { - .name = "opl3sa2-pnpbios", + .name = "snd-opl3sa2-pnpbios", .id_table = snd_opl3sa2_pnpbiosids, .probe = snd_opl3sa2_pnp_detect, .remove = __devexit_p(snd_opl3sa2_pnp_remove), @@ -848,7 +848,7 @@ static int snd_opl3sa2_pnp_cresume(struct pnp_card_link *pcard) static struct pnp_card_driver opl3sa2_pnpc_driver = { .flags = PNP_DRIVER_RES_DISABLE, - .name = "opl3sa2", + .name = "snd-opl3sa2-cpnp", .id_table = snd_opl3sa2_pnpids, .probe = snd_opl3sa2_pnp_cdetect, .remove = __devexit_p(snd_opl3sa2_pnp_cremove), -- cgit v0.10.2 From 80faf041cd731bde220523166f016377e1765acd Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Fri, 20 Jan 2006 14:03:39 +0100 Subject: [ALSA] sb16 - Fix duplicated PnP entry Modules: SB16/AWE driver Fix the duplicated PnP entry between sb16 and sbawe drivers. Signed-off-by: Takashi Iwai diff --git a/sound/isa/sb/sb16.c b/sound/isa/sb/sb16.c index c0be7a5..0667bd1 100644 --- a/sound/isa/sb/sb16.c +++ b/sound/isa/sb/sb16.c @@ -179,6 +179,8 @@ static struct pnp_card_device_id snd_sb16_pnpids[] = { { .id = "CTL0086", .devs = { { "CTL0041" } } }, /* Sound Blaster Vibra16X */ { .id = "CTL00f0", .devs = { { "CTL0043" } } }, + /* Sound Blaster 16 (Virtual PC 2004) */ + { .id = "tBA03b0", .devs = { {.id="PNPb003" } } }, #else /* SNDRV_SBAWE defined */ /* Sound Blaster AWE 32 PnP */ { .id = "CTL0035", .devs = { { "CTL0031" }, { "CTL0021" } } }, @@ -235,8 +237,6 @@ static struct pnp_card_device_id snd_sb16_pnpids[] = { { .id = "CTLXXXX" , .devs = { { "CTL0044" }, { "CTL0023" } } }, { .id = "CTLXXXX" , .devs = { { "CTL0045" }, { "CTL0022" } } }, #endif /* SNDRV_SBAWE */ - /* Sound Blaster 16 PnP (Virtual PC 2004)*/ - { .id = "tBA03b0", .devs = { { "PNPb003" } } }, { .id = "", } }; -- cgit v0.10.2 From e2eba3e7d911b26525c17f0b7e2bc45aad8e2629 Mon Sep 17 00:00:00 2001 From: Andrew Morton Date: Fri, 20 Jan 2006 14:07:13 +0100 Subject: [ALSA] hdsp - Fix printk warnings Modules: RME9652 driver sound/pci/rme9652/hdspm.c: In function 'snd_hdspm_preallocate_memory': sound/pci/rme9652/hdspm.c:3327: warning: int format, different type arg (arg 4) sound/pci/rme9652/hdspm.c:3331: warning: int format, different type arg (arg 4) sound/pci/rme9652/hdspm.c: In function 'snd_hdspm_create': sound/pci/rme9652/hdspm.c:3513: warning: int format, different type arg (arg 4) Signed-off-by: Andrew Morton Signed-off-by: Takashi Iwai diff --git a/sound/pci/rme9652/hdspm.c b/sound/pci/rme9652/hdspm.c index 3dec616..103b4d7 100644 --- a/sound/pci/rme9652/hdspm.c +++ b/sound/pci/rme9652/hdspm.c @@ -3324,11 +3324,11 @@ static int __devinit snd_hdspm_preallocate_memory(struct hdspm * hdspm) snd_dma_pci_data(hdspm->pci), wanted, wanted)) < 0) { - snd_printdd("Could not preallocate %d Bytes\n", wanted); + snd_printdd("Could not preallocate %zd Bytes\n", wanted); return err; } else - snd_printdd(" Preallocated %d Bytes\n", wanted); + snd_printdd(" Preallocated %zd Bytes\n", wanted); return 0; } @@ -3510,7 +3510,7 @@ static int __devinit snd_hdspm_create(struct snd_card *card, struct hdspm * hdsp hdspm->monitor_outs = enable_monitor; - snd_printdd("kmalloc Mixer memory of %d Bytes\n", + snd_printdd("kmalloc Mixer memory of %zd Bytes\n", sizeof(struct hdspm_mixer)); if ((hdspm->mixer = kmalloc(sizeof(struct hdspm_mixer), GFP_KERNEL)) == NULL) { -- cgit v0.10.2 From 20cd22620ad3a8a57a942fa1f301d47a1e15d67e Mon Sep 17 00:00:00 2001 From: Andrew Morton Date: Fri, 20 Jan 2006 14:07:47 +0100 Subject: [ALSA] pcxhr - Fix printk warning Modules: Digigram PCXHR driver sound/pci/pcxhr/pcxhr.c: In function 'pcxhr_update_r_buffer': sound/pci/pcxhr/pcxhr.c:460: warning: unsigned int format, different type arg (arg 7) Signed-off-by: Andrew Morton Signed-off-by: Takashi Iwai diff --git a/sound/pci/pcxhr/pcxhr.c b/sound/pci/pcxhr/pcxhr.c index 57fe953..b2cba75 100644 --- a/sound/pci/pcxhr/pcxhr.c +++ b/sound/pci/pcxhr/pcxhr.c @@ -454,7 +454,7 @@ static int pcxhr_update_r_buffer(struct pcxhr_stream *stream) is_capture = (subs->stream == SNDRV_PCM_STREAM_CAPTURE); stream_num = is_capture ? 0 : subs->number; - snd_printdd("pcxhr_update_r_buffer(pcm%c%d) : addr(%p) bytes(%x) subs(%d)\n", + snd_printdd("pcxhr_update_r_buffer(pcm%c%d) : addr(%p) bytes(%zx) subs(%d)\n", is_capture ? 'c' : 'p', chip->chip_idx, (void*)subs->runtime->dma_addr, subs->runtime->dma_bytes, subs->number); -- cgit v0.10.2 From 168a95f170070ddda1ba7505c2ce9ae8b50f21f6 Mon Sep 17 00:00:00 2001 From: Stelian Pop Date: Fri, 20 Jan 2006 14:44:41 +0100 Subject: [ALSA] sound/ppc/pmac.c typo Modules: PPC PMAC driver In 2.6.16-rc1 there is a small typo introduced by the 'Remove device_node addrs/n_addr' changes which prevents my Powerbook G4 sound from working: Advanced Linux Sound Architecture Driver Version 1.0.11rc2 (Wed Jan 04 08:57:20 2006 UTC). snd: can't request rsrc 0 (Sound Control: 0x80000000:80004fff) ALSA device list: No soundcards found. The patch below fixes it. Of course, the patch fixing the i2c issues ('i2c_smbus_write_i2c_block_data' patch) needs to be applied to in order for the sound to completly work. Signed-off-by: Stelian Pop Signed-off-by: Takashi Iwai diff --git a/sound/ppc/pmac.c b/sound/ppc/pmac.c index a642e4c..4988f87 100644 --- a/sound/ppc/pmac.c +++ b/sound/ppc/pmac.c @@ -1216,7 +1216,7 @@ int __init snd_pmac_new(struct snd_card *card, struct snd_pmac **chip_return) goto __error; } for (i = 0; i < 3; i ++) { - if (of_address_to_resource(np->parent, i, + if (of_address_to_resource(np, i, &chip->rsrc[i])) { printk(KERN_ERR "snd: can't translate rsrc " " %d (%s)\n", i, rnames[i]); -- cgit v0.10.2 From ec80859ed292a55334df68fc2492f1303cf3a0ac Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Sun, 22 Jan 2006 09:28:15 +0100 Subject: [ALSA] cs4232/cs4236 - moved CS423X_DRIVER define outside CONFIG_PNP Modules: CS4236+ driver Signed-off-by: Jaroslav Kysela diff --git a/sound/isa/cs423x/cs4236.c b/sound/isa/cs423x/cs4236.c index 2bfa68b..edf9279 100644 --- a/sound/isa/cs423x/cs4236.c +++ b/sound/isa/cs423x/cs4236.c @@ -75,8 +75,10 @@ MODULE_SUPPORTED_DEVICE("{{Crystal Semiconductors,CS4235}," #ifdef CS4232 #define IDENT "CS4232" +#define CS423X_DRIVER "snd_cs4232" #else #define IDENT "CS4236+" +#define CS423X_DRIVER "snd_cs4236" #endif static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; /* Index 0-MAX */ @@ -160,7 +162,6 @@ MODULE_DEVICE_TABLE(pnp, snd_cs4232_pnpbiosids); #endif /* CS4232 */ #ifdef CS4232 -#define CS423X_DRIVER "snd_cs4232" #define CS423X_ISAPNP_DRIVER "cs4232_isapnp" static struct pnp_card_device_id snd_cs423x_pnpids[] = { /* Philips PCA70PS */ @@ -181,7 +182,6 @@ static struct pnp_card_device_id snd_cs423x_pnpids[] = { { .id = "" } /* end */ }; #else /* CS4236 */ -#define CS423X_DRIVER "snd_cs4236" #define CS423X_ISAPNP_DRIVER "cs4236_isapnp" static struct pnp_card_device_id snd_cs423x_pnpids[] = { /* Intel Marlin Spike Motherboard - CS4235 */ -- cgit v0.10.2 From d1d051b28e9d3c3bed0bd15a2b49df3d04f7768f Mon Sep 17 00:00:00 2001 From: Adam Belay Date: Fri, 20 Jan 2006 09:29:27 +0100 Subject: [ALSA] check return code in pnp_register_card_driver() Signed-off-by: Adam Belay Signed-off-by: Takashi Iwai diff --git a/drivers/pnp/card.c b/drivers/pnp/card.c index 0ecbe4e..aaa568a 100644 --- a/drivers/pnp/card.c +++ b/drivers/pnp/card.c @@ -363,7 +363,7 @@ static int card_resume(struct pnp_dev *dev) int pnp_register_card_driver(struct pnp_card_driver * drv) { - int count = 0; + int count; struct list_head *pos, *temp; drv->link.name = drv->name; @@ -374,10 +374,15 @@ int pnp_register_card_driver(struct pnp_card_driver * drv) drv->link.suspend = drv->suspend ? card_suspend : NULL; drv->link.resume = drv->resume ? card_resume : NULL; + count = pnp_register_driver(&drv->link); + if (count < 0) + return count; + spin_lock(&pnp_lock); list_add_tail(&drv->global_list, &pnp_card_drivers); spin_unlock(&pnp_lock); - pnp_register_driver(&drv->link); + + count = 0; list_for_each_safe(pos,temp,&pnp_cards){ struct pnp_card *card = list_entry(pos, struct pnp_card, global_list); -- cgit v0.10.2 From 51c2bbfcdb10162b294f31e2b1c7106639caaec2 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Mon, 23 Jan 2006 15:20:03 +0100 Subject: [ALSA] via82xx - Add dxs entry for a FSC board Modules: VIA82xx driver Add dxs entry for a FSC board. Signed-off-by: Takashi Iwai diff --git a/sound/pci/via82xx.c b/sound/pci/via82xx.c index d59fe3e..8d348f2 100644 --- a/sound/pci/via82xx.c +++ b/sound/pci/via82xx.c @@ -2374,6 +2374,7 @@ static int __devinit check_dxs_list(struct pci_dev *pci) { .subvendor = 0x1695, .subdevice = 0x3005, .action = VIA_DXS_ENABLE }, /* EPoX EP-8K9A */ { .subvendor = 0x1695, .subdevice = 0x300e, .action = VIA_DXS_SRC }, /* EPoX 9HEAI */ { .subvendor = 0x16f3, .subdevice = 0x6405, .action = VIA_DXS_SRC }, /* Jetway K8M8MS */ + { .subvendor = 0x1734, .subdevice = 0x1093, .action = VIA_DXS_SRC }, /* FSC */ { .subvendor = 0x1849, .subdevice = 0x3059, .action = VIA_DXS_NO_VRA }, /* ASRock K7VM2 */ { .subvendor = 0x1849, .subdevice = 0x9761, .action = VIA_DXS_SRC }, /* ASRock mobo(?) */ { .subvendor = 0x1919, .subdevice = 0x200a, .action = VIA_DXS_NO_VRA }, /* Soltek SL-K8Tpro-939 */ -- cgit v0.10.2 From fe25ad8a84c798a82591e5ed14519c001500fa61 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Mon, 23 Jan 2006 15:20:38 +0100 Subject: [ALSA] wavefront - Fix a compile warning Modules: Wavefront drivers Fix a gcc-4.1 compile warning regarding uninitialized variables. Signed-off-by: Takashi Iwai diff --git a/sound/isa/wavefront/wavefront_synth.c b/sound/isa/wavefront/wavefront_synth.c index ed81eec..68aa091 100644 --- a/sound/isa/wavefront/wavefront_synth.c +++ b/sound/isa/wavefront/wavefront_synth.c @@ -866,7 +866,7 @@ wavefront_send_sample (snd_wavefront_t *dev, divided by 2. */ - u16 sample_short; + u16 sample_short = 0; u32 length; u16 __user *data_end = NULL; unsigned int i; -- cgit v0.10.2 From 91134859702e66e5946383f66e6eb50ba4325458 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Mon, 23 Jan 2006 15:21:05 +0100 Subject: [ALSA] opti93x - Fix a compile warning Modules: Opti9xx drivers Fix a gcc-4.1 compile warning regarding uninitialized variables. Signed-off-by: Takashi Iwai diff --git a/sound/isa/opti9xx/opti92x-ad1848.c b/sound/isa/opti9xx/opti92x-ad1848.c index 1ea3944..63d96be 100644 --- a/sound/isa/opti9xx/opti92x-ad1848.c +++ b/sound/isa/opti9xx/opti92x-ad1848.c @@ -1349,7 +1349,7 @@ static int snd_opti93x_pcm(struct snd_opti93x *codec, int device, struct snd_pcm int error; struct snd_pcm *pcm; - if ((error = snd_pcm_new(codec->card, "OPTi 82C93X", device, 1, 1, &pcm))) + if ((error = snd_pcm_new(codec->card, "OPTi 82C93X", device, 1, 1, &pcm)) < 0) return error; snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_opti93x_playback_ops); -- cgit v0.10.2 From 68b8bc05213567cfc58d8bdb8917b36c314ba7fd Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Mon, 23 Jan 2006 15:21:28 +0100 Subject: [ALSA] serial-uart16550 - Fix a compile warning Modules: Generic drivers Fix a gcc-4.1 compile warning regarding uninitialized variables. Signed-off-by: Takashi Iwai diff --git a/sound/drivers/serial-u16550.c b/sound/drivers/serial-u16550.c index 29676d8..112ddf7 100644 --- a/sound/drivers/serial-u16550.c +++ b/sound/drivers/serial-u16550.c @@ -789,7 +789,7 @@ static int __init snd_uart16550_create(struct snd_card *card, if ((err = snd_uart16550_detect(uart)) <= 0) { printk(KERN_ERR "no UART detected at 0x%lx\n", iobase); - return err; + return -ENODEV; } if (irq >= 0 && irq != SNDRV_AUTO_IRQ) { -- cgit v0.10.2 From 50f794c8dcfd0e63f3034d7cfd41e563f35741aa Mon Sep 17 00:00:00 2001 From: Lukasz Stemach Date: Mon, 23 Jan 2006 15:22:13 +0100 Subject: [ALSA] cs4236 - Add PnP ids for Netfinity 3000 Modules: CS4236+ driver PnP ids for Netfinity 3000 builtin soundcard. This one works for me. This patch was submitted through kernel Bugzilla #4214. Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Takashi Iwai diff --git a/sound/isa/cs423x/cs4236.c b/sound/isa/cs423x/cs4236.c index edf9279..4fa4310 100644 --- a/sound/isa/cs423x/cs4236.c +++ b/sound/isa/cs423x/cs4236.c @@ -178,6 +178,8 @@ static struct pnp_card_device_id snd_cs423x_pnpids[] = { { .id = "CSC7632", .devs = { { "CSC0000" }, { "CSC0010" }, { "PNPb006" } } }, /* SIC CrystalWave 32 (CS4232) */ { .id = "CSCf032", .devs = { { "CSC0000" }, { "CSC0010" }, { "CSC0003" } } }, + /* Netfinity 3000 on-board soundcard */ + { .id = "CSCe825", .devs = { { "CSC0100" }, { "CSC0110" }, { "CSC010f" } } }, /* --- */ { .id = "" } /* end */ }; -- cgit v0.10.2 From e061bf1aa3af8a3f2ae7e1b5f8a110eae7936615 Mon Sep 17 00:00:00 2001 From: Sasha Khapyorsky Date: Mon, 23 Jan 2006 15:24:16 +0100 Subject: [ALSA] hda-codec - support for Agere's HDA soft modem Modules: HDA Codec driver This adds support for Agere's variant of Si3054/5 based HDA modem. Signed-off-by: Sasha Khapyorsky Signed-off-by: Takashi Iwai diff --git a/sound/pci/hda/patch_si3054.c b/sound/pci/hda/patch_si3054.c index 8f8840e..250242c 100644 --- a/sound/pci/hda/patch_si3054.c +++ b/sound/pci/hda/patch_si3054.c @@ -297,6 +297,7 @@ static int patch_si3054(struct hda_codec *codec) struct hda_codec_preset snd_hda_preset_si3054[] = { { .id = 0x163c3055, .name = "Si3054", .patch = patch_si3054 }, { .id = 0x163c3155, .name = "Si3054", .patch = patch_si3054 }, + { .id = 0x11c13026, .name = "Si3054", .patch = patch_si3054 }, {} }; -- cgit v0.10.2 From d62c40e04cfcec3cef8093bd79d72fe86c8f2195 Mon Sep 17 00:00:00 2001 From: Matt Porter Date: Mon, 23 Jan 2006 15:26:27 +0100 Subject: [ALSA] hda-codec - add D975XBK support to sigmatel patch Modules: HDA Codec driver Add SigmaTel HDA support for the Intel D975XBK motherboard. Signed-off-by: Matt Porter Signed-off-by: Takashi Iwai diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index 4f78b58..f2f9465 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c @@ -275,6 +275,9 @@ static struct hda_board_config stac922x_cfg_tbl[] = { { .pci_subvendor = PCI_VENDOR_ID_INTEL, .pci_subdevice = 0x0013, .config = STAC_D945GTP5 }, /* Intel D955XBK - 5 Stack */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x0417, + .config = STAC_D945GTP5 }, /* Intel D975XBK - 5 Stack */ {} /* terminator */ }; -- cgit v0.10.2 From 3cc08dc6ea677ed4e843120aa070e145b6781a4b Mon Sep 17 00:00:00 2001 From: Matt Porter Date: Mon, 23 Jan 2006 15:27:49 +0100 Subject: [ALSA] hda-codec - add sigmatel 927x codec support Modules: HDA Codec driver Adds support for the SigmaTel STAC927x HDA codec family. Signed-off-by: Matt Porter Signed-off-by: Takashi Iwai diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index f2f9465..d5342d2 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c @@ -50,10 +50,11 @@ struct sigmatel_spec { unsigned int surr_switch: 1; unsigned int line_switch: 1; unsigned int mic_switch: 1; + unsigned int alt_switch: 1; /* playback */ struct hda_multi_out multiout; - hda_nid_t dac_nids[4]; + hda_nid_t dac_nids[5]; /* capture */ hda_nid_t *adc_nids; @@ -73,7 +74,7 @@ struct sigmatel_spec { /* capture source */ struct hda_input_mux *input_mux; - unsigned int cur_mux[2]; + unsigned int cur_mux[3]; /* i/o switches */ unsigned int io_switch[2]; @@ -107,6 +108,14 @@ static hda_nid_t stac922x_mux_nids[2] = { 0x12, 0x13, }; +static hda_nid_t stac927x_adc_nids[3] = { + 0x07, 0x08, 0x09 +}; + +static hda_nid_t stac927x_mux_nids[3] = { + 0x15, 0x16, 0x17 +}; + static hda_nid_t stac9200_pin_nids[8] = { 0x08, 0x09, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, }; @@ -116,6 +125,12 @@ static hda_nid_t stac922x_pin_nids[10] = { 0x0f, 0x10, 0x11, 0x15, 0x1b, }; +static hda_nid_t stac927x_pin_nids[14] = { + 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, + 0x0f, 0x10, 0x11, 0x12, 0x13, + 0x14, 0x21, 0x22, 0x23, +}; + static int stac92xx_mux_enum_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); @@ -155,6 +170,12 @@ static struct hda_verb stac922x_core_init[] = { {} }; +static struct hda_verb stac927x_core_init[] = { + /* set master volume and direct control */ + { 0x24, AC_VERB_SET_VOLUME_KNOB_CONTROL, 0xff}, + {} +}; + static struct snd_kcontrol_new stac9200_mixer[] = { HDA_CODEC_VOLUME("Master Playback Volume", 0xb, 0, HDA_OUTPUT), HDA_CODEC_MUTE("Master Playback Switch", 0xb, 0, HDA_OUTPUT), @@ -188,6 +209,21 @@ static struct snd_kcontrol_new stac922x_mixer[] = { { } /* end */ }; +static snd_kcontrol_new_t stac927x_mixer[] = { + { + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, + .name = "Input Source", + .count = 1, + .info = stac92xx_mux_enum_info, + .get = stac92xx_mux_enum_get, + .put = stac92xx_mux_enum_put, + }, + HDA_CODEC_VOLUME("InMux Capture Volume", 0x15, 0x0, HDA_OUTPUT), + HDA_CODEC_VOLUME("InVol Capture Volume", 0x18, 0x0, HDA_INPUT), + HDA_CODEC_MUTE("ADCMux Capture Switch", 0x1b, 0x0, HDA_OUTPUT), + { } /* end */ +}; + static int stac92xx_build_controls(struct hda_codec *codec) { struct sigmatel_spec *spec = codec->spec; @@ -281,6 +317,25 @@ static struct hda_board_config stac922x_cfg_tbl[] = { {} /* terminator */ }; +static unsigned int ref927x_pin_configs[14] = { + 0x01813122, 0x01a19021, 0x01014010, 0x01016011, + 0x01012012, 0x01011014, 0x40000100, 0x40000100, + 0x40000100, 0x40000100, 0x40000100, 0x01441030, + 0x01c41030, 0x40000100, +}; + +static unsigned int *stac927x_brd_tbl[] = { + ref927x_pin_configs, +}; + +static struct hda_board_config stac927x_cfg_tbl[] = { + { .modelname = "ref", + .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x2668, /* DFI LanParty */ + .config = STAC_REF }, /* SigmaTel reference board */ + {} /* terminator */ +}; + static void stac92xx_set_config_regs(struct hda_codec *codec) { int i; @@ -412,11 +467,23 @@ static struct hda_pcm_stream stac92xx_pcm_analog_playback = { }, }; +static struct hda_pcm_stream stac92xx_pcm_analog_alt_playback = { + .substreams = 1, + .channels_min = 2, + .channels_max = 2, + .nid = 0x06, /* NID to query formats and rates */ + .ops = { + .open = stac92xx_playback_pcm_open, + .prepare = stac92xx_playback_pcm_prepare, + .cleanup = stac92xx_playback_pcm_cleanup + }, +}; + static struct hda_pcm_stream stac92xx_pcm_analog_capture = { .substreams = 2, .channels_min = 2, .channels_max = 2, - .nid = 0x06, /* NID to query formats and rates */ + /* NID is set in stac92xx_build_pcms */ .ops = { .prepare = stac92xx_capture_pcm_prepare, .cleanup = stac92xx_capture_pcm_cleanup @@ -434,6 +501,14 @@ static int stac92xx_build_pcms(struct hda_codec *codec) info->name = "STAC92xx Analog"; info->stream[SNDRV_PCM_STREAM_PLAYBACK] = stac92xx_pcm_analog_playback; info->stream[SNDRV_PCM_STREAM_CAPTURE] = stac92xx_pcm_analog_capture; + info->stream[SNDRV_PCM_STREAM_CAPTURE].nid = spec->adc_nids[0]; + + if (spec->alt_switch) { + codec->num_pcms++; + info++; + info->name = "STAC92xx Analog Alt"; + info->stream[SNDRV_PCM_STREAM_PLAYBACK] = stac92xx_pcm_analog_alt_playback; + } if (spec->multiout.dig_out_nid || spec->dig_in_nid) { codec->num_pcms++; @@ -592,6 +667,16 @@ static int stac92xx_add_dyn_out_pins(struct hda_codec *codec, struct auto_pin_cf return 0; } +/* + * XXX The line_out pin widget connection list may not be set to the + * desired DAC nid. This is the case on 927x where ports A and B can + * be routed to several DACs. + * + * This requires an analysis of the line-out/hp pin configuration + * to provide a best fit for pin/DAC configurations that are routable. + * For now, 927x DAC4 is not supported and 927x DAC1 output to ports + * A and B is not supported. + */ /* fill in the dac_nids table from the parsed pin configuration */ static int stac92xx_auto_fill_dac_nids(struct hda_codec *codec, const struct auto_pin_cfg *cfg) { @@ -757,7 +842,7 @@ static void stac92xx_auto_init_hp_out(struct hda_codec *codec) stac92xx_auto_set_pinctl(codec, pin, AC_PINCTL_OUT_EN | AC_PINCTL_HP_EN); } -static int stac922x_parse_auto_config(struct hda_codec *codec) +static int stac92xx_parse_auto_config(struct hda_codec *codec, hda_nid_t dig_out, hda_nid_t dig_in) { struct sigmatel_spec *spec = codec->spec; int err; @@ -781,11 +866,11 @@ static int stac922x_parse_auto_config(struct hda_codec *codec) spec->surr_switch = 1; if (spec->autocfg.dig_out_pin) { - spec->multiout.dig_out_nid = 0x08; + spec->multiout.dig_out_nid = dig_out; stac92xx_auto_set_pinctl(codec, spec->autocfg.dig_out_pin, AC_PINCTL_OUT_EN); } if (spec->autocfg.dig_in_pin) { - spec->dig_in_nid = 0x09; + spec->dig_in_nid = dig_in; stac92xx_auto_set_pinctl(codec, spec->autocfg.dig_in_pin, AC_PINCTL_IN_EN); } @@ -1000,7 +1085,47 @@ static int patch_stac922x(struct hda_codec *codec) spec->multiout.dac_nids = spec->dac_nids; - err = stac922x_parse_auto_config(codec); + err = stac92xx_parse_auto_config(codec, 0x08, 0x09); + if (err < 0) { + stac92xx_free(codec); + return err; + } + + codec->patch_ops = stac92xx_patch_ops; + + return 0; +} + +static int patch_stac927x(struct hda_codec *codec) +{ + struct sigmatel_spec *spec; + int err; + + spec = kzalloc(sizeof(*spec), GFP_KERNEL); + if (spec == NULL) + return -ENOMEM; + + codec->spec = spec; + spec->board_config = snd_hda_check_board_config(codec, stac927x_cfg_tbl); + if (spec->board_config < 0) + snd_printdd(KERN_INFO "hda_codec: Unknown model for STAC927x, using BIOS defaults\n"); + else { + spec->num_pins = 14; + spec->pin_nids = stac927x_pin_nids; + spec->pin_configs = stac927x_brd_tbl[spec->board_config]; + stac92xx_set_config_regs(codec); + } + + spec->adc_nids = stac927x_adc_nids; + spec->mux_nids = stac927x_mux_nids; + spec->num_muxes = 3; + + spec->init = stac927x_core_init; + spec->mixer = stac927x_mixer; + + spec->multiout.dac_nids = spec->dac_nids; + + err = stac92xx_parse_auto_config(codec, 0x1e, 0x20); if (err < 0) { stac92xx_free(codec); return err; @@ -1022,5 +1147,15 @@ struct hda_codec_preset snd_hda_preset_sigmatel[] = { { .id = 0x83847681, .name = "STAC9220D/9223D A2", .patch = patch_stac922x }, { .id = 0x83847682, .name = "STAC9221 A2", .patch = patch_stac922x }, { .id = 0x83847683, .name = "STAC9221D A2", .patch = patch_stac922x }, + { .id = 0x83847620, .name = "STAC9274", .patch = patch_stac927x }, + { .id = 0x83847621, .name = "STAC9274D", .patch = patch_stac927x }, + { .id = 0x83847622, .name = "STAC9273X", .patch = patch_stac927x }, + { .id = 0x83847623, .name = "STAC9273D", .patch = patch_stac927x }, + { .id = 0x83847624, .name = "STAC9272X", .patch = patch_stac927x }, + { .id = 0x83847625, .name = "STAC9272D", .patch = patch_stac927x }, + { .id = 0x83847626, .name = "STAC9271X", .patch = patch_stac927x }, + { .id = 0x83847627, .name = "STAC9271D", .patch = patch_stac927x }, + { .id = 0x83847628, .name = "STAC9274X5NH", .patch = patch_stac927x }, + { .id = 0x83847629, .name = "STAC9274D5NH", .patch = patch_stac927x }, {} /* terminator */ }; -- cgit v0.10.2 From 802c00f2f3700423df06a1149c23cd60dd59159c Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Mon, 23 Jan 2006 15:31:11 +0100 Subject: [ALSA] via82xx - Add dxs entry for P4M800/VIA8237R Modules: VIA82xx driver Added the dxs entry for P4M800/VIA8237R, reported by OGAWA Hirofumi Signed-off-by: Takashi Iwai diff --git a/sound/pci/via82xx.c b/sound/pci/via82xx.c index 8d348f2..4237413 100644 --- a/sound/pci/via82xx.c +++ b/sound/pci/via82xx.c @@ -2359,6 +2359,7 @@ static int __devinit check_dxs_list(struct pci_dev *pci) { .subvendor = 0x1462, .subdevice = 0x7023, .action = VIA_DXS_NO_VRA }, /* MSI K8T Neo2-FI */ { .subvendor = 0x1462, .subdevice = 0x7120, .action = VIA_DXS_ENABLE }, /* MSI KT4V */ { .subvendor = 0x1462, .subdevice = 0x7142, .action = VIA_DXS_ENABLE }, /* MSI K8MM-V */ + { .subvendor = 0x1462, .subdevice = 0xb012, .action = VIA_DXS_SRC }, /* P4M800/VIA8237R */ { .subvendor = 0x147b, .subdevice = 0x1401, .action = VIA_DXS_ENABLE }, /* ABIT KD7(-RAID) */ { .subvendor = 0x147b, .subdevice = 0x1411, .action = VIA_DXS_ENABLE }, /* ABIT VA-20 */ { .subvendor = 0x147b, .subdevice = 0x1413, .action = VIA_DXS_ENABLE }, /* ABIT KV8 Pro */ -- cgit v0.10.2 From ad0651f97a3f8c5982921cb57fbedc877279e03d Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Tue, 24 Jan 2006 10:34:34 +0100 Subject: [ALSA] hda-codec - Fix max_channels computation for STAC92xx codecs Modules: HDA Codec driver Fix max_channels computation for STAC92xx codecs in the case only HP pin without line-out pins is detected in the default pin config. Signed-off-by: Takashi Iwai diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index d5342d2..f7892a5 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c @@ -691,7 +691,13 @@ static int stac92xx_auto_fill_dac_nids(struct hda_codec *codec, const struct aut AC_VERB_GET_CONNECT_LIST, 0) & 0xff; } - spec->multiout.num_dacs = cfg->line_outs; + if (cfg->line_outs) + spec->multiout.num_dacs = cfg->line_outs; + else if (cfg->hp_pin) { + spec->multiout.dac_nids[0] = snd_hda_codec_read(codec, cfg->hp_pin, 0, + AC_VERB_GET_CONNECT_LIST, 0) & 0xff; + spec->multiout.num_dacs = 1; + } return 0; } -- cgit v0.10.2 From fd56f2db9385a651d31fe86eb4cc6cacbb0c5a63 Mon Sep 17 00:00:00 2001 From: Jonathan Woithe Date: Tue, 24 Jan 2006 10:35:46 +0100 Subject: [ALSA] hda-codec - Fix init verb of ALC260 Modules: HDA Codec driver Fixed the wrong widget id for line-2 selector in the init verb of ALC260. Signed-off-by: Takashi Iwai diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 543980d..043513b 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -2475,7 +2475,7 @@ static struct hda_verb alc260_init_verbs[] = { /* LINE-2 is used for line-out in rear */ {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, /* select line-out */ - {0x15, AC_VERB_SET_CONNECT_SEL, 0x00}, + {0x0e, AC_VERB_SET_CONNECT_SEL, 0x00}, /* LINE-OUT pin */ {0x0f, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, /* enable HP */ -- cgit v0.10.2 From 89ac9c256495cbdbe130be5ed192c8911c89ed87 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Tue, 24 Jan 2006 10:36:57 +0100 Subject: [ALSA] intel8x0 - Add MCP51 PCI ID Modules: Documentation,Intel8x0 driver Added MCP51 PCI ID to intel8x0 driver. Also, updated the supported chips in documentation. Signed-off-by: Takashi Iwai diff --git a/Documentation/sound/alsa/ALSA-Configuration.txt b/Documentation/sound/alsa/ALSA-Configuration.txt index d257801..36b511c 100644 --- a/Documentation/sound/alsa/ALSA-Configuration.txt +++ b/Documentation/sound/alsa/ALSA-Configuration.txt @@ -837,8 +837,10 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. Module for AC'97 motherboards from Intel and compatibles. * Intel i810/810E, i815, i820, i830, i84x, MX440 + ICH5, ICH6, ICH7, ESB2 * SiS 7012 (SiS 735) - * NVidia NForce, NForce2 + * NVidia NForce, NForce2, NForce3, MCP04, CK804 + CK8, CK8S, MCP501 * AMD AMD768, AMD8111 * ALi m5455 @@ -868,6 +870,12 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. -------------------- Module for Intel ICH (i8x0) chipset MC97 modems. + * Intel i810/810E, i815, i820, i830, i84x, MX440 + ICH5, ICH6, ICH7 + * SiS 7013 (SiS 735) + * NVidia NForce, NForce2, NForce2s, NForce3 + * AMD AMD8111 + * ALi m5455 ac97_clock - AC'97 codec clock base (0 = auto-detect) diff --git a/sound/pci/intel8x0.c b/sound/pci/intel8x0.c index b345894..174237f 100644 --- a/sound/pci/intel8x0.c +++ b/sound/pci/intel8x0.c @@ -427,6 +427,7 @@ static struct pci_device_id snd_intel8x0_ids[] = { { 0x10de, 0x008a, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_NFORCE }, /* CK8 */ { 0x10de, 0x00da, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_NFORCE }, /* NFORCE3 */ { 0x10de, 0x00ea, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_NFORCE }, /* CK8S */ + { 0x10de, 0x026b, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_NFORCE }, /* MCP51 */ { 0x1022, 0x746d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* AMD8111 */ { 0x1022, 0x7445, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* AMD768 */ { 0x10b9, 0x5455, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_ALI }, /* Ali5455 */ -- cgit v0.10.2 From 1d79716ab07710465fa9fc1ae7328cc6095d2526 Mon Sep 17 00:00:00 2001 From: Alexey Dobriyan Date: Wed, 25 Jan 2006 14:30:44 +0100 Subject: [ALSA] Fix adding second dma channel Modules: OPL3SA2 driver,GUS Classic driver dma2 is a global array. sprintf below suggests there was a typo. Signed-off-by: Alexey Dobriyan Signed-off-by: Takashi Iwai diff --git a/sound/isa/gus/gusclassic.c b/sound/isa/gus/gusclassic.c index d1165b9..91c2191 100644 --- a/sound/isa/gus/gusclassic.c +++ b/sound/isa/gus/gusclassic.c @@ -195,7 +195,7 @@ static int __init snd_gusclassic_probe(struct platform_device *pdev) goto _err; } sprintf(card->longname + strlen(card->longname), " at 0x%lx, irq %d, dma %d", gus->gf1.port, xirq, xdma1); - if (dma2 >= 0) + if (xdma2 >= 0) sprintf(card->longname + strlen(card->longname), "&%d", xdma2); snd_card_set_dev(card, &pdev->dev); diff --git a/sound/isa/opl3sa2.c b/sound/isa/opl3sa2.c index 9dc6b20..9d84319 100644 --- a/sound/isa/opl3sa2.c +++ b/sound/isa/opl3sa2.c @@ -723,7 +723,7 @@ static int __devinit snd_opl3sa2_probe(struct snd_card *card, int dev) } sprintf(card->longname, "%s at 0x%lx, irq %d, dma %d", card->shortname, chip->port, xirq, xdma1); - if (dma2 >= 0) + if (xdma2 >= 0) sprintf(card->longname + strlen(card->longname), "&%d", xdma2); return snd_card_register(card); -- cgit v0.10.2 From 869264c45a6a77d73ec6caa543616a10a9dfd951 Mon Sep 17 00:00:00 2001 From: Matt Porter Date: Wed, 25 Jan 2006 19:20:50 +0100 Subject: [ALSA] hda: sigmatel fixes Modules: HDA Codec driver * Fix init sequence so manually retaskable jacks don't get added to the line_out list. * Update intel mobo config defaults to specify surround outputs as line outs rather than speakers. Signed-off-by: Matt Porter Signed-off-by: Takashi Iwai diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index f7892a5..35c2823 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c @@ -277,14 +277,14 @@ static unsigned int ref922x_pin_configs[10] = { }; static unsigned int d945gtp3_pin_configs[10] = { - 0x0221401f, 0x01a19022, 0x01813021, 0x01114010, + 0x0221401f, 0x01a19022, 0x01813021, 0x01014010, 0x40000100, 0x40000100, 0x40000100, 0x40000100, 0x02a19120, 0x40000100, }; static unsigned int d945gtp5_pin_configs[10] = { - 0x0221401f, 0x01111012, 0x01813024, 0x01114010, - 0x01a19021, 0x01116011, 0x01452130, 0x40000100, + 0x0221401f, 0x01011012, 0x01813024, 0x01014010, + 0x01a19021, 0x01016011, 0x01452130, 0x40000100, 0x02a19320, 0x40000100, }; @@ -855,12 +855,14 @@ static int stac92xx_parse_auto_config(struct hda_codec *codec, hda_nid_t dig_out if ((err = snd_hda_parse_pin_def_config(codec, &spec->autocfg, NULL)) < 0) return err; + if (! spec->autocfg.line_outs && ! spec->autocfg.hp_pin) + return 0; /* can't find valid pin config */ + stac92xx_auto_init_multi_out(codec); + stac92xx_auto_init_hp_out(codec); if ((err = stac92xx_add_dyn_out_pins(codec, &spec->autocfg)) < 0) return err; if ((err = stac92xx_auto_fill_dac_nids(codec, &spec->autocfg)) < 0) return err; - if (! spec->autocfg.line_outs && ! spec->autocfg.hp_pin) - return 0; /* can't find valid pin config */ if ((err = stac92xx_auto_create_multi_out_ctls(spec, &spec->autocfg)) < 0 || (err = stac92xx_auto_create_hp_ctls(codec, &spec->autocfg)) < 0 || @@ -922,9 +924,6 @@ static int stac92xx_init(struct hda_codec *codec) snd_hda_sequence_write(codec, spec->init); - stac92xx_auto_init_multi_out(codec); - stac92xx_auto_init_hp_out(codec); - return 0; } -- cgit v0.10.2 From 44275f18ec22a31980469567052e932d1023971f Mon Sep 17 00:00:00 2001 From: Giuliano Pochini Date: Fri, 27 Jan 2006 12:02:05 +0100 Subject: [ALSA] fix typos in writing-an-alsa-driver Modules: Documentation Fixed typos in writing-an-alsa-driver document. Signed-off-by: Giuliano Pochini Signed-off-by: Takashi Iwai diff --git a/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl b/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl index e651ed8..4251085 100644 --- a/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl +++ b/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl @@ -5206,14 +5206,14 @@ struct _snd_pcm_runtime { You need to pass the snd_dma_pci_data(pci), where pci is the struct pci_dev pointer of the chip as well. - The snd_sg_buf_t instance is created as + The struct snd_sg_buf instance is created as substream->dma_private. You can cast the pointer like: dma_private; + struct snd_sg_buf *sgbuf = (struct snd_sg_buf *)substream->dma_private; ]]> -- cgit v0.10.2 From bae2bdb334c1ca5f4721e4fab1ca947f44455117 Mon Sep 17 00:00:00 2001 From: Arnaud Patard Date: Fri, 27 Jan 2006 12:05:02 +0100 Subject: [ALSA] patch_realtek.c: Add new model Modules: HDA Codec driver This little patch add the model for the motherboard K8N51 from Gigabyte to the known models of ALC boards. Signed-off-by: Arnaud Patard Signed-off-by: Takashi Iwai diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 043513b..906263e 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -1668,6 +1668,7 @@ static struct hda_board_config alc880_cfg_tbl[] = { { .pci_subvendor = 0x1043, .pci_subdevice = 0x8196, .config = ALC880_6ST }, /* ASUS P5GD1-HVM */ { .pci_subvendor = 0x1043, .pci_subdevice = 0x81b4, .config = ALC880_6ST }, { .pci_subvendor = 0x1019, .pci_subdevice = 0xa884, .config = ALC880_6ST }, /* Acer APFV */ + { .pci_subvendor = 0x1458, .pci_subdevice = 0xa102, .config = ALC880_6ST }, /* Gigabyte K8N51 */ { .modelname = "6stack-digout", .config = ALC880_6ST_DIG }, { .pci_subvendor = 0x2668, .pci_subdevice = 0x8086, .config = ALC880_6ST_DIG }, -- cgit v0.10.2 From 1494a92f4c2b1d5abdaa1f823dd19f797bb137de Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Tue, 31 Jan 2006 10:58:46 +0100 Subject: [ALSA] hda-codec - Fix typos in alc882 model table Modules: HDA Codec driver Fixed typos in alc882 model table. Signed-off-by: Takashi Iwai diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 906263e..b767552 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -3417,12 +3417,12 @@ static struct snd_kcontrol_new alc882_capture_mixer[] = { * configuration and preset */ static struct hda_board_config alc882_cfg_tbl[] = { - { .modelname = "3stack-dig", .config = ALC861_3ST_DIG }, - { .modelname = "6stack-dig", .config = ALC861_6ST_DIG }, + { .modelname = "3stack-dig", .config = ALC882_3ST_DIG }, + { .modelname = "6stack-dig", .config = ALC882_6ST_DIG }, { .pci_subvendor = 0x1462, .pci_subdevice = 0x6668, .config = ALC882_6ST_DIG }, /* MSI */ { .pci_subvendor = 0x105b, .pci_subdevice = 0x6668, .config = ALC882_6ST_DIG }, /* Foxconn */ { .pci_subvendor = 0x1019, .pci_subdevice = 0x6668, .config = ALC882_6ST_DIG }, /* ECS */ - { .modelname = "auto", .config = ALC861_AUTO }, + { .modelname = "auto", .config = ALC882_AUTO }, {} }; -- cgit v0.10.2