From owner-freebsd-multimedia@FreeBSD.ORG Fri Aug 11 09:58: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 E629216A4DA for ; Fri, 11 Aug 2006 09:58:40 +0000 (UTC) (envelope-from kosio.dimitrov@gmail.com) Received: from wx-out-0506.google.com (wx-out-0506.google.com [66.249.82.230]) by mx1.FreeBSD.org (Postfix) with ESMTP id 34B4F43D49 for ; Fri, 11 Aug 2006 09:58:40 +0000 (GMT) (envelope-from kosio.dimitrov@gmail.com) Received: by wx-out-0506.google.com with SMTP id i27so608236wxd for ; Fri, 11 Aug 2006 02:58:40 -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=Ew1M/krRobeHKFH89u2C23JuyGz3+n4cCHhrDVTSt165n8Y89F7/Fo4COlZ/dZwgTGfVRvJS35abi+QK2uFP+EwIKPJh3m8gCjjrzLzuWPOZsCl6xpGTeV2/kgzC12+t5uwjPBNH0YChynhQcaVyIt11vqGbOkTOXctDUjImKT4= Received: by 10.70.69.11 with SMTP id r11mr4752143wxa; Fri, 11 Aug 2006 02:58:39 -0700 (PDT) Received: by 10.70.31.10 with HTTP; Fri, 11 Aug 2006 02:58:39 -0700 (PDT) Message-ID: <8103ad500608110258y2fb1f9c2g6fc79033531583ea@mail.gmail.com> Date: Fri, 11 Aug 2006 12:58:39 +0300 From: "Konstantin Dimitrov" To: freebsd-multimedia@freebsd.org In-Reply-To: <8103ad500607240635w3d4a163ejf6eeb7b5c8fa3ca0@mail.gmail.com> MIME-Version: 1.0 References: <200606072039.13422.shoesoft@gmx.net> <8103ad500607170201k259336a8te2f741f27fd8d3a4@mail.gmail.com> <8103ad500607171052u5196fcf9se50a5a4cbfa0c9f9@mail.gmail.com> <200607172337.48028.lrntct@gmail.com> <8103ad500607180035t50633780wbf585805464b8696@mail.gmail.com> <8103ad500607240437p256e65c2y79cd8fdc34a53cf0@mail.gmail.com> <20060724144119.1vowamod40c88kws@netchild.homeip.net> <8103ad500607240635w3d4a163ejf6eeb7b5c8fa3ca0@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, dgerow@afflictions.org 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: Fri, 11 Aug 2006 09:58:41 -0000 i have done some work on the Envy24HT code, the initial (experimental) Envy24HT code was for Terratec Aureon 7.1 Space only, as i announced two months ago: http://lists.freebsd.org/pipermail/freebsd-multimedia/2006-June/004347.html now i have merged wm8770.c (my WM8770 code for use with Terratec Aureon 7.1Space) and ak452x.c (Katsurajima Naoto's code for AK4524/AK4528) and the new module supports not only AK4524/AK4528 and WM8770 codecs, but i also have added support for AK4358 and AK4381. the name of the new module is spicds (comes from spi = Serial Peripheral Interface used for codecs (cds) control) also i have made new site: http://envy24.svobodno.com - it is all-in-one Envy24 resource, i collect there all information for Envy24-based cards that i have - datasheets, wiring, code, e2prom dumps, etc. so it can save a lot of time especially for future developers. what's new (exept spicds.c) from the initial (experimental) Envy24HT code: - a lot of cosmetic and no so cosmetic changes - fix "interrupt storm" bug in the Envy24HT(172x) interrupt hadling - spicds.c allow me to add easily support for many Envy24HT-based cards: 0) Terratec Aureon 7.1 Space 1) Terratec Aureon 5.1 Sky 2) Terratec PHASE 28 3) Terratec Aureon 7.1 Universe 4) Audiotrak Prodigy 7.1 all these cards use Envy24HT + WM8770 and have the same wiring between Envy24HT and WM8770 like Terratec Aureon 7.1 Space, so they should be 100% working, i am testing the code on my Terratec Aureon 7.1 Space and from driver development point of view they all are the same card as Terratec Aureon 7.1 Space. 5) Audiotrak Prodigy 7.1 LT : need to be tested by someone, chances to work without additional code are very high (WM8770_RESETB <-> Envy24HT GPIO ? wiring is unknown) 6) Terratec PHASE 22 : uses Envy24HT-S and AK4524, need to be tested by someone, chances to work without additional code are medium (AK4524 <-> Envy24HT PSDOUT_? wiring is unknown) 7) M-Audio Revolution 7.1 : need to be tested by someone, chances to work without additional code are very high 8) M-Audio Revolution 5.1 : need to be tested by someone, chances to work without additional code is low (uses Envy24GT, no datasheet, also uses PT2258) 9) M-Audio Audiophile 192 : Damian Gerow (dgerow at afflictions dot org ) made E2PROM dump using my envy24-e2prom-dump kernel module and Noel Ambrose and his friend with a little help from me, managed to reverse the wiring of the Audiophile 192 (AP192). however the AP192 support need to be tested by someone, chances to work without additional code are very high. for all supported cards the volume can be change only with "mixer vol ..." because i reuse big part of the old Katsurajima Naoto's code for Envy24, the Envy24HT driver has some known problems: no vchans and 172x hasn't hardware mixing, so it is serious limitation - only one stereo file can be played at a same time, interrupt storm when module is loaded before the start of KDE (that apply for envy24.c also, for the moment workaround is to kldload the module after KDE is started), maybe there are also other problems. the new Envy24HT code is here: http://envy24.svobodno.com/driver/envy24ht/ so new architecture is: - envy24.c for Envy24(1712)-based cards - envy24ht.c for Envy24HT(1724)-based cards (in some cases it can be used also for 172x-based(Envy24HT-S, Envy24GT, etc.) cards) - spicds.c is used by both envy24.c and envy24ht.c (ak452x.c is no needed anymore) here is the patch to allow envy24.c to use spicds.c: http://envy24.svobodno.com/driver/envy24/envy24.c.ml2_cds.diff before apply the patch apply: http://envy24.svobodno.com/driver/envy24/envy24.c.spicds.diff which fixes two bugs in envy24.c that i noticed accidentally - memory leak, when "number of adcs" != "number of dacs" and multiple inicialization of the first codec. maybe Alexander will commit the envy24ht.c and spicds.c to the CVS and the two patches above for envy24.c and after that ak452x.c is no needed and can be removed from the CVS. i will be away from computer for the next several weeks, but if someone test the code, let me know the result ...