|
@@ -157,6 +157,7 @@ static const ac97_codec_id_t snd_ac97_codec_ids[] = {
|
|
{ 0x54524123, 0xffffffff, "TR28602", NULL, NULL }, // only guess --jk [TR28023 = eMicro EM28023 (new CT1297)]
|
|
{ 0x54524123, 0xffffffff, "TR28602", NULL, NULL }, // only guess --jk [TR28023 = eMicro EM28023 (new CT1297)]
|
|
{ 0x54584e20, 0xffffffff, "TLC320AD9xC", NULL, NULL },
|
|
{ 0x54584e20, 0xffffffff, "TLC320AD9xC", NULL, NULL },
|
|
{ 0x56494161, 0xffffffff, "VIA1612A", NULL, NULL }, // modified ICE1232 with S/PDIF
|
|
{ 0x56494161, 0xffffffff, "VIA1612A", NULL, NULL }, // modified ICE1232 with S/PDIF
|
|
|
|
+{ 0x56494170, 0xffffffff, "VIA1617A", patch_vt1617a, NULL }, // modified VT1616 with S/PDIF
|
|
{ 0x57454301, 0xffffffff, "W83971D", NULL, NULL },
|
|
{ 0x57454301, 0xffffffff, "W83971D", NULL, NULL },
|
|
{ 0x574d4c00, 0xffffffff, "WM9701A", NULL, NULL },
|
|
{ 0x574d4c00, 0xffffffff, "WM9701A", NULL, NULL },
|
|
{ 0x574d4C03, 0xffffffff, "WM9703,WM9707,WM9708,WM9717", patch_wolfson03, NULL},
|
|
{ 0x574d4C03, 0xffffffff, "WM9703,WM9707,WM9708,WM9717", patch_wolfson03, NULL},
|
|
@@ -2580,8 +2581,6 @@ int snd_ac97_tune_hardware(ac97_t *ac97, struct ac97_quirk *quirk, const char *o
|
|
{
|
|
{
|
|
int result;
|
|
int result;
|
|
|
|
|
|
- snd_assert(quirk, return -EINVAL);
|
|
|
|
-
|
|
|
|
/* quirk overriden? */
|
|
/* quirk overriden? */
|
|
if (override && strcmp(override, "-1") && strcmp(override, "default")) {
|
|
if (override && strcmp(override, "-1") && strcmp(override, "default")) {
|
|
result = apply_quirk_str(ac97, override);
|
|
result = apply_quirk_str(ac97, override);
|
|
@@ -2590,6 +2589,9 @@ int snd_ac97_tune_hardware(ac97_t *ac97, struct ac97_quirk *quirk, const char *o
|
|
return result;
|
|
return result;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ if (! quirk)
|
|
|
|
+ return -EINVAL;
|
|
|
|
+
|
|
for (; quirk->subvendor; quirk++) {
|
|
for (; quirk->subvendor; quirk++) {
|
|
if (quirk->subvendor != ac97->subsystem_vendor)
|
|
if (quirk->subvendor != ac97->subsystem_vendor)
|
|
continue;
|
|
continue;
|