Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 1 Oct 2018 23:12:25 +0200
From:      Jakob Alvermark <jakob@alvermark.net>
To:        Johannes Lundberg <johalun0@gmail.com>
Cc:        freebsd-current <freebsd-current@freebsd.org>
Subject:   Re: Sound issues with Dell Latitude 7490 (kabylake)
Message-ID:  <596a89fa-d7a3-1d39-d296-e07359cb487f@alvermark.net>
In-Reply-To: <CAECmPwvqaWbWDu7TVpYxxTr7-Zr=RWnUWi1C=8S=TOmrBKdpZg@mail.gmail.com>
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>

next in thread | previous in thread | raw e-mail | index | archive | help
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. */





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?596a89fa-d7a3-1d39-d296-e07359cb487f>