diff options
author | Takashi Iwai <tiwai@suse.de> | 2007-02-09 12:42:03 +0100 |
---|---|---|
committer | Jaroslav Kysela <perex@suse.cz> | 2007-02-14 08:38:21 +0100 |
commit | 9e292c0013d7d4158169eb9786aa0f9816eb5b40 (patch) | |
tree | da574acc636c0cfb437639534040511e254416ca /sound | |
parent | 9e507abd87103b5263bb0bbd94a15d74004557e9 (diff) | |
download | linux-9e292c0013d7d4158169eb9786aa0f9816eb5b40.tar.gz linux-9e292c0013d7d4158169eb9786aa0f9816eb5b40.tar.bz2 linux-9e292c0013d7d4158169eb9786aa0f9816eb5b40.zip |
[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>
Diffstat (limited to 'sound')
-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[] = { { 0x43525970, 0xfffffff8, "CS4202", NULL, NULL }, { 0x43585421, 0xffffffff, "HSD11246", NULL, NULL }, // SmartMC II { 0x43585428, 0xfffffff8, "Cx20468", patch_conexant, NULL }, // SmartAMC fixme: the mask might be different +{ 0x43585431, 0xffffffff, "Cx20551", patch_cx20551, NULL }, { 0x44543031, 0xfffffff0, "DT0398", NULL, NULL }, { 0x454d4328, 0xffffffff, "EM28028", NULL, NULL }, // same as TR28028? { 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) return 0; } +int patch_cx20551(struct snd_ac97 *ac97) +{ + snd_ac97_update_bits(ac97, 0x5c, 0x01, 0x01); + return 0; +} + /* * Analog Device AD18xx, AD19xx codecs */ 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); int patch_cirrus_cs4299(struct snd_ac97 * ac97); int patch_cirrus_spdif(struct snd_ac97 * ac97); int patch_conexant(struct snd_ac97 * ac97); +int patch_cx20551(struct snd_ac97 * ac97); int patch_ad1819(struct snd_ac97 * ac97); int patch_ad1881(struct snd_ac97 * ac97); int patch_ad1885(struct snd_ac97 * ac97); |