Date: Tue, 2 Oct 2018 21:36:18 +0100 From: Johannes Lundberg <johalun0@gmail.com> To: Jakob Alvermark <jakob@alvermark.net> Cc: freebsd-current <freebsd-current@freebsd.org> Subject: Re: Sound issues with Dell Latitude 7490 (kabylake) Message-ID: <CAECmPwvDz0dhUmS54wca1MOh0wrcyURnzmAtJRqU=Dzon0YRiA@mail.gmail.com> In-Reply-To: <3a68412a-493c-a242-58db-419702687b13@alvermark.net> References: <CAECmPws%2BqW0-zy0ucN0JSDEX=JLpAHm=AbXJYRJ-Mejnoy4ecA@mail.gmail.com> <85518f55-20a8-f534-7266-a9e847912afc@alvermark.net> <CAECmPwvqaWbWDu7TVpYxxTr7-Zr=RWnUWi1C=8S=TOmrBKdpZg@mail.gmail.com> <596a89fa-d7a3-1d39-d296-e07359cb487f@alvermark.net> <CAECmPws_WPscvmazu%2BoxsjParfUZnFfTEHkq8iQYoNFhBJxpdg@mail.gmail.com> <3a68412a-493c-a242-58db-419702687b13@alvermark.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Oct 2, 2018 at 9:32 PM Jakob Alvermark <jakob@alvermark.net> wrote: > On 10/2/18 9:56 PM, Johannes Lundberg wrote: > > > > On Mon, Oct 1, 2018 at 10:12 PM Jakob Alvermark <jakob@alvermark.net> > wrote: > >> On 10/1/18 10:56 PM, Johannes Lundberg wrote: >> > On Mon, Oct 1, 2018 at 8:37 PM Jakob Alvermark <jakob@alvermark.net> >> wrote: >> > >> >> On 10/1/18 5:57 PM, Johannes Lundberg wrote: >> >>> Hi >> >>> >> >>> While sound work out of the box (with headphone switching) on the 1-2 >> >> year >> >>> older Latitude 7270, it does not on my new machine. >> >>> >> >>> The internal speaker works fine. If I plug in external speakers in the >> >>> headphone jack, sound still goes to the internal speaker while a very >> >> load >> >>> buzz comes from the external speakers. >> >>> >> >>> Do we have a solution for this? >> >>> >> >>> # cat /dev/sndstat >> >>> Installed devices: >> >>> pcm0: <Realtek ALC256 (Internal Analog)> (play/rec) default >> >>> pcm1: <Realtek ALC256 (Front Analog Headphones)> (play) >> >>> pcm2: <Intel Kabylake (HDMI/DP 8ch)> (play) >> >>> No devices installed from userspace. >> >>> >> >>> # sysctl hw.snd >> >>> hw.snd.maxautovchans: 16 >> >>> hw.snd.default_unit: 0 >> >>> hw.snd.version: 2009061500/amd64 >> >>> hw.snd.default_auto: 1 >> >>> hw.snd.verbose: 0 >> >>> hw.snd.vpc_mixer_bypass: 1 >> >>> hw.snd.feeder_rate_quality: 1 >> >>> hw.snd.feeder_rate_round: 25 >> >>> hw.snd.feeder_rate_max: 2016000 >> >>> hw.snd.feeder_rate_min: 1 >> >>> hw.snd.feeder_rate_polyphase_max: 183040 >> >>> hw.snd.feeder_rate_presets: 100:8:0.85 100:36:0.92 100:164:0.97 >> >>> hw.snd.feeder_eq_exact_rate: 0 >> >>> hw.snd.feeder_eq_presets: >> >>> >> PEQ:16000,0.2500,62,0.2500:-9,9,1.0:44100,48000,88200,96000,176400,192000 >> >>> hw.snd.basename_clone: 1 >> >>> hw.snd.compat_linux_mmap: 0 >> >>> hw.snd.syncdelay: -1 >> >>> hw.snd.usefrags: 0 >> >>> hw.snd.vpc_reset: 0 >> >>> hw.snd.vpc_0db: 45 >> >>> hw.snd.vpc_autoreset: 1 >> >>> hw.snd.timeout: 5 >> >>> hw.snd.latency_profile: 1 >> >>> hw.snd.latency: 5 >> >>> hw.snd.report_soft_matrix: 1 >> >>> hw.snd.report_soft_formats: 1 >> >>> >> >>> # sysctl dev.pcm >> >>> dev.pcm.2.bitperfect: 0 >> >>> dev.pcm.2.buffersize: 65536 >> >>> dev.pcm.2.play.vchanformat: s16le:2.0 >> >>> dev.pcm.2.play.vchanrate: 48000 >> >>> dev.pcm.2.play.vchanmode: passthrough >> >>> dev.pcm.2.play.vchans: 1 >> >>> dev.pcm.2.play.32bit: 24 >> >>> dev.pcm.2.%parent: hdaa1 >> >>> dev.pcm.2.%pnpinfo: >> >>> dev.pcm.2.%location: nid=3 >> >>> dev.pcm.2.%driver: pcm >> >>> dev.pcm.2.%desc: Intel Kabylake (HDMI/DP 8ch) >> >>> dev.pcm.1.bitperfect: 0 >> >>> dev.pcm.1.buffersize: 65536 >> >>> dev.pcm.1.play.vchanformat: s16le:2.0 >> >>> dev.pcm.1.play.vchanrate: 48000 >> >>> dev.pcm.1.play.vchanmode: fixed >> >>> dev.pcm.1.play.vchans: 1 >> >>> dev.pcm.1.play.32bit: 24 >> >>> dev.pcm.1.%parent: hdaa0 >> >>> dev.pcm.1.%pnpinfo: >> >>> dev.pcm.1.%location: nid=33 >> >>> dev.pcm.1.%driver: pcm >> >>> dev.pcm.1.%desc: Realtek ALC256 (Front Analog Headphones) >> >>> dev.pcm.0.bitperfect: 0 >> >>> dev.pcm.0.buffersize: 65536 >> >>> dev.pcm.0.rec.vchanformat: s16le:2.0 >> >>> dev.pcm.0.rec.vchanrate: 48000 >> >>> dev.pcm.0.rec.vchanmode: fixed >> >>> dev.pcm.0.rec.vchans: 1 >> >>> dev.pcm.0.rec.autosrc: 2 >> >>> dev.pcm.0.rec.32bit: 24 >> >>> dev.pcm.0.play.vchanformat: s16le:2.0 >> >>> dev.pcm.0.play.vchanrate: 48000 >> >>> dev.pcm.0.play.vchanmode: fixed >> >>> dev.pcm.0.play.vchans: 2 >> >>> dev.pcm.0.play.32bit: 24 >> >>> dev.pcm.0.%parent: hdaa0 >> >>> dev.pcm.0.%pnpinfo: >> >>> dev.pcm.0.%location: nid=20,18 >> >>> dev.pcm.0.%driver: pcm >> >>> dev.pcm.0.%desc: Realtek ALC256 (Internal Analog) >> >>> dev.pcm.%parent: >> >> >> >> You could try >> >> >> >> sysctl dev.hdaa.0.nid33_config="as=1 seq=15 device=Headphones" >> >> >> >> sysctl dev.hdaa.0.reconfig=1 >> >> >> >> >> >> It should result in you having only one pcm device for the two outputs >> >> and it should switch from >> >> >> >> internal to external when you plug in the external speakers and vice >> versa. >> >> >> >> To make it permanent put 'hint.hdaa.0.nid33.config="as=1 seq=15 >> >> device=Headphones"' in your loader.conf >> >> >> >> >> >> The loud buzz is a bit worrying, it could be related to the problem I >> >> have been having, where I got strange sound >> >> >> >> when using headphones on my laptop. I have worked around it by patching >> >> the sound driver, I have kept my local >> >> >> >> patch for years. >> >> >> >> >> > With that hint it does turn off the internal speakers but I can hear >> > nothing in my headphones. Turning the volume to 100% I can hear the >> > playback in my internal speakers at very low volume (with headphones >> > connected). >> > The headphones has no buzzing sound, that is only my external speakers >> and >> > they only act like that when connect to this laptop (kind of like the >> buzz >> > noise you get when the connector touches something (ground?))... >> >> >> Do the headphones work with this patch? >> >> Index: sys/dev/sound/pci/hda/hdaa.c >> =================================================================== >> --- sys/dev/sound/pci/hda/hdaa.c (revision 339076) >> +++ sys/dev/sound/pci/hda/hdaa.c (working copy) >> @@ -5034,11 +5034,13 @@ >> pincap = w->wclass.pin.cap; >> >> /* Disable everything. */ >> + /* >> w->wclass.pin.ctrl &= ~( >> HDA_CMD_SET_PIN_WIDGET_CTRL_HPHN_ENABLE | >> HDA_CMD_SET_PIN_WIDGET_CTRL_OUT_ENABLE | >> HDA_CMD_SET_PIN_WIDGET_CTRL_IN_ENABLE | >> HDA_CMD_SET_PIN_WIDGET_CTRL_VREF_ENABLE_MASK); >> + */ >> >> if (w->enable == 0) { >> /* Pin is unused so left it disabled. */ >> >> >> > YES!!!! > > With this patch and this in loader.conf > hint.hdaa.0.nid33.config="as=1 seq=15 device=Headphones" > > I got it switching automatically between internal and headphones and no > more buzzing sound in my external speakers when they are connected to the > headphone jack. > > > Ok, great! So my suspicion was right. > > I had a similar problem on my laptop, where the audio in the headphones > was really strange, like the ground pin was not connected somehow. > > It worked fine running Windows. > > My understanding is this: > > 1. The BIOS/firmware is supposed to set up the parameters correctly when > you boot the machine. > > 2. When snd_hda starts, it clears some of the settings, for reasons I > don't understand. > > 3. hdaa_patches.c adds some specific settings for particular hardware. > > > What I did was commenting out what was happening in (2) above. That's what > the patch does. My headphones worked! > > So, your headphone pins are correctly set up by your firmware, and snd_hda > destroys that. > > You could compare the output of 'sysctl dev.hdaa.0' with and without the > patch and see what changed, that would be interesting. > > > Jakob > Thanks, will do! Now, onto the next problem. Minecraft sound effects are distorted and openal cause crashes.... (openal-soft with oss backend - default installations)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAECmPwvDz0dhUmS54wca1MOh0wrcyURnzmAtJRqU=Dzon0YRiA>