Commit d6482288 authored by Maciej S. Szmigiero's avatar Maciej S. Szmigiero Committed by Takashi Iwai
Browse files

ALSA: ac97: Add VT1613 AC97 codec support



Patch to add an VT1613 AC97 codec support.

This codec has additional DC offset removal control,
headphone output and no video input.

Signed-off-by: default avatarMaciej Szmigiero <mail@maciej.szmigiero.name>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent a52afea6
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -177,6 +177,7 @@ static const struct ac97_codec_id snd_ac97_codec_ids[] = {
{ 0x54524123, 0xffffffff, "TR28602",		NULL,		NULL }, // only guess --jk [TR28023 = eMicro EM28023 (new CT1297)]
{ 0x54584e03, 0xffffffff, "TLV320AIC27",	NULL,		NULL },
{ 0x54584e20, 0xffffffff, "TLC320AD9xC",	NULL,		NULL },
{ 0x56494120, 0xfffffff0, "VIA1613",		patch_vt1613,	NULL },
{ 0x56494161, 0xffffffff, "VIA1612A",		NULL,		NULL }, // modified ICE1232 with S/PDIF
{ 0x56494170, 0xffffffff, "VIA1617A",		patch_vt1617a,	NULL }, // modified VT1616 with S/PDIF
{ 0x56494182, 0xffffffff, "VIA1618",		patch_vt1618,   NULL },
+33 −0
Original line number Diff line number Diff line
@@ -3351,6 +3351,39 @@ static int patch_cm9780(struct snd_ac97 *ac97)
	return 0;
}

/*
 * VIA VT1613 codec
 */
static const struct snd_kcontrol_new snd_ac97_controls_vt1613[] = {
AC97_SINGLE("DC Offset removal", 0x5a, 10, 1, 0),
};

static int patch_vt1613_specific(struct snd_ac97 *ac97)
{
	int err;

	err = patch_build_controls(ac97, &snd_ac97_controls_vt1613[0],
				ARRAY_SIZE(snd_ac97_controls_vt1613));
	if (err)
		return err;

	return 0;
};

static const struct snd_ac97_build_ops patch_vt1613_ops = {
	.build_specific	= patch_vt1613_specific
};

static int patch_vt1613(struct snd_ac97 *ac97)
{
	ac97->build_ops = &patch_vt1613_ops;

	ac97->flags |= AC97_HAS_NO_VIDEO;
	ac97->caps |= AC97_BC_HEADPHONE;

	return 0;
}

/*
 * VIA VT1616 codec
 */