linux/drivers/gpu/drm/i915
Lucas De Marchi 30414f3010 drm/i915: Apply Display WA #1183 on skl, kbl, and cfl
Display WA #1183 was recently added to workaround
"Failures when enabling DPLL0 with eDP link rate 2.16
or 4.32 GHz and CD clock frequency 308.57 or 617.14 MHz
(CDCLK_CTL CD Frequency Select 10b or 11b) used in this
 enabling or in previous enabling."

This workaround was designed to minimize the impact only
to save the bad case with that link rates. But HW engineers
indicated that it should be safe to apply broadly, although
they were expecting the DPLL0 link rate to be unchanged on
runtime.

We need to cover 2 cases: when we are in fact enabling DPLL0
and when we are just changing the frequency with small
differences.

This is based on previous patch by Rodrigo Vivi with suggestions
from Ville Syrjälä.

Cc: Arthur J Runyan <arthur.j.runyan@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: stable@vger.kernel.org
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171204232210.4958-1-lucas.demarchi@intel.com
(cherry picked from commit 53421c2fe9)
[ Lucas: Backport to 4.15 adding back variable that has been removed on
  commits not meant to be backported ]
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180102201837.6812-1-lucas.demarchi@intel.com
2018-01-04 14:39:08 +02:00
..
gvt Merge tag 'gvt-fixes-2017-12-21' of https://github.com/intel/gvt-linux into drm-intel-fixes 2017-12-21 13:08:31 +02:00
selftests drm/i915/selftests: Convert timers to use timer_setup() 2017-11-21 15:46:44 -08:00
dvo_ch7xxx.c drm/i915/dvo: fix debug logging on unknown DID 2017-06-01 15:53:03 +03:00
dvo_ch7017.c drm/i915/lvds: Remove magic from PLL programming 2017-05-10 13:47:55 +03:00
dvo_ivch.c
dvo_ns2501.c
dvo_sil164.c
dvo_tfp410.c
dvo.h
i915_cmd_parser.c drm/i915: Recreate vmapping even when the object is pinned 2017-08-30 12:08:11 -07:00
i915_debugfs.c drm/i915: Flush the idle-worker for debugfs/i915_drop_caches 2017-10-18 15:46:11 +01:00
i915_drv.c previous part 2 tag + ttm regression fix, i915,vc4,core,uapi fixes 2017-11-28 10:01:15 -08:00
i915_drv.h drm/i915: Put all non-blocking modesets onto an ordered wq 2018-01-02 13:45:13 +02:00
i915_gem_batch_pool.c drm/i915: Reinstate reservation_object zapping for batch_pool objects 2017-06-14 14:06:22 +01:00
i915_gem_batch_pool.h
i915_gem_clflush.c drm/i915: Refactor testing obj->mm.pages 2017-10-16 20:44:19 +01:00
i915_gem_clflush.h drm/i915: Force CPU synchronisation even if userspace requests ASYNC 2017-07-27 22:07:24 +02:00
i915_gem_context.c main drm pull request for v4.15 2017-11-15 20:42:10 -08:00
i915_gem_context.h drm/i915: Replace execbuf vma ht with an idr 2017-08-18 11:59:02 +01:00
i915_gem_dmabuf.c drm/i915: s/sg_mask/sg_page_sizes/ 2017-10-09 17:07:29 +01:00
i915_gem_evict.c Linux 4.14-rc7 2017-11-02 12:40:41 +10:00
i915_gem_execbuffer.c main drm pull request for v4.15 2017-11-15 20:42:10 -08:00
i915_gem_fence_reg.c drm/i915: Track user GTT faulting per-vma 2017-10-09 17:07:29 +01:00
i915_gem_fence_reg.h
i915_gem_gtt.c main drm pull request for v4.15 2017-11-15 20:42:10 -08:00
i915_gem_gtt.h drm/i915: support 64K pages for the 48b PPGTT 2017-10-07 10:11:57 +01:00
i915_gem_internal.c drm/i915: s/sg_mask/sg_page_sizes/ 2017-10-09 17:07:29 +01:00
i915_gem_object.c drm/i915: Split obj->cache_coherent to track r/w 2017-08-15 15:46:57 +01:00
i915_gem_object.h drm/i915: Move dev_priv->mm.[un]bound_list to its own lock 2017-10-16 20:44:19 +01:00
i915_gem_render_state.c drm/i915: Refactor testing obj->mm.pages 2017-10-16 20:44:19 +01:00
i915_gem_render_state.h
i915_gem_request.c drm/i915: Use rcu instead of stop_machine in set_wedged 2017-10-11 17:51:21 +02:00
i915_gem_request.h drm/i915/scheduler: Support user-defined priorities 2017-10-04 17:52:46 +01:00
i915_gem_shrinker.c drm/i915: Idle the GPU before shinking everything 2017-11-09 16:18:31 +02:00
i915_gem_stolen.c drm/i915: Move dev_priv->mm.[un]bound_list to its own lock 2017-10-16 20:44:19 +01:00
i915_gem_tiling.c drm/i915: Refactor testing obj->mm.pages 2017-10-16 20:44:19 +01:00
i915_gem_timeline.c drm/i915: Squash repeated awaits on the same fence 2017-05-03 11:08:48 +01:00
i915_gem_timeline.h drm/i915: Rename intel_timeline.sync_seqno[] to .global_sync[] 2017-05-03 11:08:52 +01:00
i915_gem_userptr.c previous part 2 tag + ttm regression fix, i915,vc4,core,uapi fixes 2017-11-28 10:01:15 -08:00
i915_gem.c drm/i915: Flush pending GTT writes before unbinding 2017-12-14 10:58:06 +02:00
i915_gem.h drm/i915: Squash repeated awaits on the same fence 2017-05-03 11:08:48 +01:00
i915_gemfs.c drm/i915: Disable THP until we have a GPU read BW W/A 2017-11-30 10:11:49 +02:00
i915_gemfs.h drm/i915: introduce simple gemfs 2017-10-07 10:11:41 +01:00
i915_gpu_error.c drm/i915: Name i915_runtime_pm structure in dev_priv as "runtime_pm" 2017-10-11 08:56:54 +01:00
i915_guc_reg.h
i915_guc_submission.c drm/i915: Filter out spurious execlists context-switch interrupts 2017-11-09 16:18:11 +02:00
i915_guc_submission.h drm/i915: Unify uC variable types to avoid flooding checkpatch.pl 2017-10-06 14:09:40 +03:00
i915_ioc32.c
i915_irq.c drm/i915: Filter out spurious execlists context-switch interrupts 2017-11-09 16:18:11 +02:00
i915_memcpy.c
i915_mm.c
i915_oa_bdw.c drm/i915/perf: leave GDT_CHICKEN_BITS programming in configs 2017-08-03 18:18:44 +01:00
i915_oa_bdw.h drm/i915/perf: prune OA configs 2017-08-03 18:18:05 +01:00
i915_oa_bxt.c drm/i915/perf: leave GDT_CHICKEN_BITS programming in configs 2017-08-03 18:18:44 +01:00
i915_oa_bxt.h drm/i915/perf: prune OA configs 2017-08-03 18:18:05 +01:00
i915_oa_cflgt2.c drm/i915/perf: add support for Coffeelake GT2 2017-09-18 19:46:36 +01:00
i915_oa_cflgt2.h drm/i915/perf: add support for Coffeelake GT2 2017-09-18 19:46:36 +01:00
i915_oa_chv.c drm/i915/perf: leave GDT_CHICKEN_BITS programming in configs 2017-08-03 18:18:44 +01:00
i915_oa_chv.h drm/i915/perf: prune OA configs 2017-08-03 18:18:05 +01:00
i915_oa_glk.c drm/i915/perf: leave GDT_CHICKEN_BITS programming in configs 2017-08-03 18:18:44 +01:00
i915_oa_glk.h drm/i915/perf: prune OA configs 2017-08-03 18:18:05 +01:00
i915_oa_hsw.c drm/i915/perf: leave GDT_CHICKEN_BITS programming in configs 2017-08-03 18:18:44 +01:00
i915_oa_hsw.h drm/i915/perf: prune OA configs 2017-08-03 18:18:05 +01:00
i915_oa_kblgt2.c drm/i915/perf: leave GDT_CHICKEN_BITS programming in configs 2017-08-03 18:18:44 +01:00
i915_oa_kblgt2.h drm/i915/perf: prune OA configs 2017-08-03 18:18:05 +01:00
i915_oa_kblgt3.c drm/i915/perf: leave GDT_CHICKEN_BITS programming in configs 2017-08-03 18:18:44 +01:00
i915_oa_kblgt3.h drm/i915/perf: prune OA configs 2017-08-03 18:18:05 +01:00
i915_oa_sklgt2.c drm/i915/perf: leave GDT_CHICKEN_BITS programming in configs 2017-08-03 18:18:44 +01:00
i915_oa_sklgt2.h drm/i915/perf: prune OA configs 2017-08-03 18:18:05 +01:00
i915_oa_sklgt3.c drm/i915/perf: leave GDT_CHICKEN_BITS programming in configs 2017-08-03 18:18:44 +01:00
i915_oa_sklgt3.h drm/i915/perf: prune OA configs 2017-08-03 18:18:05 +01:00
i915_oa_sklgt4.c drm/i915/perf: leave GDT_CHICKEN_BITS programming in configs 2017-08-03 18:18:44 +01:00
i915_oa_sklgt4.h drm/i915/perf: prune OA configs 2017-08-03 18:18:05 +01:00
i915_params.c drm/i915: Remove use_mmio_flip modparm, v2. 2017-10-04 15:51:09 +02:00
i915_params.h drm/i915: Remove use_mmio_flip modparm, v2. 2017-10-04 15:51:09 +02:00
i915_pci.c drm/i915: remove g4x lowfreq_avail and has_pipe_cxsr 2017-10-19 15:52:52 +03:00
i915_perf.c Linux 4.14-rc7 2017-11-02 12:40:41 +10:00
i915_pvinfo.h drm/i915: enable to read CSB and CSB write pointer from HWSP in GVT-g VM 2017-10-16 13:56:29 +03:00
i915_reg.h drm/i915: Apply Display WA #1183 on skl, kbl, and cfl 2018-01-04 14:39:08 +02:00
i915_selftest.h drm/i915: Don't use MI_STORE_DWORD_IMM on Sandybridge/vcs 2017-08-18 11:55:02 +01:00
i915_suspend.c drm/i915: Move i915_gem_restore_fences to i915_gem_resume 2017-09-29 12:30:17 +01:00
i915_sw_fence.c drm/i915/fence: Use rcu to defer freeing of irq_work 2017-12-14 10:58:59 +02:00
i915_sw_fence.h main drm pull for v4.13 2017-07-09 18:48:37 -07:00
i915_syncmap.c drm/i915: Squash repeated awaits on the same fence 2017-05-03 11:08:48 +01:00
i915_syncmap.h drm/i915: Squash repeated awaits on the same fence 2017-05-03 11:08:48 +01:00
i915_sysfs.c drm/i915: Rename intel_enable_rc6 to intel_rc6_enabled 2017-10-11 08:57:02 +01:00
i915_trace_points.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
i915_trace.h main drm pull request for v4.15 2017-11-15 20:42:10 -08:00
i915_utils.h drm/i915: Try harder to finish the idle-worker 2017-10-06 17:49:46 +01:00
i915_vgpu.c drm/i915: Enable guest i915 full ppgtt functionality 2017-08-15 10:12:48 +08:00
i915_vgpu.h drm/i915: enable to read CSB and CSB write pointer from HWSP in GVT-g VM 2017-10-16 13:56:29 +03:00
i915_vma.c drm/i915: Prune the reservation shared fence array 2017-11-09 16:18:33 +02:00
i915_vma.h drm/i915: Track user GTT faulting per-vma 2017-10-09 17:07:29 +01:00
intel_acpi.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
intel_atomic_plane.c drm/i915: Pass proper old/new states to intel_plane_atomic_check_with_state() 2017-09-01 16:48:24 +03:00
intel_atomic.c drm/i915/cnl: Fix Cannonlake scaler mode programing. 2017-06-12 09:45:55 -07:00
intel_audio.c drm/i915: Don't relay on I915_MAX_PIPES 2017-10-10 18:07:48 +03:00
intel_bios.c This time really the last i915 batch for v4.15: 2017-11-04 05:43:44 +10:00
intel_bios.h
intel_breadcrumbs.c drm/i915: Stop listening to request resubmission from the signaler kthread 2017-12-14 10:58:50 +02:00
intel_cdclk.c drm/i915: Apply Display WA #1183 on skl, kbl, and cfl 2018-01-04 14:39:08 +02:00
intel_color.c drm/i915: Use crtc_state_is_legacy_gamma in intel_color_check 2017-10-09 10:33:23 -07:00
intel_crt.c drm/i915/crt: split compute_config hook by platforms 2017-10-19 15:52:53 +03:00
intel_csr.c drm/i915: Update DMC firmware load error messages 2017-10-16 18:53:28 +03:00
intel_ddi.c drm/i915: Protect DDI port to DPLL map from theoretical race. 2017-12-19 14:59:53 +02:00
intel_device_info.c drm/i915/cnl: Add support slice/subslice/eu configs 2017-09-26 13:02:44 -07:00
intel_display.c drm/i915: Put all non-blocking modesets onto an ordered wq 2018-01-02 13:45:13 +02:00
intel_dp_aux_backlight.c drm/i915: Rename global i915 to i915_modparams 2017-09-22 14:50:36 +03:00
intel_dp_link_training.c drm/i915: Explicit the connector name for DP link training result 2017-07-19 08:32:42 +02:00
intel_dp_mst.c drm/i915: Handle drm-layer errors in intel_dp_add_mst_connector 2017-10-17 18:23:30 +03:00
intel_dp.c main drm pull request for v4.15 2017-11-15 20:42:10 -08:00
intel_dpio_phy.c drm/i915: Fix DDI PHY init if it was already on 2017-10-03 13:47:29 -07:00
intel_dpll_mgr.c drm/i915/cnl: Fix PLL initialization for HDMI. 2017-10-16 17:11:06 -07:00
intel_dpll_mgr.h drm/i915/cnl: Initialize PLLs 2017-06-12 09:42:18 -07:00
intel_drv.h drm/i915: fix intel_backlight_device_register declaration 2017-11-28 10:31:59 +02:00
intel_dsi_dcs_backlight.c drm/i915: Initialize 'data' in intel_dsi_dcs_backlight.c 2017-08-16 18:02:00 +03:00
intel_dsi_pll.c drm/i915/glk: Validate only DSI PORT A PLL divider 2017-02-28 11:54:52 +02:00
intel_dsi_vbt.c drm/i915/bxt: use NULL for GPIO connection ID 2017-08-21 11:52:29 +03:00
intel_dsi.c drm/i915: Use existing DSI backlight ports info 2017-10-20 11:28:49 +03:00
intel_dsi.h drm/i915/dsi: arrange intel_dsi.h according to relevant files 2017-03-07 15:18:43 +02:00
intel_dvo.c drm/i915: Reuse normal state readout for LVDS/DVO fixed mode 2017-10-11 19:44:19 +03:00
intel_engine_cs.c drm/i915: Filter out spurious execlists context-switch interrupts 2017-11-09 16:18:11 +02:00
intel_fbc.c drm/i915: adjust get_crtc_fence_y_offset() to use base.y instead of crtc.y 2017-10-18 17:02:45 +03:00
intel_fbdev.c drm/i915/fbdev: Serialise early hotplug events with async fbdev config 2017-11-28 10:31:52 +02:00
intel_fifo_underrun.c drm/i915: Don't rmw PIPESTAT enable bits 2017-09-25 16:54:09 +03:00
intel_frontbuffer.c drm/i915: Remove 'retire' parameter from intel_fb_obj_flush 2017-02-22 12:12:17 +00:00
intel_frontbuffer.h drm/i915: Remove 'retire' parameter from intel_fb_obj_flush 2017-02-22 12:12:17 +00:00
intel_guc_ct.c drm/i915/guc: Introduce buffer based cmd transport 2017-05-26 13:26:53 +01:00
intel_guc_ct.h drm/i915/guc: Introduce buffer based cmd transport 2017-05-26 13:26:53 +01:00
intel_guc_fw.c drm/i915/uc: Unify firmware loading 2017-10-16 18:53:29 +03:00
intel_guc_fw.h drm/i915/guc: Rename intel_guc_loader.c to intel_guc_fw.c 2017-10-16 18:53:25 +03:00
intel_guc_fwif.h drm/i915/guc: Small fixups post code move 2017-10-16 18:53:23 +03:00
intel_guc_log.c drm/i915: Unify uC variable types to avoid flooding checkpatch.pl 2017-10-06 14:09:40 +03:00
intel_guc_log.h drm/i915: Unify uC variable types to avoid flooding checkpatch.pl 2017-10-06 14:09:40 +03:00
intel_guc.c drm/i915/guc: Small fixups post code move 2017-10-16 18:53:23 +03:00
intel_guc.h drm/i915/guc: Rename intel_guc_loader.c to intel_guc_fw.c 2017-10-16 18:53:25 +03:00
intel_gvt.c drm/i915: Rename global i915 to i915_modparams 2017-09-22 14:50:36 +03:00
intel_gvt.h drm/i915/gvt: Add gvt options sanitize function 2017-05-30 15:59:47 +03:00
intel_hangcheck.c drm/i915: Rename global i915 to i915_modparams 2017-09-22 14:50:36 +03:00
intel_hdmi.c Merge tag 'drm-misc-fixes-2017-11-20' of git://anongit.freedesktop.org/drm/drm-misc into drm-next 2017-11-24 11:33:29 +10:00
intel_hotplug.c drm/i915: Introduce intel_hpd_pin function. 2017-08-11 11:53:47 -07:00
intel_huc.c drm/i915/huc: Move fw select function 2017-10-16 18:53:30 +03:00
intel_huc.h drm/i915/huc: Fix includes in intel_huc.c 2017-10-06 16:01:15 +01:00
intel_i2c.c drm/i915: Prevent zero length "index" write 2017-11-28 10:31:42 +02:00
intel_lpe_audio.c drm/i915/lpe: Remove double-encapsulation of info string 2017-12-19 14:59:40 +02:00
intel_lrc.c drm/i915/execlists: Remove the priority "optimisation" 2017-11-09 16:18:13 +02:00
intel_lrc.h drm/i915/execlists: Distinguish the incomplete context notifies 2017-10-04 17:52:45 +01:00
intel_lspcon.c drm/i915: Add retries for LSPCON detection 2017-10-13 12:15:10 +03:00
intel_lvds.c drm/i915: Allow PCH platforms fall back to BIOS LVDS mode 2017-10-11 21:43:30 +03:00
intel_mocs.c drm/i915/cnl: Cannonlake has same MOCS table than Skylake. 2017-06-07 07:29:51 -07:00
intel_mocs.h
intel_modes.c drm/i915: always update ELD connector type after get modes 2017-09-26 09:14:20 -07:00
intel_opregion.c drm/i915: Rename global i915 to i915_modparams 2017-09-22 14:50:36 +03:00
intel_overlay.c drm: Pass struct drm_file * to __drm_mode_object_find [v2] 2017-10-12 10:03:04 +10:00
intel_panel.c drm/i915: Rename global i915 to i915_modparams 2017-09-22 14:50:36 +03:00
intel_pipe_crc.c drm/i915: Favor for_each_pipe() macro 2017-10-10 18:29:52 +03:00
intel_pm.c Revert "drm/i915: Display WA #1133 WaFbcSkipSegments:cnl, glk" 2017-12-07 11:32:52 +02:00
intel_psr.c drm/i915/psr: Fix register name mess up. 2018-01-02 13:44:56 +02:00
intel_renderstate_gen6.c
intel_renderstate_gen7.c
intel_renderstate_gen8.c
intel_renderstate_gen9.c drm/i915/gen9: Send all components in VF state 2017-08-14 12:15:49 +03:00
intel_renderstate.h
intel_ringbuffer.c drm/i915: Remove walk over obj->vma_list for the shrinker 2017-10-16 20:44:19 +01:00
intel_ringbuffer.h main drm pull request for v4.15 2017-11-15 20:42:10 -08:00
intel_runtime_pm.c drm/i915: Apply Display WA #1183 on skl, kbl, and cfl 2018-01-04 14:39:08 +02:00
intel_sdvo_regs.h
intel_sdvo.c drm/i915: Make i2c lock ops static 2017-09-01 10:30:40 -07:00
intel_sideband.c drm/i915: Move rps.hw_lock to dev_priv and s/hw_lock/pcu_lock 2017-10-11 08:56:56 +01:00
intel_sprite.c Merge tag 'drm-intel-next-2017-10-12' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2017-10-20 10:56:10 +10:00
intel_tv.c drm/i915: Use mul_u32_u32() for 32b x 32b -> 64b result 2017-09-13 13:27:20 +01:00
intel_uc_fw.c drm/i915/uc: Add pretty printer for uc firmware 2017-10-17 16:42:56 +01:00
intel_uc_fw.h drm/i915/uc: Add pretty printer for uc firmware 2017-10-17 16:42:56 +01:00
intel_uc.c drm/i915/guc: Update Guc messages on load failure 2017-10-16 18:53:30 +03:00
intel_uc.h drm/i915/guc: Move GuC core definitions into dedicated files 2017-10-06 09:37:20 +03:00
intel_uncore.c drm/i915: Re-register PMIC bus access notifier on runtime resume 2017-11-21 11:39:31 +02:00
intel_uncore.h drm/i915: Re-register PMIC bus access notifier on runtime resume 2017-11-21 11:39:31 +02:00
intel_vbt_defs.h drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin. 2017-10-20 16:18:03 -07:00
Kconfig drm/i915/fence: Avoid del_timer_sync() from inside a timer 2017-09-19 13:06:21 +01:00
Kconfig.debug drm/i915: Add SW_SYNC to our recommend testing Kconfig 2017-08-12 10:30:42 +01:00
Makefile main drm pull request for v4.15 2017-11-15 20:42:10 -08:00