Date: Mon, 28 Jul 2008 19:43:32 +0300 From: Kostik Belousov <kostikbel@gmail.com> To: WATANABE Kazuhiro <CQG00620@nifty.ne.jp> Cc: freebsd-multimedia <freebsd-multimedia@freebsd.org> Subject: Re: AD1985 microphone input (Re: Problem recording, using <SiS 7012>) Message-ID: <20080728164332.GL97161@deviant.kiev.zoral.com.ua> In-Reply-To: <20080728160050.2757F517E6@mail.asahi-net.or.jp> References: <18678895.post@talk.nabble.com> <20080728160050.2757F517E6@mail.asahi-net.or.jp>
next in thread | previous in thread | raw e-mail | index | archive | help
--Tw5XVHq4jmAOFG53 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Jul 29, 2008 at 01:00:49AM +0900, WATANABE Kazuhiro wrote: > Hello. >=20 > Changed the subject. >=20 > At Sun, 27 Jul 2008 11:11:38 -0700 (PDT), > DoctorD wrote: > > Hi! > >=20 > > I have the same problem, but I have a bit different card: > >=20 > > pcm0: <Intel ICH5 (82801EB)> port 0xc000-0xc0ff,0xc400-0xc43f mem > > 0xf7dff800-0xf7dff9ff,0xf7dff400-0xf7dff4ff irq 17 at device 31.5 on pc= i0 > > pcm0: [ITHREAD] > > pcm0: <Analog Devices AD1985 AC97 Codec> > >=20 > > MB: ASUS P4P800 Deluxe > >=20 > > I tried to apply you last patch, but my card didn't work... > > Could you please, create a one more patch for my card. > >=20 > > Thanx. >=20 > Would you apply the patch below? If your ICH audio controller has a > different card ID, change the value of the "case" statement in > ad1985_patch(). To settle the ID, I've referred the following mail: >=20 > http://lists.freebsd.org/pipermail/freebsd-multimedia/2003-October/00049= 7.html >=20 >=20 > --- sys/dev/sound/pcm/ac97.c.releng70 2007-10-30 03:47:47.000000000 +0900 > +++ sys/dev/sound/pcm/ac97.c 2008-07-28 18:29:02.000000000 +0900 > @@ -141,8 +141,8 @@ > { 0x41445370, 0x00, 0, "AD1980", ad198x_patch }, > { 0x41445372, 0x00, 0, "AD1981A", 0 }, > { 0x41445374, 0x00, 0, "AD1981B", ad1981b_patch }, > - { 0x41445375, 0x00, 0, "AD1985", ad198x_patch }, > - { 0x41445378, 0x00, 0, "AD1986", ad198x_patch }, > + { 0x41445375, 0x00, 0, "AD1985", ad1985_patch }, > + { 0x41445378, 0x00, 0, "AD1986", ad1986_patch }, > { 0x414b4d00, 0x00, 1, "AK4540", 0 }, > { 0x414b4d01, 0x00, 1, "AK4542", 0 }, > { 0x414b4d02, 0x00, 1, "AK4543", 0 }, > --- sys/dev/sound/pcm/ac97_patch.c.releng70 2007-10-30 03:47:27.000000000= +0900 > +++ sys/dev/sound/pcm/ac97_patch.c 2008-07-28 21:33:56.000000000 +0900 > @@ -69,6 +69,66 @@ > } > } > =20 > +void ad1985_patch(struct ac97_info* codec) > +{ > + /* > + * Disable outputs of the SURR_OUT and CENTER_OUT/LFE_OUT pins. > + * Select the CENTER_OUT/LFE_OUT pins as the MIC inputs. > + * Enable the stereo microphone mode. > + * > + * Set the voltage of the VREFOUT pin. > + */ > + switch (ac97_getsubvendor(codec)) { > + case 0x80f31043: /* ASUS P4P800 Deluxe (SE) */ > + ac97_wrcd(codec, 0x76, ac97_rdcd(codec, 0x76) | 0x1800); > + ac97_wrcd(codec, 0x74, ac97_rdcd(codec, 0x74) | 0x0200); > + ac97_wrcd(codec, 0x76, ac97_rdcd(codec, 0x76) | 0x0040); > + > + /* > + * 0x0 =3D 2.25V (default) > + * 0x1 =3D High-Z > + * 0x2 =3D 3.7V > + * 0x3 =3D 0V > + */ > + ac97_wrcd(codec, 0x76, (ac97_rdcd(codec, 0x76) & ~0xc) > + | 0x0 << 2); > + break; > + default: > + break; > + } > +} > + > +void ad1986_patch(struct ac97_info* codec) > +{ > + /* > + * 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. > + * > + * Set the voltage of the C/LFE VREF_OUT pin. > + */ > + switch (ac97_getsubvendor(codec)) { > + case 0x818f1043: /* ASUS P5SD2-X (SE) */ > + 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); > + > + /* > + * 0x0 =3D High-Z (default) > + * 0x1 =3D 2.25V > + * 0x2 =3D 0V > + * 0x4 =3D 3.70V > + */ > + ac97_wrcd(codec, 0x70, (ac97_rdcd(codec, 0x70) & ~0x1c) > + | 0x1 << 2); > + break; > + default: > + break; > + } > +} > + > void cmi9739_patch(struct ac97_info* codec) > { > /* > --- sys/dev/sound/pcm/ac97_patch.h.releng70 2007-04-19 22:54:22.000000000= +0900 > +++ sys/dev/sound/pcm/ac97_patch.h 2008-07-28 18:29:21.000000000 +0900 > @@ -31,5 +31,7 @@ > void ad1886_patch(struct ac97_info*); > void ad198x_patch(struct ac97_info*); > void ad1981b_patch(struct ac97_info*); > +void ad1985_patch(struct ac97_info*); > +void ad1986_patch(struct ac97_info*); > void cmi9739_patch(struct ac97_info*); > void alc655_patch(struct ac97_info*); >=20 BTW, I use the http://people.freebsd.org/~kib/ad1985/setup_mic_ad1985.cc --Tw5XVHq4jmAOFG53 Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (FreeBSD) iEYEARECAAYFAkiN9zQACgkQC3+MBN1Mb4hWsQCfYb74Y7/9pdxM3C6//fquhtJA nbEAoIp5oIFOdb/AsS7dP/ndb0JmN+Yi =2cSp -----END PGP SIGNATURE----- --Tw5XVHq4jmAOFG53--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080728164332.GL97161>