tree 3ac409515c501318f1db774884eab6e8d7d2501d
parent 47672310789431c16de22f16934febf4d55b4bb0
author Philip Prindeville <[EMAIL PROTECTED]> Fri, 12 Aug 2005 16:46:17 +0200
committer Jaroslav Kysela <[EMAIL PROTECTED]> Tue, 30 Aug 2005 08:45:22 +0200

[ALSA] Add VT1617A codec support

AC97 Codec
Added (minimal) support of VT1617A codec with SPDIF.

Signed-off-by: Takashi Iwai <[EMAIL PROTECTED]>

 sound/pci/ac97/ac97_codec.c |    6 ++++--
 sound/pci/ac97/ac97_patch.c |   18 ++++++++++++++----
 sound/pci/ac97/ac97_patch.h |    1 +
 3 files changed, 19 insertions(+), 6 deletions(-)

diff --git a/sound/pci/ac97/ac97_codec.c b/sound/pci/ac97/ac97_codec.c
--- a/sound/pci/ac97/ac97_codec.c
+++ b/sound/pci/ac97/ac97_codec.c
@@ -157,6 +157,7 @@ static const ac97_codec_id_t snd_ac97_co
 { 0x54524123, 0xffffffff, "TR28602",           NULL,           NULL }, // only 
guess --jk [TR28023 = eMicro EM28023 (new CT1297)]
 { 0x54584e20, 0xffffffff, "TLC320AD9xC",       NULL,           NULL },
 { 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 },
 { 0x574d4c00, 0xffffffff, "WM9701A",           NULL,           NULL },
 { 0x574d4C03, 0xffffffff, "WM9703,WM9707,WM9708,WM9717", patch_wolfson03, 
NULL},
@@ -2580,8 +2581,6 @@ int snd_ac97_tune_hardware(ac97_t *ac97,
 {
        int result;
 
-       snd_assert(quirk, return -EINVAL);
-
        /* quirk overriden? */
        if (override && strcmp(override, "-1") && strcmp(override, "default")) {
                result = apply_quirk_str(ac97, override);
@@ -2590,6 +2589,9 @@ int snd_ac97_tune_hardware(ac97_t *ac97,
                return result;
        }
 
+       if (! quirk)
+               return -EINVAL;
+
        for (; quirk->subvendor; quirk++) {
                if (quirk->subvendor != ac97->subsystem_vendor)
                        continue;
diff --git a/sound/pci/ac97/ac97_patch.c b/sound/pci/ac97/ac97_patch.c
--- a/sound/pci/ac97/ac97_patch.c
+++ b/sound/pci/ac97/ac97_patch.c
@@ -375,7 +375,7 @@ AC97_DOUBLE("Front Playback Volume", AC9
 AC97_SINGLE("Front Playback Switch", AC97_WM97XX_FMIXER_VOL, 15, 1, 1),
 };
 
-static int patch_wolfson_wm9703_specific(ac97_t * ac97)
+int patch_wolfson_wm9703_specific(ac97_t * ac97)
 {
        /* This is known to work for the ViewSonic ViewPad 1000
         * Randolph Bentson <[EMAIL PROTECTED]>
@@ -410,7 +410,7 @@ AC97_DOUBLE("Rear DAC Volume", AC97_WM97
 AC97_DOUBLE("Surround Volume", AC97_SURROUND_MASTER, 8, 0, 31, 1),
 };
 
-static int patch_wolfson_wm9704_specific(ac97_t * ac97)
+int patch_wolfson_wm9704_specific(ac97_t * ac97)
 {
        int err, i;
        for (i = 0; i < ARRAY_SIZE(wm9704_snd_ac97_controls); i++) {
@@ -433,7 +433,7 @@ int patch_wolfson04(ac97_t * ac97)
        return 0;
 }
 
-static int patch_wolfson_wm9705_specific(ac97_t * ac97)
+int patch_wolfson_wm9705_specific(ac97_t * ac97)
 {
        int err, i;
        for (i = 0; i < ARRAY_SIZE(wm97xx_snd_ac97_controls); i++) {
@@ -558,7 +558,7 @@ AC97_SINGLE("Headphone ZC Switch", AC97_
 AC97_SINGLE("Mono ZC Switch", AC97_MASTER_MONO, 7, 1, 0),
 };
 
-static int patch_wolfson_wm9711_specific(ac97_t * ac97)
+int patch_wolfson_wm9711_specific(ac97_t * ac97)
 {
        int err, i;
        
@@ -2666,6 +2666,16 @@ int patch_vt1616(ac97_t * ac97)
 }
 
 /*
+ * VT1617A codec
+ */
+int patch_vt1617a(ac97_t * ac97)
+{
+       ac97->ext_id |= AC97_EI_SPDIF;  /* force the detection of spdif */
+       ac97->rates[AC97_RATES_SPDIF] = SNDRV_PCM_RATE_44100 | 
SNDRV_PCM_RATE_48000;
+       return 0;
+}
+
+/*
  */
 static void it2646_update_jacks(ac97_t *ac97)
 {
diff --git a/sound/pci/ac97/ac97_patch.h b/sound/pci/ac97/ac97_patch.h
--- a/sound/pci/ac97/ac97_patch.h
+++ b/sound/pci/ac97/ac97_patch.h
@@ -56,5 +56,6 @@ int patch_cm9739(ac97_t * ac97);
 int patch_cm9761(ac97_t * ac97);
 int patch_cm9780(ac97_t * ac97);
 int patch_vt1616(ac97_t * ac97);
+int patch_vt1617a(ac97_t * ac97);
 int patch_it2646(ac97_t * ac97);
 int mpatch_si3036(ac97_t * ac97);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to