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