[ 4.990273] ------------[ cut here ]------------ [ 4.990351] WARNING: CPU: 1 PID: 192 at drivers/gpu/drm/i915/intel_uncore.c:818 __unclaimed_reg_debug+0x40/0x50 [i915] [ 4.990364] Unclaimed read from register 0x1e1110 [ 4.990372] Modules linked in: i915(+) nls_utf8 nls_cp437 vfat fat crct10dif_pclmul crc32c_intel aesni_intel aes_x86_64 glue_helper lrw gf128mul ablk_helper cryptd intel_gtt drm_kms_helper [ 4.990425] CPU: 1 PID: 192 Comm: systemd-udevd Not tainted 4.8.0+ #118 [ 4.990433] Hardware name: / , BIOS PYBSWCEL.86A.0027.2015.0507.1758 05/07/2015 [ 4.990445] 0000000000000000 ffff880275a0f9b8 ffffffff8124a0ce ffff880275a0fa08 [ 4.990464] 0000000000000000 ffff880275a0f9f8 ffffffff8104e501 0000033281070494 [ 4.990482] ffff880276308000 00000000001e1110 ffff880276308720 0000000000000006 [ 4.990499] Call Trace: [ 4.990512] [<ffffffff8124a0ce>] dump_stack+0x4d/0x6f [ 4.990523] [<ffffffff8104e501>] __warn+0xc1/0xe0 [ 4.990533] [<ffffffff8104e56a>] warn_slowpath_fmt+0x4a/0x50 [ 4.990544] [<ffffffff810630e7>] ? insert_work+0x77/0xc0 [ 4.990592] [<ffffffffa010d170>] __unclaimed_reg_debug+0x40/0x50 [i915] [ 4.990640] [<ffffffffa010ed78>] fwtable_read32+0xd8/0x130 [i915] [ 4.990684] [<ffffffffa00c3740>] i915_hpd_irq_setup+0xa0/0xf0 [i915] [ 4.990732] [<ffffffffa0140120>] intel_hpd_init+0x70/0x90 [i915] [ 4.990775] [<ffffffffa00bd668>] i915_driver_load+0xcd8/0x1280 [i915] [ 4.990893] [<ffffffffa00c8248>] i915_pci_probe+0x28/0x40 [i915] [ 4.990905] [<ffffffff8128218b>] pci_device_probe+0x8b/0xf0 [ 4.990916] [<ffffffff81328afe>] driver_probe_device+0x21e/0x430 [ 4.990925] [<ffffffff81328dea>] __driver_attach+0xda/0xe0 [ 4.990935] [<ffffffff81328d10>] ? driver_probe_device+0x430/0x430 [ 4.990944] [<ffffffff8132686b>] bus_for_each_dev+0x5b/0x90 [ 4.990953] [<ffffffff81328289>] driver_attach+0x19/0x20 [ 4.990962] [<ffffffff81327d06>] bus_add_driver+0x166/0x260 [ 4.990970] [<ffffffffa01ca000>] ? 0xffffffffa01ca000 [ 4.990979] [<ffffffff8132950b>] driver_register+0x5b/0xd0 [ 4.990987] [<ffffffffa01ca000>] ? 0xffffffffa01ca000 [ 4.990997] [<ffffffff81280f57>] __pci_register_driver+0x47/0x50 [ 4.991039] [<ffffffffa01ca043>] i915_init+0x43/0x1000 [i915] [ 4.991050] [<ffffffff8100044b>] do_one_initcall+0x4b/0x170 [ 4.991060] [<ffffffff8149d46f>] ? preempt_schedule_common+0x1f/0x40 [ 4.991069] [<ffffffff8149d4a7>] ? _cond_resched+0x17/0x20 [ 4.991080] [<ffffffff810deeb4>] do_init_module+0x55/0x1e1 [ 4.991089] [<ffffffff810b5c22>] load_module+0x24a2/0x2880 [ 4.991098] [<ffffffff810b28c0>] ? __symbol_put+0x40/0x40 [ 4.991108] [<ffffffff81145d86>] ? vfs_read+0x116/0x130 [ 4.991118] [<ffffffff810b620c>] SYSC_finit_module+0xbc/0xf0 [ 4.991127] [<ffffffff810b6259>] SyS_finit_module+0x9/0x10 [ 4.991136] [<ffffffff814a125f>] entry_SYSCALL_64_fastpath+0x17/0x93 [ 4.991144] ---[ end trace 6710c23cc2cabc84 ]---
Food for thought: diff --git a/drivers/gpu/drm/i915/intel_hotplug.c b/drivers/gpu/drm/i915/intel_hotplug.c index 334d47b..2fe29d8 100644 --- a/drivers/gpu/drm/i915/intel_hotplug.c +++ b/drivers/gpu/drm/i915/intel_hotplug.c @@ -219,8 +219,10 @@ static void intel_hpd_irq_storm_reenable_work(struct work_struct *work) } } } - if (dev_priv->display.hpd_irq_setup) - dev_priv->display.hpd_irq_setup(dev_priv); + if (dev_priv->display_irqs_enabled) { + if (dev_priv->display.hpd_irq_setup) + dev_priv->display.hpd_irq_setup(dev_priv); + } spin_unlock_irq(&dev_priv->irq_lock); intel_runtime_pm_put(dev_priv); @@ -425,8 +427,10 @@ void intel_hpd_irq_handler(struct drm_i915_private *dev_priv, } } - if (storm_detected) - dev_priv->display.hpd_irq_setup(dev_priv); + if (dev_priv->display_irqs_enabled) { + if (storm_detected) + dev_priv->display.hpd_irq_setup(dev_priv); + } spin_unlock(&dev_priv->irq_lock); /* @@ -471,10 +475,16 @@ void intel_hpd_init(struct drm_i915_private *dev_priv) * Interrupt setup is already guaranteed to be single-threaded, this is * just to make the assert_spin_locked checks happy. */ - spin_lock_irq(&dev_priv->irq_lock); - if (dev_priv->display.hpd_irq_setup) - dev_priv->display.hpd_irq_setup(dev_priv); - spin_unlock_irq(&dev_priv->irq_lock); + if (dev_priv->display_irqs_enabled) { + intel_runtime_pm_get(dev_priv); + + spin_lock_irq(&dev_priv->irq_lock); + if (dev_priv->display.hpd_irq_setup) + dev_priv->display.hpd_irq_setup(dev_priv); + spin_unlock_irq(&dev_priv->irq_lock); + + intel_runtime_pm_put(dev_priv); + } }
*** This bug has been marked as a duplicate of bug 97798 ***
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.