diff options
author | Takashi Iwai <tiwai@suse.de> | 2007-02-09 06:42:03 -0500 |
---|---|---|
committer | Jaroslav Kysela <perex@suse.cz> | 2007-02-14 02:38:21 -0500 |
commit | 9e292c0013d7d4158169eb9786aa0f9816eb5b40 (patch) | |
tree | da574acc636c0cfb437639534040511e254416ca | |
parent | 9e507abd87103b5263bb0bbd94a15d74004557e9 (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.c | 1 | ||||
-rw-r--r-- | sound/pci/ac97/ac97_patch.c | 6 | ||||
-rw-r--r-- | sound/pci/ac97/ac97_patch.h | 1 |
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 | ||
1341 | int 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); | |||
39 | int patch_cirrus_cs4299(struct snd_ac97 * ac97); | 39 | int patch_cirrus_cs4299(struct snd_ac97 * ac97); |
40 | int patch_cirrus_spdif(struct snd_ac97 * ac97); | 40 | int patch_cirrus_spdif(struct snd_ac97 * ac97); |
41 | int patch_conexant(struct snd_ac97 * ac97); | 41 | int patch_conexant(struct snd_ac97 * ac97); |
42 | int patch_cx20551(struct snd_ac97 * ac97); | ||
42 | int patch_ad1819(struct snd_ac97 * ac97); | 43 | int patch_ad1819(struct snd_ac97 * ac97); |
43 | int patch_ad1881(struct snd_ac97 * ac97); | 44 | int patch_ad1881(struct snd_ac97 * ac97); |
44 | int patch_ad1885(struct snd_ac97 * ac97); | 45 | int patch_ad1885(struct snd_ac97 * ac97); |