From owner-freebsd-multimedia@FreeBSD.ORG Tue Jun 13 09:47:40 2006 Return-Path: X-Original-To: freebsd-multimedia@freebsd.org Delivered-To: freebsd-multimedia@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 59F2916A47B for ; Tue, 13 Jun 2006 09:47:40 +0000 (UTC) (envelope-from kosio.dimitrov@gmail.com) Received: from wx-out-0102.google.com (wx-out-0102.google.com [66.249.82.193]) by mx1.FreeBSD.org (Postfix) with ESMTP id BB94C43D45 for ; Tue, 13 Jun 2006 09:47:39 +0000 (GMT) (envelope-from kosio.dimitrov@gmail.com) Received: by wx-out-0102.google.com with SMTP id i31so1039153wxd for ; Tue, 13 Jun 2006 02:47:39 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:references; b=rsx6iB4ePkgcr9zYLL8TM/wlpaWhWwpDBqjsu1pALuhoRijdRadvZKgqc7U0iQK3mWS8bFjMuzK5Gab7bH1elHVoiK2meUsTjVlLuZRAU9APUDULEVLNDllsM6vxlxmqThpviGzYDA4LFbPfDFxXFhl+4BsiEBGI1xm8XO5wz5w= Received: by 10.70.32.7 with SMTP id f7mr7425793wxf; Tue, 13 Jun 2006 02:47:38 -0700 (PDT) Received: by 10.70.54.9 with HTTP; Tue, 13 Jun 2006 02:47:38 -0700 (PDT) Message-ID: <8103ad500606130247w63cce8e7j9ab9cb4428228811@mail.gmail.com> Date: Tue, 13 Jun 2006 12:47:38 +0300 From: "Konstantin Dimitrov" To: freebsd-multimedia@freebsd.org In-Reply-To: <8103ad500606121534h2a9480aem8be58220c2e04996@mail.gmail.com> MIME-Version: 1.0 References: <200606072039.13422.shoesoft@gmx.net> <8103ad500606071552k77985b54o3378d9351e4bdcf8@mail.gmail.com> <200606081614.43375.shoesoft@gmx.net> <8103ad500606081031s40ac1afcnfc78bd6734e43fdc@mail.gmail.com> <8103ad500606121534h2a9480aem8be58220c2e04996@mail.gmail.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: Alexander@leidinger.net Subject: Re: Status of VIA Envy24 audio controller X-BeenThere: freebsd-multimedia@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Multimedia discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Jun 2006 09:47:40 -0000 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 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); > } >