linux_dsm_epyc7002/drivers/gpu/drm/i915
Imre Deak 73dfc227ff drm/i915/skl: init/uninit display core as part of the HW power domain state
We need to initialize the display core part early, before initializing
the rest of the display power state. This is also described in the bspec
termed "Display initialization sequence". Atm we run this sequence
during driver loading after power domain HW state initialization which
is too late and during runtime suspend/resume which is unneeded and can
interere with DMC functionality which handles HW resources toggled
by this init/uninit sequence automatically. The init sequence must be
run as the first step of HW power state initialization and during
system resume. The uninit sequence must be run during system suspend.

To address the above move the init sequence to the initial HW power
state setup and the uninit sequence to a new power domains suspend
function called during system suspend.

As part of the init sequence we also have to reprogram the DMC firmware
as it's lost across a system suspend/resume cycle.

After this change CD clock initialization during driver loading will
happen only later after other dependent HW/SW parts are initialized,
while during system resume it will get initialized as the last step of
the init sequence. This distinction can be removed by some refactoring
of platform independent parts. I left this refactoring out from this
series since I didn't want to change non-SKL parts. This is a TODO for
later.

v2:
- fix error path in i915_drm_suspend_late()
- don't try to re-program the DMC firmware if it failed to load

Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Patrik Jakobsson <patrik.jakobsson@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1447774433-20834-1-git-send-email-imre.deak@intel.com
2015-11-17 20:55:07 +02:00
..
dvo_ch7xxx.c drm/i915: Constify adjusted_mode 2015-09-30 10:20:11 +02:00
dvo_ch7017.c drm/i915: Constify adjusted_mode 2015-09-30 10:20:11 +02:00
dvo_ivch.c drm/i915: Constify adjusted_mode 2015-09-30 10:20:11 +02:00
dvo_ns2501.c drm/i915: Constify adjusted_mode 2015-09-30 10:20:11 +02:00
dvo_sil164.c drm/i915: Constify adjusted_mode 2015-09-30 10:20:11 +02:00
dvo_tfp410.c drm/i915: Constify adjusted_mode 2015-09-30 10:20:11 +02:00
dvo.h drm/i915: Constify adjusted_mode 2015-09-30 10:20:11 +02:00
i915_cmd_parser.c drm/i915: Add GEN7_GPGPU_DISPATCHDIMX/Y/Z to the register whitelist 2015-10-06 10:40:22 +02:00
i915_debugfs.c drm/i915: Add dev_priv->psr_mmio_base 2015-11-16 16:01:30 +02:00
i915_dma.c drm/i915/skl: init/uninit display core as part of the HW power domain state 2015-11-17 20:55:07 +02:00
i915_drv.c drm/i915/skl: init/uninit display core as part of the HW power domain state 2015-11-17 20:55:07 +02:00
i915_drv.h drm/i915: Add dev_priv->psr_mmio_base 2015-11-16 16:01:30 +02:00
i915_gem_batch_pool.c
i915_gem_batch_pool.h
i915_gem_context.c drm/i915: Report context GTT size 2015-10-19 12:16:46 +02:00
i915_gem_debug.c
i915_gem_dmabuf.c
i915_gem_evict.c drm/i915: Remove dead i915_gem_evict_everything() 2015-10-07 16:05:40 +02:00
i915_gem_execbuffer.c drm/i915: Kill DRI1 cliprects 2015-10-07 16:05:41 +02:00
i915_gem_fence.c drm/i915: Parametrize fence registers 2015-09-30 10:20:03 +02:00
i915_gem_gtt.c drm/i915: Serialise updates to GGTT with access through GGTT on Braswell 2015-11-17 17:36:01 +01:00
i915_gem_gtt.h drm/i915: prevent out of range pt in the PDE macros (take 3) 2015-10-06 14:15:29 +02:00
i915_gem_render_state.c
i915_gem_render_state.h
i915_gem_shrinker.c drm/i915: Avoid GPU stalls from kswapd 2015-10-07 16:05:41 +02:00
i915_gem_stolen.c drm/i915/kbl: Introduce Kabylake platform defition. 2015-10-28 21:35:38 +02:00
i915_gem_tiling.c drm/i915: get runtime PM reference around GEM set_tiling IOCTL 2015-11-17 18:43:30 +02:00
i915_gem_userptr.c drm/i915: Use a task to cancel the userptr on invalidate_range 2015-10-06 14:15:30 +02:00
i915_gem.c drm/i915: Remove redundant check in i915_gem_obj_to_vma 2015-11-12 16:16:40 +02:00
i915_gpu_error.c drm/i915: Add dmc firmware load state and version to error state 2015-11-09 19:16:34 +02:00
i915_guc_reg.h drm/i915/guc: Add GuC css header parser 2015-10-21 14:31:34 +02:00
i915_guc_submission.c drm/i915/guc: Add GuC css header parser 2015-10-21 14:31:34 +02:00
i915_ioc32.c
i915_irq.c drm/i915: Turn __raw_i915_read8() & co. in to inline functions 2015-10-26 16:28:04 +02:00
i915_params.c drm/i915/gen8: Flip the 48b switch 2015-10-19 11:43:48 +02:00
i915_reg.h drm/i915: fix the power well ID for always on wells 2015-11-17 19:38:55 +02:00
i915_suspend.c drm/i915: Parametrize and fix SWF registers 2015-10-13 13:20:38 +02:00
i915_sysfs.c drm/i915/bxt: fix RC6 residency time calculation 2015-09-30 17:15:13 +02:00
i915_trace_points.c
i915_trace.h drm/i915: Add a tracepoint for the shrinker 2015-10-07 16:05:38 +02:00
i915_vgpu.c drm/i915: Turn __raw_i915_read8() & co. in to inline functions 2015-10-26 16:28:04 +02:00
i915_vgpu.h drm/i915: Update PV INFO page definition for Intel GVT-g 2015-09-02 11:46:12 +02:00
intel_acpi.c drm/i915: Drop unnecessary #include <linux/vga_switcheroo.h> 2015-10-13 10:18:38 +02:00
intel_atomic_plane.c drm/i915: Wait for object idle without locks in atomic_commit, v2. 2015-11-02 15:50:31 +01:00
intel_atomic.c drm/i915: Make wait_for_flips interruptible. 2015-11-02 15:50:17 +01:00
intel_audio.c drm/i915/kbl: Introduce Kabylake platform defition. 2015-10-28 21:35:38 +02:00
intel_bios.c i915: switch from acpi_os_ioremap to memremap 2015-10-13 10:22:45 +02:00
intel_bios.h drm/i915: Ignore "digital output" and "not HDMI output" bits for eDP detection 2015-09-23 16:58:29 +02:00
intel_crt.c drm/i915: s/_FDI_RXA_.../FDI_RX_...(PIPE_A)/ 2015-09-30 17:15:11 +02:00
intel_csr.c drm/i915/gen9: Use flush_work to synchronize with dmc loader 2015-11-12 17:30:25 +02:00
intel_ddi.c drm/i915: Make turning on/off PW1 and Misc I/O part of the init/fini sequences 2015-11-17 20:43:51 +02:00
intel_display.c drm/i915/skl: init/uninit display core as part of the HW power domain state 2015-11-17 20:55:07 +02:00
intel_dp_link_training.c drm/i915: Make intel_dp_source_supports_hbr2() take an intel_dp pointer 2015-11-05 15:14:56 +02:00
intel_dp_mst.c drm/i915: Setup DDI clk for MST on SKL 2015-11-10 22:30:42 +02:00
intel_dp.c drm/i915: force link training when requested by Sink 2015-11-17 16:09:45 +01:00
intel_drv.h drm/i915/skl: init/uninit display core as part of the HW power domain state 2015-11-17 20:55:07 +02:00
intel_dsi_panel_vbt.c
intel_dsi_pll.c drm/i915/bxt: vlv_dsi_reset_clocks() can be static 2015-10-06 10:57:06 +02:00
intel_dsi.c drm/i915/bxt: get DSI pixelclock 2015-10-02 14:45:51 +02:00
intel_dsi.h drm/i915/bxt: get DSI pixelclock 2015-10-02 14:45:51 +02:00
intel_dvo.c drm/i915: Constify adjusted_mode 2015-09-30 10:20:11 +02:00
intel_fbc.c drm/i915: remove in_dbg_master check from intel_fbc.c 2015-11-10 11:00:58 +01:00
intel_fbdev.c drm/i915: Move the fbdev async_schedule() into intel_fbdev.c 2015-11-11 13:35:14 +02:00
intel_fifo_underrun.c drm/i915: Check for FIFO underruns after modeset on IVB/HSW and CPT/PPT 2015-11-10 16:23:17 +02:00
intel_frontbuffer.c
intel_guc_fwif.h drm/i915/guc: Add GuC css header parser 2015-10-21 14:31:34 +02:00
intel_guc_loader.c drm/i915: Shut up GuC errors when it's disabled 2015-10-31 09:26:19 +01:00
intel_guc.h drm/i915/guc: Add GuC css header parser 2015-10-21 14:31:34 +02:00
intel_hdmi.c drm/i915: Disable FIFO underrun reporting around IBX transcoder B workaround 2015-11-10 16:23:28 +02:00
intel_hotplug.c Revert "drm/i915: Call encoder hotplug for init and resume cases" 2015-10-08 21:51:57 +02:00
intel_i2c.c drm/i915/kbl: Introduce Kabylake platform defition. 2015-10-28 21:35:38 +02:00
intel_lrc.c drm/i915: make A0 wa's applied to A1 2015-10-29 15:39:15 +02:00
intel_lrc.h drm/i915: Parametrize LRC registers 2015-09-23 17:13:01 +02:00
intel_lvds.c drm/i915: Clean up LVDS register handling harder 2015-11-11 17:45:31 +02:00
intel_mocs.c drm/i915/kbl: Introduce Kabylake platform defition. 2015-10-28 21:35:38 +02:00
intel_mocs.h
intel_modes.c drm/i915: Add HDMI aspect ratio property for SDVO 2015-09-30 10:20:12 +02:00
intel_opregion.c drm/i915: Don't complain about lack of ACPI video bios 2015-10-31 09:26:20 +01:00
intel_overlay.c drm/i915: Wait for object idle without locks in atomic_commit, v2. 2015-11-02 15:50:31 +01:00
intel_panel.c i915: switch from acpi_os_ioremap to memremap 2015-10-13 10:22:45 +02:00
intel_pm.c drm/i915/skl: Correct other-pipe watermark update condition check (v2) 2015-11-17 15:18:25 +01:00
intel_psr.c drm/i915: Model PSR AUX register selection more like the normal AUX code 2015-11-16 16:01:31 +02:00
intel_renderstate_gen6.c
intel_renderstate_gen7.c
intel_renderstate_gen8.c
intel_renderstate_gen9.c
intel_renderstate.h
intel_ringbuffer.c drm/i915: make A0 wa's applied to A1 2015-10-29 15:39:15 +02:00
intel_ringbuffer.h drm/i915: Recover all available ringbuffer space following reset 2015-10-28 17:10:31 +00:00
intel_runtime_pm.c drm/i915/skl: init/uninit display core as part of the HW power domain state 2015-11-17 20:55:07 +02:00
intel_sdvo_regs.h
intel_sdvo.c drm/i915: Disable FIFO underrun reporting around IBX transcoder B workaround 2015-11-10 16:23:28 +02:00
intel_sideband.c
intel_sprite.c drm/i915: Avoid pointer arithmetic in calculating plane surface offset 2015-11-09 20:00:11 +02:00
intel_tv.c Merge remote-tracking branch 'airlied/drm-next' into drm-intel-next 2015-09-30 08:47:41 +02:00
intel_uncore.c drm/i915: Add NEEDS_FORCEWAKE() checks for vlv/chv 2015-10-26 16:28:46 +02:00
Kconfig drm/i915: Serialise updates to GGTT with access through GGTT on Braswell 2015-11-17 17:36:01 +01:00
Makefile drm/i915: Move generic link training code to a separate file 2015-11-05 15:14:56 +02:00