1. 20 6月, 2017 1 次提交
  2. 13 6月, 2017 5 次提交
  3. 12 6月, 2017 1 次提交
  4. 01 6月, 2017 1 次提交
    • I
      drm/i915/ddi: Avoid long delays during system suspend / eDP disabling · 7618138d
      Imre Deak 提交于
      Atm disabling either DP or eDP outputs can generate a spurious short
      pulse interrupt. The reason is that after disabling the port the source
      will stop sending a valid stream data, while the sink expects either a
      valid stream or the idle pattern. Since neither of this is sent the sink
      assumes (after an arbitrary delay) that the link is lost and requests
      for link retraining with a short pulse.
      
      The spurious pulse is a real problem at least for eDP panels with long
      power-off / power-cycle delays: as part of disabling the output we
      disable the panel power. The subsequent spurious short pulse handling
      will have to turn the power back on, which means the driver has to do a
      redundant wait for the power-off and power-cycle delays. During system
      suspend this leads to an unnecessary delay up to ~1s on systems with
      such panels as reported by Rui.
      
      To fix this put the sink to DPMS D3 state before turning off the port.
      According to the DP spec in this state the sink should not request
      retraining. This is also what we do already on pre-ddi platforms.
      
      As an alternative I also tried configuring the port to send idle pattern
      - which is against BSPec - and leave the port in normal mode before
      turning off the port. Neither of these resolved the problem.
      
      Cc: Zhang Rui <rui.zhang@intel.com>
      Cc: David Weinehall <david.weinehall@linux.intel.com>
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Reported-and-tested-by: NZhang Rui <rui.zhang@intel.com>
      Signed-off-by: NImre Deak <imre.deak@intel.com>
      Reviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/1496250335-7627-1-git-send-email-imre.deak@intel.com
      7618138d
  5. 31 3月, 2017 1 次提交
  6. 28 3月, 2017 2 次提交
    • S
      drm/i915: enable scrambling · 15953637
      Shashank Sharma 提交于
      Geminilake platform sports a native HDMI 2.0 controller, and is
      capable of driving pixel-clocks upto 594Mhz. HDMI 2.0 spec
      mendates scrambling for these higher clocks, for reduced RF footprint.
      
      This patch checks if the monitor supports scrambling, and if required,
      enables it during the modeset.
      
      V2: Addressed review comments from Ville:
       - Do not track scrambling status in DRM layer, track somewhere in
         driver like in intel_crtc_state.
       - Don't talk to monitor at such a low layer, set monitor scrambling
         in intel_enable_ddi() before enabling the port.
      
      V3: Addressed review comments from Jani
       - In comments, function names, use "sink" instead of "monitor",
         so that the implementation could be close to the language of
         HDMI spec.
      
      V4: Addressed review comment from Maarten
       - scrambling -> hdmi_scrambling
       - high_tmds_clock_ratio -> hdmi_high_tmds_clock_ratio
      
      V5: Addressed review comments from Ville and Ander
       - Do not modifiy the crtc_state after compute_config. Move all
         scrambling and tmds_clock_ratio calcutations to compute_config.
       - While setting scrambling for source/sink, do not check the
         conditions again, just go by the crtc_state flags. This will
         simplyfy the condition checks.
      
      V6: Addressed review comments from Ville
       - Do not add IS_GLK check in disable/enable function, instead add it
         in compute_config, while setting state flags.
       - Remove unnecessary paranthesis.
       - Simplyfy handle_sink_scrambling function as suggested.
       - Add readout code for scrambling status in get_ddi_config and add a
         check for the same in pipe_config_compare.
      
      V7: Addressed review comments from Ander/Ville
       - No separate function for source scrambling, make it inline
       - Align the last line of the macro TRANS_DDI_HDMI_SCRAMBLING_MASK
       - Do not add platform check while setting source scrambling
       - Use pipe_config instead of crtc->config to set sink scrambling
       - To readout scrambling status, Compare with SCRAMBLING_MASK
         not any of its bits
       - Remove platform check in intel_pipe_config_compare while checking
         scrambling status
      
      V8: Fixed mege conflict, Addressed review comments from Ander
       - Remove the desciption/comment about scrambling fom the caller, move
         it to the function
       - Move the IS_GLK check into scrambling function
       - Fix alignment
      
      V9: Fixed review comments from Ville, Ander
       - Pass the scrambling state variables as bool input to the sink_scrambling
         function and let the disable call be unconditional.
       - Fix alignments in function calls and debug messages.
       - Add kernel doc for function intel_hdmi_handle_sink_scrambling
      
      V10: Rebase
      Signed-off-by: NShashank Sharma <shashank.sharma@intel.com>
      Reviewed-by: NAnder Conselvan de Oliveira <conselvan2@gmail.com>
      Signed-off-by: NJani Nikula <jani.nikula@intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/1489404244-16608-6-git-send-email-shashank.sharma@intel.com
      15953637
    • P
      drm/i915: kill intel_ddi_pll_select() · 44a126ba
      Paulo Zanoni 提交于
      All it does is pick the encoder and call intel_get_shared_dpll(). We
      can just do this in the caller. One less indirection level during code
      reading.
      
      As another plus, now the two callers of intel_get_shared_dpll() are
      {ironlake,haswell}_crtc_compute_clock().
      Reported-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Reviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/1490209125-20046-2-git-send-email-paulo.r.zanoni@intel.com
      44a126ba
  7. 23 3月, 2017 1 次提交
  8. 13 3月, 2017 1 次提交
  9. 10 3月, 2017 1 次提交
  10. 03 3月, 2017 5 次提交
  11. 27 2月, 2017 2 次提交
  12. 24 2月, 2017 3 次提交
  13. 10 2月, 2017 1 次提交
  14. 09 2月, 2017 1 次提交
  15. 02 2月, 2017 1 次提交
    • 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
  16. 25 1月, 2017 1 次提交
  17. 30 12月, 2016 1 次提交
  18. 02 12月, 2016 1 次提交
  19. 29 11月, 2016 1 次提交
  20. 25 11月, 2016 1 次提交
  21. 24 11月, 2016 1 次提交
  22. 17 11月, 2016 1 次提交
  23. 09 11月, 2016 1 次提交
  24. 28 10月, 2016 3 次提交
  25. 21 10月, 2016 2 次提交