Status of VIA Envy24 audio controller

Konstantin Dimitrov kosio.dimitrov at gmail.com
Tue Jun 13 10:52:58 UTC 2006


diffs to get old Katsurajima code running under FreeBSD 6.1 are here:
http://lists.freebsd.org/pipermail/freebsd-multimedia/2006-May/004223.html

Stefan, sent the initial diff ("mixer vol ..." is not working) for
"Audiophile 2496" yesterday to freebsd-multimedia@ :
http://lists.freebsd.org/pipermail/freebsd-multimedia/2006-June/004307.html

to fix "mixer vol ..." two additional changes are required (only 2 lines of
code):

1) as i said before, there is obvious bug, that affects all Envy24-based
cards, so no matter what card you have in ak452x.c "codec->type = dvc;"
should be changed to "codec->dvc = dvc;"
2) in envy24.c correct codec type should be set, for "Audiophile 2496"
change "ak452x_settype(ptr->info, AK452X_TYPE_4524);" to
"ak452x_settype(ptr->info, AK452X_TYPE_4528);"

On 6/13/06, Nikolas Britton <nikolas.britton at gmail.com> wrote:
>
> 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