Status of VIA Envy24 audio controller

Nikolas Britton nikolas.britton at gmail.com
Tue Jun 13 10:23:52 UTC 2006


On 6/13/06, Konstantin Dimitrov <kosio.dimitrov at gmail.com> wrote:
> i found obvious bug, that affects all cards: "codec->type = dvc;" (ak452x.c)
> obviously should be "codec->dvc = dvc;", this cause the previously mentioned
> volume problem with "M-Audio Audiophile 2496", so original "ak452x_set"
> routine is ok,  after fixing "codec->type = dvc;" to "codec->dvc = dvc;", we
> have working "mixer vol ..." with both "Terratec DMX 6fire" and "M-Audio
> Audiophile 2496", of cource correct codec type should be set in envy24.c :
> "ak452x_settype(ptr->info, AK452X_TYPE_4528);" for "M-Audio Audiophile 2496"
> "ak452x_settype(ptr->info, AK452X_TYPE_4524);" for "Terratec DMX 6fire"
>
> after fixing the bug described above, both cards working now only with
> touching hardware specific parts of the Katsurajima Naoto's code - to be
> more specific - 3 lines to set right wiring in envy24.h (codec CS, CDTI,
> CCLK) and 1 line to set right codec in envy24.c, so Katsurajima Naoto's code
> is pretty generic and so it can be used as a base for Envy24 driver
> supporting many Envy24-based audio cards under FreeBSD.
>
>
> On 6/13/06, Konstantin Dimitrov < kosio.dimitrov at gmail.com> wrote:
> >
> > thanks to cooperation with Stefan Ehmann (shoesoft at gmx.net), there is a
> patch adding basic "M-Audio Audiophile 2496" support, he sent the initial
> patch to freebsd-multimedia@ titled "basic support for M-Audio Audiophile
> 2496 available", now the "volume" problem with "M-Audio Audiophile 2496" is
> fixed using slightly changed "ak452x_set" ( ak452x.c) routine:
> >
> > void
> > ak452x_set(struct ak452x_info *codec, int dir, unsigned int left, unsigned
> int right)
> > {
> >
> > #if(0)
> >     device_printf(codec->dev, "ak452x_set(codec, %d, %d, %d)\n", dir,
> left, right);
> >
> > #endif
> >     snd_mtxlock(codec->lock);
> >
> >     if (left >= 100)
> >         left  = 127;
> >     else
> >         left = left * 127 / 100;
> >     if (right >= 100)
> >         right  = 127;
> >     else
> >         right = right * 127 / 100;
> >
> >     if (dir == PCMDIR_PLAY) {
> >
> > #if(0)
> >         device_printf(codec->dev, "ak452x_set(): AK4528(PLAY) %d/%d\n",
> left, right);
> > #endif
> >
> >         ak452x_wrcd(codec, AK4528_LOATT, left);
> >         ak452x_wrcd(codec, AK4528_ROATT, right);
> >     }
> >
> >     snd_mtxunlock(codec->lock);
> > }
>
>

Cool!, I just order a Audiophile 2496, it should be in my hands by
then end of the week for testing. Is it possible to get a diff of all
the new code?:

Patch set of the changes you made to get Katsurajima old code running
again on 6.1-STABLE. Plus a patch set of the changes you and Stefan
made to get audiophile 2496 running?


-- 
BSD Podcasts @:
http://bsdtalk.blogspot.com/
http://freebsdforall.blogspot.com/


More information about the freebsd-multimedia mailing list