Sound issues with Dell Latitude 7490 (kabylake)

Johannes Lundberg johalun0 at gmail.com
Tue Oct 2 19:57:18 UTC 2018


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)
> @@ -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.


More information about the freebsd-current mailing list