[alsa-devel] New snd-hda warning spew

Ville Syrjälä ville.syrjala at linux.intel.com
Fri Mar 18 14:54:59 CET 2016


On Wed, Mar 16, 2016 at 04:04:20PM +0200, Ville Syrjälä wrote:
> On Tue, Mar 15, 2016 at 06:22:56PM +0100, Takashi Iwai wrote:
> > On Tue, 15 Mar 2016 17:02:07 +0100,
> > Ville Syrjälä wrote:
> > > 
> > > We have a few new WARN spews from snd-hda causing some grief in i915 CI.
> > > 
> > > This one happens on ILK and BYT. Looks like it happens 100% of the time on driver load:
> > > [   18.809850] ------------[ cut here ]------------
> > > [   18.809866] WARNING: CPU: 0 PID: 39 at sound/hda/hdac_i915.c:129 pin2port+0x25/0x30 [snd_hda_core]()
> > 
> > This is bad.  Basically we had a naive assumption of the fixed mapping
> > between the port number and the HD-audio widget, but it doesn't apply
> > properly to pre-HSW models.
> > 
> > The patch attached below disables the audio binding for pre-HSW
> > models.  I'm going to queue to for-linus branch.
> 
> That seems to eliminate the warn on my ILK.

Apparently it was less effective on BYT. We still get this:

[   14.978872] ------------[ cut here ]------------
[   14.978890] WARNING: CPU: 1 PID: 288 at sound/hda/hdac_i915.c:129 pin2port+0x25/0x30 [snd_hda_core]()
[   14.978894] Modules linked in: snd_hda_codec_hdmi(+) snd_hda_codec_realtek snd_hda_codec_generic i915 snd_hda_intel snd_hda_codec intel_powerclamp coretemp crct10dif_pclmul crc32_pclmul ghash_clmulni_intel snd_hwdep snd_hda_core snd_pcm lpc_ich i2c_hid i2c_designware_platform i2c_designware_core r8169 mii sdhci_acpi sdhci mmc_core
[   14.978934] CPU: 1 PID: 288 Comm: modprobe Not tainted 4.5.0-gfxbench+ #1
[   14.978938] Hardware name: \xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff \xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff/DN2820FYK, BIOS FYBYT10H.86A.0038.2014.0717.1455 07/17/2014
[   14.978941]  0000000000000000 ffff8800732d3a48 ffffffff813fef15 0000000000000000
[   14.978948]  ffffffffa014077c ffff8800732d3a80 ffffffff81078a21 ffff880073201b90
[   14.978954]  ffff880073006878 ffff880073006880 0000000000000100 ffff880073006878
[   14.978961] Call Trace:
[   14.978969]  [<ffffffff813fef15>] dump_stack+0x67/0x92
[   14.978976]  [<ffffffff81078a21>] warn_slowpath_common+0x81/0xc0
[   14.978980]  [<ffffffff81078b15>] warn_slowpath_null+0x15/0x20
[   14.978988]  [<ffffffffa013f2d5>] pin2port+0x25/0x30 [snd_hda_core]
[   14.978997]  [<ffffffffa013f378>] snd_hdac_acomp_get_eld+0x38/0x70 [snd_hda_core]
[   14.979009]  [<ffffffffa0050a69>] hdmi_present_sense+0xa9/0x3a0 [snd_hda_codec_hdmi]
[   14.979016]  [<ffffffffa005112f>] generic_hdmi_build_controls+0x11f/0x200 [snd_hda_codec_hdmi]
[   14.979029]  [<ffffffffa018e5b1>] snd_hda_codec_build_controls+0x191/0x1d0 [snd_hda_codec]
[   14.979039]  [<ffffffffa018e881>] ? snd_hda_codec_build_pcms+0xe1/0x1a0 [snd_hda_codec]
[   14.979049]  [<ffffffffa0189442>] hda_codec_driver_probe+0x82/0x100 [snd_hda_codec]
[   14.979056]  [<ffffffff8153d9b9>] driver_probe_device+0x229/0x450
[   14.979061]  [<ffffffff8153dc63>] __driver_attach+0x83/0x90
[   14.979066]  [<ffffffff8153dbe0>] ? driver_probe_device+0x450/0x450
[   14.979070]  [<ffffffff8153b691>] bus_for_each_dev+0x61/0xa0
[   14.979074]  [<ffffffff8153d2a9>] driver_attach+0x19/0x20
[   14.979078]  [<ffffffff8153cd8f>] bus_add_driver+0x1ef/0x290
[   14.979083]  [<ffffffffa0059000>] ? 0xffffffffa0059000
[   14.979087]  [<ffffffff8153e98b>] driver_register+0x5b/0xe0
[   14.979096]  [<ffffffffa01890d5>] __hda_codec_driver_register+0x55/0x60 [snd_hda_codec]
[   14.979103]  [<ffffffffa005901e>] hdmi_driver_init+0x1e/0x20 [snd_hda_codec_hdmi]
[   14.979110]  [<ffffffff810003de>] do_one_initcall+0xae/0x1d0
[   14.979115]  [<ffffffff810e1091>] ? rcu_read_lock_sched_held+0x81/0x90
[   14.979121]  [<ffffffff811b8863>] ? kmem_cache_alloc_trace+0x293/0x300
[   14.979126]  [<ffffffff8115b3dc>] ? do_init_module+0x22/0x1c6
[   14.979131]  [<ffffffff8115b415>] do_init_module+0x5b/0x1c6
[   14.979136]  [<ffffffff81107d3a>] load_module+0x1c0a/0x24b0
[   14.979142]  [<ffffffff81105410>] ? symbol_put_addr+0x60/0x60
[   14.979147]  [<ffffffff81105706>] ? copy_module_from_fd.isra.63+0xe6/0x140
[   14.979152]  [<ffffffff811087ce>] SyS_finit_module+0x7e/0xa0
[   14.979160]  [<ffffffff817c5f5b>] entry_SYSCALL_64_fastpath+0x16/0x73
[   14.979271] ---[ end trace 639ed871547f2d0f ]---

<snip>
> > 
> > -- 8< --
> > From: Takashi Iwai <tiwai at suse.de>
> > Subject: [PATCH] ALSA: hda - Limit i915 HDMI binding only for HSW and later
> > MIME-Version: 1.0
> > 
> > It turned out that the pre-HSW Intel chips are incompatible with the
> > naive assumption we had -- the fixed mapping between the port and the
> > HD-audio widget.  This may result in the bad access, as captured by
> > the recent patch to add a WARN_ON() for the port mapping check.
> > 
> > As a quick workaround, disable the i915 audio component binding for
> > all pre-Haswell models.
> > 
> > Reported-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
> > Cc: <stable at vger.kernel.org> # v4.5
> > Signed-off-by: Takashi Iwai <tiwai at suse.de>
> > ---
> >  sound/pci/hda/patch_hdmi.c | 5 +++--
> >  1 file changed, 3 insertions(+), 2 deletions(-)
> > 
> > diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
> > index 3fc259154c0b..cde9746cda8e 100644
> > --- a/sound/pci/hda/patch_hdmi.c
> > +++ b/sound/pci/hda/patch_hdmi.c
> > @@ -2243,9 +2243,10 @@ static int patch_generic_hdmi(struct hda_codec *codec)
> >  	codec->spec = spec;
> >  	hdmi_array_init(spec, 4);
> >  
> > -	/* Try to bind with i915 for any Intel codecs (if not done yet) */
> > +	/* Try to bind with i915 for Intel HSW+ codecs (if not done yet) */
> >  	if (!codec_has_acomp(codec) &&
> > -	    (codec->core.vendor_id >> 16) == 0x8086)
> > +	    (codec->core.vendor_id >> 16) == 0x8086 &&
> > +	    is_haswell_plus(codec))
> >  		if (!snd_hdac_i915_init(&codec->bus->core))
> >  			spec->i915_bound = true;
> >  
> > -- 
> > 2.7.3
> > 
> 
> -- 
> Ville Syrjälä
> Intel OTC

-- 
Ville Syrjälä
Intel OTC


More information about the Alsa-devel mailing list