basic support for M-Audio Audiophile 2496 available
Stefan Ehmann
shoesoft at gmx.net
Mon Jun 12 18:28:30 UTC 2006
This is a follow up to the "Status of VIA Envy24 audio controller support in
FreeBSD" from May.
This is a modification of the driver written by Katsurajima Naoto.
Fixes for compilation on recent FreeBSD versions were provided by Konstantin
Dimitrov. For the card specific changes, credits also go to him.
pciconf -lv output:
pcm0 at pci0:13:0: class=0x040100 card=0xd6341412 chip=0x17121412 rev=0x02
hdr=0x00
vendor = 'VIA Technologies Inc (Was: IC Ensemble Inc)'
device = 'ICE1712 Envy24 Multichannel Audio Controller'
class = multimedia
subclass = audio
The necessary card specific changes are quite small:
--- envy24.c.orig Sun Jun 11 14:01:24 2006
+++ envy24.c Sun Jun 11 13:08:43 2006
@@ -805,12 +805,7 @@
gpiodir |= ENVY24_GPIO_AK4524_CDTI | ENVY24_GPIO_AK4524_CCLK |
ENVY24_GPIO_AK4524_CS0 | ENVY24_GPIO_AK4524_CS1;
envy24_gpiosetdir(ptr->parent, gpiodir);
*/
- envy24_gpiosetmask(ptr->parent, ENVY24_GPIO_CS8414_STATUS);
- envy24_gpiosetdir(ptr->parent, ~ENVY24_GPIO_CS8414_STATUS);
- if (ptr->num == 0)
- ptr->cs = ENVY24_GPIO_AK4524_CS0;
- else
- ptr->cs = ENVY24_GPIO_AK4524_CS1;
+ ptr->cs = ENVY24_GPIO_AK4524_CS0;
ptr->cclk = ENVY24_GPIO_AK4524_CCLK;
ptr->cdti = ENVY24_GPIO_AK4524_CDTI;
ak452x_settype(ptr->info, AK452X_TYPE_4524);
--- envy24.h.orig Sun Jun 11 14:01:30 2006
+++ envy24.h Sun Jun 11 13:59:02 2006
@@ -465,9 +465,9 @@
#define ENVY24_GPIO_CS8414_STATUS 0x02
#define ENVY24_GPIO_CS84X4_CLK 0x04
#define ENVY24_GPIO_CS84X4_DATA 0x08
-#define ENVY24_GPIO_AK4524_CDTI 0x10 /* this value is duplicated to input
select */
-#define ENVY24_GPIO_AK4524_CCLK 0x20
-#define ENVY24_GPIO_AK4524_CS0 0x40
+#define ENVY24_GPIO_AK4524_CDTI 0x08 /* this value is duplicated to input
select */
+#define ENVY24_GPIO_AK4524_CCLK 0x02
+#define ENVY24_GPIO_AK4524_CS0 0x20
#define ENVY24_GPIO_AK4524_CS1 0x80
/* M-Audio Delta series S/PDIF(CS84[01]4) control pin values */
Note that this patch breaks support for other cards -- it's mainly a
proof-of-concept that the driver works. The main difference
between the Dio card is that there is only one AKM452x codec (apart from pin
definitions).
Seems to work quite good so far for me.
I like it much better than the driver from opensound.com (which has troubles
with some applications). At the moment, there are some features missing
compared to the opensound.com driver though.
If someone wants to test this: Be sure to execute mixer pcm 100 first, because
the default value of 75 is very quiet. mixer vol doesn't have any effect.
More information about the freebsd-multimedia
mailing list