1. 02 2月, 2017 2 次提交
    • M
      drm/i915: Fix POWER_DOMAIN_AUDIO refcounting. · 37255d8d
      Maarten Lankhorst 提交于
      If the crtc was brought up with audio before the driver loads,
      then crtc_disable will remove a refcount to audio that doesn't exist
      before.
      
      Fortunately we already set power domains on readout, so we can just add
      the power domain handling to get_crtc_power_domains, which will update
      the power domains correctly in all cases.
      
      This was found when testing module reload on CI with the crtc enabled,
      which resulted in the following warn after module reload + modeset:
      
      [   24.197041] ------------[ cut here ]------------
      [   24.197075] WARNING: CPU: 0 PID: 99 at drivers/gpu/drm/i915/intel_runtime_pm.c:1790 intel_display_power_put+0x134/0x140 [i915]
      [   24.197076] Use count on domain AUDIO is already zero
      [   24.197098] CPU: 0 PID: 99 Comm: kworker/u8:2 Not tainted 4.9.0-CI-Trybot_393+ #1
      [   24.197099] Hardware name:                  /NUC6i5SYB, BIOS SYSKLi35.86A.0042.2016.0409.1246 04/09/2016
      [   24.197102] Workqueue: events_unbound async_run_entry_fn
      [   24.197105]  ffffc900003c7688 ffffffff81435b35 ffffc900003c76d8 0000000000000000
      [   24.197107]  ffffc900003c76c8 ffffffff8107e4d6 000006fe5dc36f28 ffff88025dc30054
      [   24.197109]  ffff88025dc36f28 ffff88025dc30000 ffff88025dc30000 0000000000000015
      [   24.197110] Call Trace:
      [   24.197113]  [<ffffffff81435b35>] dump_stack+0x67/0x92
      [   24.197116]  [<ffffffff8107e4d6>] __warn+0xc6/0xe0
      [   24.197118]  [<ffffffff8107e53a>] warn_slowpath_fmt+0x4a/0x50
      [   24.197149]  [<ffffffffa039b4b4>] intel_display_power_put+0x134/0x140 [i915]
      [   24.197187]  [<ffffffffa04217dd>] intel_disable_ddi+0x4d/0x80 [i915]
      [   24.197223]  [<ffffffffa03f388f>] intel_encoders_disable.isra.74+0x7f/0x90 [i915]
      [   24.197257]  [<ffffffffa03f6c05>] haswell_crtc_disable+0x55/0x170 [i915]
      [   24.197292]  [<ffffffffa03fec88>] intel_atomic_commit_tail+0x108/0xfd0 [i915]
      [   24.197295]  [<ffffffff810d47c6>] ? __lock_is_held+0x66/0x90
      [   24.197330]  [<ffffffffa03fff79>] intel_atomic_commit+0x429/0x560 [i915]
      [   24.197332]  [<ffffffff81570186>] ?drm_atomic_add_affected_connectors+0x56/0xf0
      [   24.197334]  [<ffffffff8156f726>] drm_atomic_commit+0x46/0x50
      [   24.197336]  [<ffffffff81553f87>] restore_fbdev_mode+0x147/0x270
      [   24.197337]  [<ffffffff81555bee>] drm_fb_helper_restore_fbdev_mode_unlocked+0x2e/0x70
      [   24.197339]  [<ffffffff81555aa8>] drm_fb_helper_set_par+0x28/0x50
      [   24.197374]  [<ffffffffa041c7d3>] intel_fbdev_set_par+0x13/0x70 [i915]
      [   24.197376]  [<ffffffff8149e07a>] fbcon_init+0x57a/0x600
      [   24.197379]  [<ffffffff81514b71>] visual_init+0xd1/0x130
      [   24.197381]  [<ffffffff8151603c>] do_bind_con_driver+0x1bc/0x3a0
      [   24.197384]  [<ffffffff81516521>] do_take_over_console+0x111/0x180
      [   24.197386]  [<ffffffff8149e152>] do_fbcon_takeover+0x52/0xb0
      [   24.197387]  [<ffffffff814a12c3>] fbcon_event_notify+0x723/0x850
      [   24.197390]  [<ffffffff810a4830>] ?__blocking_notifier_call_chain+0x30/0x70
      [   24.197392]  [<ffffffff810a44a4>] notifier_call_chain+0x34/0xa0
      [   24.197394]  [<ffffffff810a4848>] __blocking_notifier_call_chain+0x48/0x70
      [   24.197397]  [<ffffffff810a4881>] blocking_notifier_call_chain+0x11/0x20
      [   24.197398]  [<ffffffff814a4556>] fb_notifier_call_chain+0x16/0x20
      [   24.197400]  [<ffffffff814a678c>] register_framebuffer+0x24c/0x330
      [   24.197402]  [<ffffffff815558d9>] drm_fb_helper_initial_config+0x219/0x3c0
      [   24.197436]  [<ffffffffa041d373>] intel_fbdev_initial_config+0x13/0x30 [i915]
      [   24.197438]  [<ffffffff810a5d44>] async_run_entry_fn+0x34/0x140
      [   24.197440]  [<ffffffff8109c26c>] process_one_work+0x1ec/0x6b0
      [   24.197442]  [<ffffffff8109c1e6>] ? process_one_work+0x166/0x6b0
      [   24.197445]  [<ffffffff8109c779>] worker_thread+0x49/0x490
      [   24.197447]  [<ffffffff8109c730>] ? process_one_work+0x6b0/0x6b0
      [   24.197448]  [<ffffffff810a2a9b>] kthread+0xeb/0x110
      [   24.197451]  [<ffffffff810a29b0>] ? kthread_park+0x60/0x60
      [   24.197453]  [<ffffffff818241a7>] ret_from_fork+0x27/0x40
      [   24.197476] ---[ end trace bda64b683b8e8162 ]---
      Signed-off-by: NMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/1481812185-19098-3-git-send-email-maarten.lankhorst@linux.intel.comReviewed-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      37255d8d
    • M
      drm/i915: Disable all crtcs during driver unload, v2. · a667fb40
      Maarten Lankhorst 提交于
      We may keep the crtc's enabled when userspace unsets all framebuffers but
      keeps the crtc active. This exposes a WARN in fbc_global disable, and
      a lot of bugs in our hardware readout code. Solve this by disabling
      all crtc's for now.
      
      Changes since v1:
      - Use lock_all_ctx instead of lock_all.
      Signed-off-by: NMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/1481812185-19098-4-git-send-email-maarten.lankhorst@linux.intel.comReviewed-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      a667fb40
  2. 01 2月, 2017 14 次提交
  3. 31 1月, 2017 18 次提交
  4. 30 1月, 2017 6 次提交