Date: Fri, 08 Jun 2007 01:03:36 +0900 From: Watanabe Kazuhiro <CQG00620@nifty.ne.jp> To: freebsd-multimedia <freebsd-multimedia@freebsd.org> Subject: Re: Problem recording, using <SiS 7012> Message-ID: <20070607160336.CBCBA2D4CF@mail.asahi-net.or.jp> In-Reply-To: <20070606172107.GA1475@ige.unicamp.br> References: <20070510115120.GB1716@ige.unicamp.br> <20070602124938.8F5123E054@mail.asahi-net.or.jp> <20070604140241.GA1474@ige.unicamp.br> <20070605145944.B750E3C23C@mail.asahi-net.or.jp> <20070605163410.GA1496@ige.unicamp.br> <20070606162049.995E53DFA5@mail.asahi-net.or.jp> <20070606172107.GA1475@ige.unicamp.br>
next in thread | previous in thread | raw e-mail | index | archive | help
At Wed, 6 Jun 2007 14:21:07 -0300, Ricardo Campos Passanezi wrote: > On Thu, Jun 07, 2007 at 01:20:49AM +0900, Watanabe Kazuhiro wrote: > > > > It's the first patch. Try it. > > Just to be sure: I've rebuilt th kernel after applying the patches. Is > this the right path? > > Well, after this I've done some tests with xwave and by issuing "cat > /dev/dsp > test.au" and then "cat test.au >> /dev/dsp". > > Neither of them worked... I've read the ASUS P5SD2-X english manual. It describes about the rear audio panel jacks: Audio 2, 4, or 6-channel configulation ------------------------------------------------------------------------- Port Headset 4-channel 6-channel 2-channel ------------------------------------------------------------------------- Light Bule Line In Line In [1] Line in [1] Lime Line Out Front Speaker Out Front Speaker Out Pink Mic In Mic In Mic In [2] ------------------------------------------------------------------------- (P5SD2-X English Manual E2026 (E2026_P5SD2-X.pdf), p.35) And there are the manuals those are written in chinese. I saw those manuals today, and they have the same table. I'm not familiar with chinese, but I just understand that [1]s and [2] are "output". AD1986A can share line inputs pins and surround outputs pins, and center/lfe outputs pins and microphone input pins. So perhaps [1]s are "Surround Out", and [2] is "Center/Subwoofer Out". I've write a new patch attached below. Try it. Note that before apply this patch, you have to restore the patched files. > The output of mixer: > > # mixer > Mixer vol is currently set to 75:75 > Mixer pcm is currently set to 80:80 > Mixer speaker is currently set to 75:75 > Mixer line is currently set to 75:75 > Mixer mic is currently set to 75:75 > Mixer cd is currently set to 75:75 > Mixer rec is currently set to 75:75 > Mixer igain is currently set to 0:0 > Mixer ogain is currently set to 50:50 > Mixer line1 is currently set to 75:75 > Mixer phin is currently set to 0:0 > Mixer phout is currently set to 0:0 > Recording source: mic > > > Do you need more info? Will you show me the output of "dmesg | grep pcm" and "pciconf -lv | grep pcm" ? Index: sys/dev/sound/pcm/ac97.c =================================================================== RCS file: /home/ncvs/src/sys/dev/sound/pcm/ac97.c,v retrieving revision 1.53.2.5 diff -u -r1.53.2.5 ac97.c --- sys/dev/sound/pcm/ac97.c 13 May 2007 20:53:39 -0000 1.53.2.5 +++ sys/dev/sound/pcm/ac97.c 6 Jun 2007 15:45:42 -0000 @@ -141,7 +141,7 @@ { 0x41445372, 0x00, 0, "AD1981A", 0 }, { 0x41445374, 0x00, 0, "AD1981B", ad1981b_patch }, { 0x41445375, 0x00, 0, "AD1985", ad198x_patch }, - { 0x41445378, 0x00, 0, "AD1986", ad198x_patch }, + { 0x41445378, 0x00, 0, "AD1986", ad1986_patch }, { 0x414b4d00, 0x00, 1, "AK4540", 0 }, { 0x414b4d01, 0x00, 1, "AK4542", 0 }, { 0x414b4d02, 0x00, 1, "AK4543", 0 }, Index: sys/dev/sound/pcm/ac97_patch.c =================================================================== RCS file: /home/ncvs/src/sys/dev/sound/pcm/ac97_patch.c,v retrieving revision 1.3.2.2 diff -u -r1.3.2.2 ac97_patch.c --- sys/dev/sound/pcm/ac97_patch.c 26 Apr 2007 08:30:52 -0000 1.3.2.2 +++ sys/dev/sound/pcm/ac97_patch.c 7 Jun 2007 12:47:18 -0000 @@ -43,9 +43,30 @@ void ad198x_patch(struct ac97_info* codec) { + /* + * The mixer outputs drives the SURR_OUT and HP_OUT pins. + */ ac97_wrcd(codec, 0x76, ac97_rdcd(codec, 0x76) | 0x0420); } +void ad1986_patch(struct ac97_info* codec) +{ + ac97_wrcd(codec, 0x76, ac97_rdcd(codec, 0x76) | 0x0420); + + /* + * Disable outputs of the SURR_OUT and CENTER_OUT/LFE_OUT pins. + * Select the SURR_OUT pins as the LINE_IN inputs. + * Select the CENTER_OUT/LFE_OUT pins as the MIC inputs. + * Enable the stereo microphone mode. + * + * XXX must be restricted only for particular models. + */ + ac97_wrcd(codec, 0x76, ac97_rdcd(codec, 0x76) | 0x1800); + ac97_wrcd(codec, 0x76, ac97_rdcd(codec, 0x76) | 0x0004); + ac97_wrcd(codec, 0x74, ac97_rdcd(codec, 0x74) | 0x0200); + ac97_wrcd(codec, 0x76, ac97_rdcd(codec, 0x76) | 0x0040); +} + void ad1981b_patch(struct ac97_info* codec) { /* Index: sys/dev/sound/pcm/ac97_patch.h =================================================================== RCS file: /home/ncvs/src/sys/dev/sound/pcm/ac97_patch.h,v retrieving revision 1.3.2.2 diff -u -r1.3.2.2 ac97_patch.h --- sys/dev/sound/pcm/ac97_patch.h 26 Apr 2007 08:30:52 -0000 1.3.2.2 +++ sys/dev/sound/pcm/ac97_patch.h 6 Jun 2007 15:46:12 -0000 @@ -30,5 +30,6 @@ void ad1886_patch(struct ac97_info*); void ad198x_patch(struct ac97_info*); void ad1981b_patch(struct ac97_info*); +void ad1986_patch(struct ac97_info*); void cmi9739_patch(struct ac97_info*); void alc655_patch(struct ac97_info*); --- Watanabe Kazuhiro (CQG00620@nifty.ne.jp)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070607160336.CBCBA2D4CF>