aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/ac97/ac97_patch.c
diff options
context:
space:
mode:
authorSasha Khapyorsky <sashak@smlink.com>2005-05-29 09:08:23 -0400
committerJaroslav Kysela <perex@suse.cz>2005-06-22 06:27:18 -0400
commit87d61c290b5de63cc18ed5ec8103e30fe297373e (patch)
treeed902b08203677cb508e35340705613082e3d1dd /sound/pci/ac97/ac97_patch.c
parent8fabab15dc64d4aaed0e9dddf3482c128a0347a2 (diff)
[ALSA] MC97 modem mixer in sound/pci/ac97
AC97 Codec Simple MC97 modem mixer with two common controls: Off-hook and CID, and Si3056 MC specific control: Modem Speaker. Signed-off-by: Sasha Khapyorsky <sashak@smlink.com> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
Diffstat (limited to 'sound/pci/ac97/ac97_patch.c')
-rw-r--r--sound/pci/ac97/ac97_patch.c21
1 files changed, 19 insertions, 2 deletions
diff --git a/sound/pci/ac97/ac97_patch.c b/sound/pci/ac97/ac97_patch.c
index b81064133c61..a15eb8522b7c 100644
--- a/sound/pci/ac97/ac97_patch.c
+++ b/sound/pci/ac97/ac97_patch.c
@@ -2459,12 +2459,29 @@ int patch_it2646(ac97_t * ac97)
2459 return 0; 2459 return 0;
2460} 2460}
2461 2461
2462/* Si3036/8 specific registers */ 2462/*
2463 * Si3036 codec
2464 */
2465
2463#define AC97_SI3036_CHIP_ID 0x5a 2466#define AC97_SI3036_CHIP_ID 0x5a
2467#define AC97_SI3036_LINE_CFG 0x5c
2468
2469static const snd_kcontrol_new_t snd_ac97_controls_si3036[] = {
2470AC97_DOUBLE("Modem Speaker Volume", 0x5c, 14, 12, 3, 1)
2471};
2472
2473static int patch_si3036_specific(ac97_t * ac97)
2474{
2475 return patch_build_controls(ac97, snd_ac97_controls_si3036, ARRAY_SIZE(snd_ac97_controls_si3036));
2476}
2477
2478static struct snd_ac97_build_ops patch_si3036_ops = {
2479 .build_specific = patch_si3036_specific,
2480};
2464 2481
2465int mpatch_si3036(ac97_t * ac97) 2482int mpatch_si3036(ac97_t * ac97)
2466{ 2483{
2467 //printk("mpatch_si3036: chip id = %x\n", snd_ac97_read(ac97, 0x5a)); 2484 ac97->build_ops = &patch_si3036_ops;
2468 snd_ac97_write_cache(ac97, 0x5c, 0xf210 ); 2485 snd_ac97_write_cache(ac97, 0x5c, 0xf210 );
2469 snd_ac97_write_cache(ac97, 0x68, 0); 2486 snd_ac97_write_cache(ac97, 0x68, 0);
2470 return 0; 2487 return 0;