Date: Fri, 23 Nov 2012 09:30:01 GMT From: David Demelier <demelier.david@gmail.com> To: freebsd-bugs@FreeBSD.org Subject: Re: kern/173840: snd_hda(4) volume mixer not working anymore Message-ID: <201211230930.qAN9U1Bp055669@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/173840; it has been noted by GNATS. From: David Demelier <demelier.david@gmail.com> To: Alexander Motin <mav@freebsd.org> Cc: bug-followup@freebsd.org Subject: Re: kern/173840: snd_hda(4) volume mixer not working anymore Date: Fri, 23 Nov 2012 10:22:52 +0100 --047d7b339bb5ce7a3e04cf2620c0 Content-Type: text/plain; charset=UTF-8 Thanks for your answer, I'll try this patch tonight and tell you if it works. However will you be able to fix it as universal way ? I've just have another question, when I boot and the hda probes devices I hear a big "tick" / "click" in the speakers (this was also happening on 9.0 and before) but I never found a solution.. It also happens if I mute the sound, setting the volume to 0 and then to 80 will generate these noise. Cheers, and thanks for your answer :-) 2012/11/23 Alexander Motin <mav@freebsd.org> > Hi. > > I can't qualify it is as a driver bug. At most it is behavior change. > There are two signal paths from the DACs to the pins in this CODEC: direct > and via the mixer. And there is no volume control on the direct path. In > your specific case it is possible to route signal via the mixer and control > it there. But present driver is unable to make reasonable selection in such > cases. Probably previously driver version did the right thing by accident. > > Patch below should probably help in your case, but it is not universal > enough to commit it. > > --- hdaa_patches.c (revision 243182) > +++ hdaa_patches.c (working copy) > @@ -442,6 +442,14 @@ hdaa_patch(struct hdaa_devinfo *devinfo) > if (w != NULL) > w->connsenable[3] = 0; > break; > + case HDA_CODEC_AD1984A: > + w = hdaa_widget_get(devinfo, 7); > + if (w != NULL) > + w->connsenable[0] = 0; > + w = hdaa_widget_get(devinfo, 11); > + if (w != NULL) > + w->connsenable[0] = 0; > + break; > case HDA_CODEC_AD1986A: > /* > * This CODEC has overcomplicated input mixing. > > > -- > Alexander Motin > -- Demelier David --047d7b339bb5ce7a3e04cf2620c0 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Thanks for your answer, I'll try this patch tonight and tell you if it = works. However will you be able to fix it as universal way ?<br><br>I'v= e just have another question, when I boot and the hda probes devices I hear= a big "tick" / "click" in the speakers (this was also = happening on 9.0 and before) but I never found a solution.. It also happens= if I mute the sound, setting the volume to 0 and then to 80 will generate = these noise.<br> <br>Cheers, and thanks for your answer :-)<br><div class=3D"gmail_extra"><b= r><br><div class=3D"gmail_quote">2012/11/23 Alexander Motin <span dir=3D"lt= r"><<a href=3D"mailto:mav@freebsd.org" target=3D"_blank">mav@freebsd.org= </a>></span><br> <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p= x #ccc solid;padding-left:1ex">Hi.<br> <br> I can't qualify it is as a driver bug. At most it is behavior change. T= here are two signal paths from the DACs to the pins in this CODEC: direct a= nd via the mixer. And there is no volume control on the direct path. In you= r specific case it is possible to route signal via the mixer and control it= there. But present driver is unable to make reasonable selection in such c= ases. Probably previously driver version did the right thing by accident.<b= r> <br> Patch below should probably help in your case, but it is not universal enou= gh to commit it.<br> <br> --- hdaa_patches.c =C2=A0 =C2=A0 =C2=A0(revision 243182)<br> +++ hdaa_patches.c =C2=A0 =C2=A0 =C2=A0(working copy)<br> @@ -442,6 +442,14 @@ hdaa_patch(struct hdaa_devinfo *devinfo)<br> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if (w !=3D NULL)<br= > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 w->connsenable[3] =3D 0;<br> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 break;<br> + =C2=A0 =C2=A0 =C2=A0 case HDA_CODEC_AD1984A:<br> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 w =3D hdaa_widget_get(de= vinfo, 7);<br> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if (w !=3D NULL)<br> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 w->connsenable[0] =3D 0;<br> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 w =3D hdaa_widget_get(de= vinfo, 11);<br> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if (w !=3D NULL)<br> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 w->connsenable[0] =3D 0;<br> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 break;<br> =C2=A0 =C2=A0 =C2=A0 =C2=A0 case HDA_CODEC_AD1986A:<br> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 /*<br> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0* This CODEC = has overcomplicated input mixing.<span class=3D"HOEnZb"><font color=3D"#888= 888"><br> <br> <br> -- <br> Alexander Motin<br> </font></span></blockquote></div><br><br clear=3D"all"><br>-- <br>Demelier = David<br> </div> --047d7b339bb5ce7a3e04cf2620c0--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201211230930.qAN9U1Bp055669>