Bug 95646

Summary: [i915] [SKL] Unclaimed register detected
Product: DRI Reporter: Direx <direx>
Component: DRM/IntelAssignee: Intel GFX Bugs mailing list <intel-gfx-bugs>
Status: CLOSED DUPLICATE QA Contact: Intel GFX Bugs mailing list <intel-gfx-bugs>
Severity: normal    
Priority: medium CC: intel-gfx-bugs
Version: unspecified   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: SKL i915 features: display/audio
Attachments:
Description Flags
Output of intel_reg dump none

Description Direx 2016-05-24 11:12:06 UTC
After a while I am getting the following warning on my Thinkpad L460:

[ 4355.571193] ------------[ cut here ]------------
[ 4355.571225] WARNING: CPU: 1 PID: 766 at drivers/gpu/drm/i915/intel_uncore.c:649 __unclaimed_reg_debug+0x7b/0x90 [i915]
[ 4355.571227] Unclaimed register detected after reading register 0x65f10
[ 4355.571229] Modules linked in: msr cpufreq_stats sha256_ssse3 sha256_generic hmac drbg ansi_cprng ctr ccm joydev mousedev snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic snd_soc_skl snd_soc_skl_ipc snd_soc_sst_ipc snd_soc_sst_dsp snd_hda_ext_core snd_soc_sst_match snd_soc_core snd_compress snd_pcm_dmaengine ac97_bus ipt_REJECT nf_reject_ipv4 xt_tcpudp nf_conntrack_ipv6 nf_conntrack_ipv4 nf_defrag_ipv6 nf_defrag_ipv4 arc4 xt_conntrack nf_conntrack ip6table_filter ip6_tables iptable_filter iTCO_wdt iTCO_vendor_support iwlmvm mac80211 i915 intel_rapl snd_hda_intel x86_pkg_temp_thermal intel_powerclamp coretemp iwlwifi uvcvideo snd_hda_codec videobuf2_vmalloc btusb kvm_intel drm_kms_helper videobuf2_memops evdev btrtl input_leds btbcm videobuf2_v4l2 mac_hid snd_hda_core e1000e kvm snd_hwdep
[ 4355.571263]  videobuf2_core snd_pcm btintel psmouse ptp serio_raw pcspkr pps_core irqbypass snd_timer i2c_i801 videodev cfg80211 drm bluetooth thinkpad_acpi rtsx_pci_ms nvram memstick intel_gtt syscopyarea sysfillrect snd sysimgblt mei_me fb_sys_fops soundcore media crc16 intel_pch_thermal i2c_algo_bit mei shpchp thermal led_class wmi rfkill battery ac fjes tpm_crb video tpm_tis tpm button processor sch_fq_codel ip_tables x_tables btrfs xor raid6_pq algif_skcipher af_alg dm_crypt dm_mod sd_mod rtsx_pci_sdmmc mmc_core atkbd libps2 crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel aesni_intel aes_x86_64 lrw gf128mul glue_helper ablk_helper cryptd ahci libahci xhci_pci libata xhci_hcd rtsx_pci scsi_mod usbcore usb_common i8042 serio hid_microsoft hid
[ 4355.571349] CPU: 1 PID: 766 Comm: alsa-sink-ALC29 Not tainted 4.6.0-1-ARCH #1
[ 4355.571350] Hardware name: LENOVO 20FVS01500/20FVS01500, BIOS R08ET40W (1.14 ) 04/20/2016
[ 4355.571354]  0000000000000086 00000000b3dfe239 ffff8803fcab7768 ffffffff812e5362
[ 4355.571356]  ffff8803fcab77b8 0000000000000000 ffff8803fcab77a8 ffffffff8107a68b
[ 4355.571358]  000002892df6bfc0 0000000000000000 0000000000000001 0000000000065f10
[ 4355.571360] Call Trace:
[ 4355.571366]  [<ffffffff812e5362>] dump_stack+0x63/0x81
[ 4355.571369]  [<ffffffff8107a68b>] __warn+0xcb/0xf0
[ 4355.571373]  [<ffffffff8107a70f>] warn_slowpath_fmt+0x5f/0x80
[ 4355.571388]  [<ffffffffa09a286b>] __unclaimed_reg_debug+0x7b/0x90 [i915]
[ 4355.571399]  [<ffffffffa09a331e>] gen9_read32+0x33e/0x3b0 [i915]
[ 4355.571419]  [<ffffffffa09ad349>] i915_audio_component_codec_wake_override+0x39/0xb0 [i915]
[ 4355.571419]  [<ffffffffa084edbf>] snd_hdac_set_codec_wakeup+0x3f/0xa0 [snd_hda_core]
[ 4355.571421]  [<ffffffffa07bd8f7>] hda_intel_init_chip+0x177/0x190 [snd_hda_intel]
[ 4355.571423]  [<ffffffffa07bd640>] ? azx_init_pci+0x170/0x2b0 [snd_hda_intel]
[ 4355.571425]  [<ffffffffa07bd9b3>] azx_runtime_resume+0xa3/0x1c0 [snd_hda_intel]
[ 4355.571430]  [<ffffffff8132d19b>] pci_pm_runtime_resume+0x7b/0xa0
[ 4355.571433]  [<ffffffff8132d120>] ? pci_restore_standard_config+0x40/0x40
[ 4355.571435]  [<ffffffff8141c192>] __rpm_callback+0x32/0x70
[ 4355.571437]  [<ffffffff8132d120>] ? pci_restore_standard_config+0x40/0x40
[ 4355.571438]  [<ffffffff8141c1f4>] rpm_callback+0x24/0x80
[ 4355.571440]  [<ffffffff8132d120>] ? pci_restore_standard_config+0x40/0x40
[ 4355.571442]  [<ffffffff8141d62c>] rpm_resume+0x4bc/0x6e0
[ 4355.571444]  [<ffffffff815c2dac>] ? schedule+0x3c/0x90
[ 4355.571446]  [<ffffffff8141d4d8>] rpm_resume+0x368/0x6e0
[ 4355.571450]  [<ffffffffa082f212>] ? snd_pcm_hw_rule_add+0x122/0x1d0 [snd_pcm]
[ 4355.571451]  [<ffffffff8141d88f>] __pm_runtime_resume+0x3f/0x60
[ 4355.571454]  [<ffffffffa0848ed3>] snd_hdac_power_up+0x13/0x20 [snd_hda_core]
[ 4355.571458]  [<ffffffffa071f119>] azx_pcm_open+0x1d9/0x390 [snd_hda_codec]
[ 4355.571461]  [<ffffffffa082e02b>] snd_pcm_open_substream+0x7b/0x130 [snd_pcm]
[ 4355.571467]  [<ffffffffa082e197>] snd_pcm_open+0xb7/0x250 [snd_pcm]
[ 4355.571470]  [<ffffffff81178988>] ? get_page_from_freelist+0x4a8/0xaa0
[ 4355.571472]  [<ffffffff810a4a80>] ? wake_up_q+0x70/0x70
[ 4355.571477]  [<ffffffffa082e3e4>] snd_pcm_playback_open+0x44/0x70 [snd_pcm]
[ 4355.571480]  [<ffffffffa03a6451>] snd_open+0xb1/0x180 [snd]
[ 4355.571485]  [<ffffffff811fbd40>] chrdev_open+0xb0/0x1e0
[ 4355.571488]  [<ffffffff811f4941>] do_dentry_open+0x201/0x2e0
[ 4355.571489]  [<ffffffff811fbc90>] ? cdev_put+0x30/0x30
[ 4355.571494]  [<ffffffff811f5a04>] vfs_open+0x54/0x80
[ 4355.571495]  [<ffffffff8120260c>] ? may_open+0x8c/0x100
[ 4355.571497]  [<ffffffff812054b7>] path_openat+0x4e7/0x1290
[ 4355.571499]  [<ffffffff81207651>] do_filp_open+0x91/0x100
[ 4355.571504]  [<ffffffff81216bec>] ? mntput_no_expire+0x2c/0x1b0
[ 4355.571505]  [<ffffffff812145a9>] ? __alloc_fd+0xc9/0x180
[ 4355.571507]  [<ffffffff811f5dd7>] do_sys_open+0x147/0x210
[ 4355.571512]  [<ffffffff811f5ebe>] SyS_open+0x1e/0x20
[ 4355.571514]  [<ffffffff815c6832>] entry_SYSCALL_64_fastpath+0x1a/0xa4
[ 4355.571516] ---[ end trace 1b5aef03c72bc70b ]---

