diff options
| author | Krzysztof Helt <krzysztof.h1@wp.pl> | 2010-01-10 17:21:14 +0100 | 
|---|---|---|
| committer | Jaroslav Kysela <perex@perex.cz> | 2010-01-10 19:03:09 +0100 | 
| commit | c68db7175f4dcb3d5789bb50bea6376fb81f87fe (patch) | |
| tree | a678c37174516c5c8e8334792ef8e7b1e0c7c826 /sound/pci/ac97 | |
| parent | af9a75dd1a1f8a9aa406466cc8bb16208120488a (diff) | |
| download | linux-c68db7175f4dcb3d5789bb50bea6376fb81f87fe.tar.bz2 | |
ALSA: ac97: add AC97 STMicroelectronics' codecs
Add the STMicroelectronics ST7597 codec and an unknown codec
from the same manufacturer found on the Creative SB 128 card (CT4810).
Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Diffstat (limited to 'sound/pci/ac97')
| -rw-r--r-- | sound/pci/ac97/ac97_codec.c | 10 | ||||
| -rw-r--r-- | sound/pci/ac97/ac97_id.h | 2 | 
2 files changed, 12 insertions, 0 deletions
| diff --git a/sound/pci/ac97/ac97_codec.c b/sound/pci/ac97/ac97_codec.c index c11920623009..a7630e9edf8a 100644 --- a/sound/pci/ac97/ac97_codec.c +++ b/sound/pci/ac97/ac97_codec.c @@ -83,6 +83,7 @@ static const struct ac97_codec_id snd_ac97_codec_id_vendors[] = {  { 0x4e534300, 0xffffff00, "National Semiconductor", NULL, NULL },  { 0x50534300, 0xffffff00, "Philips",		NULL,	NULL },  { 0x53494c00, 0xffffff00, "Silicon Laboratory",	NULL,	NULL }, +{ 0x53544d00, 0xffffff00, "STMicroelectronics",	NULL,	NULL },  { 0x54524100, 0xffffff00, "TriTech",		NULL,	NULL },  { 0x54584e00, 0xffffff00, "Texas Instruments",	NULL,	NULL },  { 0x56494100, 0xffffff00, "VIA Technologies",   NULL,	NULL }, @@ -161,6 +162,7 @@ static const struct ac97_codec_id snd_ac97_codec_ids[] = {  { 0x4e534350, 0xffffffff, "LM4550",		patch_lm4550,  	NULL }, // volume wrap fix   { 0x50534304, 0xffffffff, "UCB1400",		patch_ucb1400,	NULL },  { 0x53494c20, 0xffffffe0, "Si3036,8",		mpatch_si3036,	mpatch_si3036, AC97_MODEM_PATCH }, +{ 0x53544d02, 0xffffffff, "ST7597",		NULL,		NULL },  { 0x54524102, 0xffffffff, "TR28022",		NULL,		NULL },  { 0x54524103, 0xffffffff, "TR28023",		NULL,		NULL },  { 0x54524106, 0xffffffff, "TR28026",		NULL,		NULL }, @@ -213,6 +215,14 @@ static int snd_ac97_valid_reg(struct snd_ac97 *ac97, unsigned short reg)  {  	/* filter some registers for buggy codecs */  	switch (ac97->id) { +	case AC97_ID_ST_AC97_ID4: +		if (reg == 0x08) +			return 0; +		/* fall through */ +	case AC97_ID_ST7597: +		if (reg == 0x22 || reg == 0x7a) +			return 1; +		/* fall through */  	case AC97_ID_AK4540:  	case AC97_ID_AK4542:  		if (reg <= 0x1c || reg == 0x20 || reg == 0x26 || reg >= 0x7c) diff --git a/sound/pci/ac97/ac97_id.h b/sound/pci/ac97/ac97_id.h index c129492c82b3..d603147c4a96 100644 --- a/sound/pci/ac97/ac97_id.h +++ b/sound/pci/ac97/ac97_id.h @@ -62,3 +62,5 @@  #define AC97_ID_CM9761_78	0x434d4978  #define AC97_ID_CM9761_82	0x434d4982  #define AC97_ID_CM9761_83	0x434d4983 +#define AC97_ID_ST7597		0x53544d02 +#define AC97_ID_ST_AC97_ID4	0x53544d04 |