kern/173840: snd_hda(4) volume mixer not working anymore
David Demelier
demelier.david at gmail.com
Fri Nov 23 09:30:01 UTC 2012
The following reply was made to PR kern/173840; it has been noted by GNATS.
From: David Demelier <demelier.david at gmail.com>
To: Alexander Motin <mav at freebsd.org>
Cc: bug-followup at 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 at 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 at freebsd.org" target=3D"_blank">mav at 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--
More information about the freebsd-bugs
mailing list