There is at least on suspend/resume cycle involved, after the message pops up. My setup:

* Lenovo Thinkpad L460 (Only using the internal display ATM)
* UEFI boot
* Arch Linux
* extra/xorg-server 1.18.3-1
* extra/xf86-video-intel 1:2.99.917+645+g88733a7-1
* Kernel 4.6.0
Comment 1 Direx 2016-05-24 11:14:29 UTC
Created attachment 124020 [details]
Output of intel_reg dump
Comment 2 Imre Deak 2016-05-24 14:08:52 UTC
HSW_AUD_CHICKENBIT is accessed without holding an audio power domain reference. Could you try the following:

diff --git a/sound/hda/hdac_i915.c b/sound/hda/hdac_i915.c
index c9af022..c6552f3c 100644
--- a/sound/hda/hdac_i915.c
+++ b/sound/hda/hdac_i915.c
@@ -101,7 +101,9 @@ EXPORT_SYMBOL_GPL(snd_hdac_display_power);
 #define CONTROLLER_IN_GPU(pci) (((pci)->device == 0x0a0c) || \
 				((pci)->device == 0x0c0c) || \
 				((pci)->device == 0x0d0c) || \
-				((pci)->device == 0x160c))
+				((pci)->device == 0x160c) || \
+				((pci)->device == 0xa170) || \
+				((pci)->device == 0x9d70))
 
 /**
  * snd_hdac_i915_set_bclk - Reprogram BCLK for HSW/BDW

If it doesn't fix it, could you provide the PCI ID for your HDA device:
$ lspci -nn -s 0:1f.3; lspci -nn -s 0:3
Comment 3 Direx 2016-05-25 15:02:25 UTC
I have tried your patch against drm-intel-nightly, but unfortunately it does not fix the issue. The PCI id of my card is correct, though:

00:1f.3 Audio device [0403]: Intel Corporation Sunrise Point-LP HD Audio [8086:9d70] (rev 21)

I can now also describe how to reproduce the issue (it is unrelated to suspend):

1. Boot system normally

2. Play back any sound

3. Run `powertop` and apply all "optimizations" (I think the `snd_hda_intel.power_save` optimization is not enough)

4. Wait for a few seconds

5. Play back any sound -> the warning message appears in the system log

BTW: The register involved in this is always 0x65f10
Comment 4 Imre Deak 2016-05-25 15:43:14 UTC
Our QA found this issue too and opened a new bug for it assigned to the sound driver maintainer, so closing this as a duplicate. Thanks for your input.

*** This bug has been marked as a duplicate of bug 96214 ***

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.