I've attached a patch to fix a bug in the via82xx driver,
but I suspect the register is wrong for the VT8235 because
when I set the Input Source to 'Mic', no interrupts seem
to be getting triggered:

arecord: pcm_read:1110: read error: Input/output error

But as 'Line', it works (albeit with significantly reduced voltage and volume)

Are the specs for the VT8235 available anywhere?

Useful info:
Kernel: Linux 2.6.0-test7 (patched bug exists in CVS tree, too)
On-board sound card: 00:11.5 Class 0401: 1106:3059 (rev 50)
Motherboard: A7V333-X

-- 
Zinx Verituse
--- linux-2.6.0-test7/sound/pci/via82xx.c.orig  2003-10-22 23:09:56.000000000 -0500
+++ linux-2.6.0-test7/sound/pci/via82xx.c       2003-10-22 23:05:48.000000000 -0500
@@ -1382,7 +1382,7 @@
 static int snd_via8233_capture_source_get(snd_kcontrol_t *kcontrol, 
snd_ctl_elem_value_t *ucontrol)
 {
        via82xx_t *chip = snd_kcontrol_chip(kcontrol);
-       unsigned long port = chip->port + kcontrol->id.index ? 
(VIA_REG_CAPTURE_CHANNEL + 0x10) : VIA_REG_CAPTURE_CHANNEL;
+       unsigned long port = chip->port + (kcontrol->id.index ? 
(VIA_REG_CAPTURE_CHANNEL + 0x10) : VIA_REG_CAPTURE_CHANNEL);
        ucontrol->value.enumerated.item[0] = inb(port) & VIA_REG_CAPTURE_CHANNEL_MIC ? 
1 : 0;
        return 0;
 }
@@ -1390,7 +1390,7 @@
 static int snd_via8233_capture_source_put(snd_kcontrol_t *kcontrol, 
snd_ctl_elem_value_t *ucontrol)
 {
        via82xx_t *chip = snd_kcontrol_chip(kcontrol);
-       unsigned long port = chip->port + kcontrol->id.index ? 
(VIA_REG_CAPTURE_CHANNEL + 0x10) : VIA_REG_CAPTURE_CHANNEL;
+       unsigned long port = chip->port + (kcontrol->id.index ? 
(VIA_REG_CAPTURE_CHANNEL + 0x10) : VIA_REG_CAPTURE_CHANNEL);
        unsigned long flags;
        u8 val, oval;
 

Reply via email to