Re: Sound issues with Dell Latitude 7490 (kabylake)

From: Johannes Lundberg <johalun0_at_gmail.com>
Date: Tue, 2 Oct 2018 21:36:18 +0100
On Tue, Oct 2, 2018 at 9:32 PM Jakob Alvermark <jakob_at_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_at_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_at_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)
>> _at__at_ -5034,11 +5034,13 _at__at_
>>           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)
Received on Tue Oct 02 2018 - 18:36:58 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:18 UTC