aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2007-02-09 06:42:03 -0500
committerJaroslav Kysela <perex@suse.cz>2007-02-14 02:38:21 -0500
commit9e292c0013d7d4158169eb9786aa0f9816eb5b40 (patch)
treeda574acc636c0cfb437639534040511e254416ca
parent9e507abd87103b5263bb0bbd94a15d74004557e9 (diff)
[ALSA] ac97 - Fix silent output problem with Cx20551 codec
Fixed the silent output problem on laptops with Conexant Cx20551 codec chip, such as Packard-bell EasyNote A* series. The information was taken from ALSA bug#1134. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
-rw-r--r--sound/pci/ac97/ac97_codec.c1
-rw-r--r--sound/pci/ac97/ac97_patch.c6
-rw-r--r--sound/pci/ac97/ac97_patch.h1
3 files changed, 8 insertions, 0 deletions
diff --git a/sound/pci/ac97/ac97_codec.c b/sound/pci/ac97/ac97_codec.c
index 74ed81081478..a9eec2a2357d 100644
--- a/sound/pci/ac97/ac97_codec.c
+++ b/sound/pci/ac97/ac97_codec.c
@@ -143,6 +143,7 @@ static const struct ac97_codec_id snd_ac97_codec_ids[] = {
143{ 0x43525970, 0xfffffff8, "CS4202", NULL, NULL }, 143{ 0x43525970, 0xfffffff8, "CS4202", NULL, NULL },
144{ 0x43585421, 0xffffffff, "HSD11246", NULL, NULL }, // SmartMC II 144{ 0x43585421, 0xffffffff, "HSD11246", NULL, NULL }, // SmartMC II
145{ 0x43585428, 0xfffffff8, "Cx20468", patch_conexant, NULL }, // SmartAMC fixme: the mask might be different 145{ 0x43585428, 0xfffffff8, "Cx20468", patch_conexant, NULL }, // SmartAMC fixme: the mask might be different
146{ 0x43585431, 0xffffffff, "Cx20551", patch_cx20551, NULL },
146{ 0x44543031, 0xfffffff0, "DT0398", NULL, NULL }, 147{ 0x44543031, 0xfffffff0, "DT0398", NULL, NULL },
147{ 0x454d4328, 0xffffffff, "EM28028", NULL, NULL }, // same as TR28028? 148{ 0x454d4328, 0xffffffff, "EM28028", NULL, NULL }, // same as TR28028?
148{ 0x45838308, 0xffffffff, "ESS1988", NULL, NULL }, 149{ 0x45838308, 0xffffffff, "ESS1988", NULL, NULL },
diff --git a/sound/pci/ac97/ac97_patch.c b/sound/pci/ac97/ac97_patch.c
index 641d0c8d659e..bfc2fed16da3 100644
--- a/sound/pci/ac97/ac97_patch.c
+++ b/sound/pci/ac97/ac97_patch.c
@@ -1338,6 +1338,12 @@ int patch_conexant(struct snd_ac97 * ac97)
1338 return 0; 1338 return 0;
1339} 1339}
1340 1340
1341int patch_cx20551(struct snd_ac97 *ac97)
1342{
1343 snd_ac97_update_bits(ac97, 0x5c, 0x01, 0x01);
1344 return 0;
1345}
1346
1341/* 1347/*
1342 * Analog Device AD18xx, AD19xx codecs 1348 * Analog Device AD18xx, AD19xx codecs
1343 */ 1349 */
diff --git a/sound/pci/ac97/ac97_patch.h b/sound/pci/ac97/ac97_patch.h
index 94340daaaf1f..555d1c9a98fd 100644
--- a/sound/pci/ac97/ac97_patch.h
+++ b/sound/pci/ac97/ac97_patch.h
@@ -39,6 +39,7 @@ int patch_sigmatel_stac9758(struct snd_ac97 * ac97);
39int patch_cirrus_cs4299(struct snd_ac97 * ac97); 39int patch_cirrus_cs4299(struct snd_ac97 * ac97);
40int patch_cirrus_spdif(struct snd_ac97 * ac97); 40int patch_cirrus_spdif(struct snd_ac97 * ac97);
41int patch_conexant(struct snd_ac97 * ac97); 41int patch_conexant(struct snd_ac97 * ac97);
42int patch_cx20551(struct snd_ac97 * ac97);
42int patch_ad1819(struct snd_ac97 * ac97); 43int patch_ad1819(struct snd_ac97 * ac97);
43int patch_ad1881(struct snd_ac97 * ac97); 44int patch_ad1881(struct snd_ac97 * ac97);
44int patch_ad1885(struct snd_ac97 * ac97); 45int patch_ad1885(struct snd_ac97 * ac97);