Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 13 Jun 2006 12:47:38 +0300
From:      "Konstantin Dimitrov" <kosio.dimitrov@gmail.com>
To:        freebsd-multimedia@freebsd.org
Cc:        Alexander@leidinger.net
Subject:   Re: Status of VIA Envy24 audio controller
Message-ID:  <8103ad500606130247w63cce8e7j9ab9cb4428228811@mail.gmail.com>
In-Reply-To: <8103ad500606121534h2a9480aem8be58220c2e04996@mail.gmail.com>
References:  <200606072039.13422.shoesoft@gmx.net> <8103ad500606071552k77985b54o3378d9351e4bdcf8@mail.gmail.com> <200606081614.43375.shoesoft@gmx.net> <8103ad500606081031s40ac1afcnfc78bd6734e43fdc@mail.gmail.com> <8103ad500606121534h2a9480aem8be58220c2e04996@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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@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);
> }
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?8103ad500606130247w63cce8e7j9ab9cb4428228811>