mirror of
https://github.com/fail0verflow/switch-linux.git
synced 2025-05-04 02:34:21 -04:00
[ALSA] ac97: Fix AD1819 volume range
AD1819 volume registers can hold extra bits which do not affect the actual volume. Add a res_table to the codec patch to fix the problem. PCM, line and mic volume were tested. Signed-off-by: Ville Syrjala <syrjala@sci.fi> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
This commit is contained in:
parent
93ed150375
commit
bd25b7cae1
1 changed files with 12 additions and 0 deletions
|
@ -1395,6 +1395,17 @@ static void ad1888_resume(struct snd_ac97 *ac97)
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static const struct snd_ac97_res_table ad1819_restbl[] = {
|
||||||
|
{ AC97_PHONE, 0x9f1f },
|
||||||
|
{ AC97_MIC, 0x9f1f },
|
||||||
|
{ AC97_LINE, 0x9f1f },
|
||||||
|
{ AC97_CD, 0x9f1f },
|
||||||
|
{ AC97_VIDEO, 0x9f1f },
|
||||||
|
{ AC97_AUX, 0x9f1f },
|
||||||
|
{ AC97_PCM, 0x9f1f },
|
||||||
|
{ } /* terminator */
|
||||||
|
};
|
||||||
|
|
||||||
int patch_ad1819(struct snd_ac97 * ac97)
|
int patch_ad1819(struct snd_ac97 * ac97)
|
||||||
{
|
{
|
||||||
unsigned short scfg;
|
unsigned short scfg;
|
||||||
|
@ -1402,6 +1413,7 @@ int patch_ad1819(struct snd_ac97 * ac97)
|
||||||
// patch for Analog Devices
|
// patch for Analog Devices
|
||||||
scfg = snd_ac97_read(ac97, AC97_AD_SERIAL_CFG);
|
scfg = snd_ac97_read(ac97, AC97_AD_SERIAL_CFG);
|
||||||
snd_ac97_write_cache(ac97, AC97_AD_SERIAL_CFG, scfg | 0x7000); /* select all codecs */
|
snd_ac97_write_cache(ac97, AC97_AD_SERIAL_CFG, scfg | 0x7000); /* select all codecs */
|
||||||
|
ac97->res_table = ad1819_restbl;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue