[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