linux-stable/drivers/gpu/drm/i915
A.Sunil Kamath 6b457d31ea drm/i915/skl: Implement enable/disable for Display C5 state.
This patch just implements the basic enable and disable
functions of DC5 state which is needed for both SKL and BXT.

Its important to load respective CSR program before calling
enable, which anyways will happen as CSR program is executed
during boot.

DC5 is a power saving state where hardware dynamically disables
power well 1 and the CDCLK PLL and saves the associated registers.

DC5 can be entered when software allows it, power well 2 is
disabled, and hardware detects that all pipes are disabled
or pipe A is enabled with PSR active.

Its better to configure display engine to have power well 2 disabled before
getting into DC5 enable function. Hence rpm framework will have to
ensure to check status of power well 2 before calling gen9_enable_dc5.

Rather dc5 entry criteria should be decided based on power well 2 status.
If disabled, then call gen9_enable_dc5.

v2: Replace HAS_ with IS_ check as per Daniel's review comments

v3: Cleared the bits dc5/dc6 enable of DC_STATE_EN register
before setting them as per Satheesh's review comments.

v4: call POSTING_READ for every write to a register to ensure that
its written immediately.

v5: Modified as per review comments from Imre.
- Squashed register definitions into this patch.
- Finetuned comments and functions.

v6:
Avoid redundant writes in gen9_set_dc_state_debugmask_memory_up function.

v7:
- Rebase to latest.
- Move all runtime PM functions defined in intel_display.c to
  intel_runtime_pm.c.

v8: Rebased to drm-intel-nightly. (Animesh)

Issue: VIZ-2819
Signed-off-by: A.Sunil Kamath <sunil.kamath@intel.com>
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Signed-off-by: Animesh Manna <animesh.manna@intel.com>
Reviewed-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2015-05-08 13:03:12 +02:00
..
dvo.h
dvo_ch7xxx.c
dvo_ch7017.c
dvo_ivch.c Enabled dithering in the intel VCH DVO for 18bpp pipelines. 2015-03-30 16:39:31 +02:00
dvo_ns2501.c drm/i915: Enable dithering on NatSemi DVO2501 for Fujitsu S6010 2015-04-23 21:31:58 +02:00
dvo_sil164.c
dvo_tfp410.c
i915_cmd_parser.c drm/i915: Tidy batch pool logic 2015-04-10 08:56:04 +02:00
i915_debugfs.c drm/i915: fix semicolon.cocci warnings 2015-04-16 12:59:57 +02:00
i915_dma.c drm/i915/skl: Add support to load SKL CSR firmware. 2015-05-08 13:03:10 +02:00
i915_drv.c drm/i915/skl: Add support to load SKL CSR firmware. 2015-05-08 13:03:10 +02:00
i915_drv.h drm/i915/skl: Add DC5 Trigger Sequence 2015-05-08 13:03:11 +02:00
i915_gem.c Merge tag 'drm-intel-next-2015-04-23-fixed' of git://anongit.freedesktop.org/drm-intel into drm-next 2015-05-08 20:51:06 +10:00
i915_gem_batch_pool.c drm/i915: Split batch pool into size buckets 2015-04-10 08:56:05 +02:00
i915_gem_batch_pool.h drm/i915: Split batch pool into size buckets 2015-04-10 08:56:05 +02:00
i915_gem_context.c drm/i915: Don't use atomics for pg_dirty_rings 2015-04-23 21:06:02 +02:00
i915_gem_debug.c
i915_gem_dmabuf.c dma-buf: cleanup dma_buf_export() to make it easily extensible 2015-04-21 14:47:16 +05:30
i915_gem_evict.c drm/i915: kerneldoc for i915_gem_shrinker.c 2015-03-20 11:48:16 +01:00
i915_gem_execbuffer.c drm/i915: Simplify cmd-parser DISPATCH_SECURE check 2015-05-08 13:03:09 +02:00
i915_gem_gtt.c drm/i915/gtt: Allocate va range only if vma is not bound 2015-04-30 13:31:24 +03:00
i915_gem_gtt.h rm/i915: Move i915_get_ggtt_vma_pages into ggtt_bind_vma 2015-04-23 21:07:53 +02:00
i915_gem_render_state.c
i915_gem_render_state.h
i915_gem_shrinker.c drm/i915: Simplify object is-pinned checking for shrinker 2015-04-10 10:58:34 +02:00
i915_gem_stolen.c drm/i915: use proper FBC base register on all new platforms 2015-04-09 15:57:46 +02:00
i915_gem_tiling.c drm/i915: Simplify i915_gem_obj_is_pinned() test for set-tiling 2015-04-16 11:20:29 +02:00
i915_gem_userptr.c
i915_gpu_error.c drm/i915: Record ring->start address in error state 2015-04-10 08:56:07 +02:00
i915_ioc32.c
i915_irq.c Merge tag 'drm-intel-next-2015-04-23-fixed' of git://anongit.freedesktop.org/drm-intel into drm-next 2015-05-08 20:51:06 +10:00
i915_params.c drm/i915: Add module param to test the load detect code 2015-03-27 11:22:52 +01:00
i915_reg.h drm/i915/skl: Implement enable/disable for Display C5 state. 2015-05-08 13:03:12 +02:00
i915_suspend.c
i915_sysfs.c drm/i915/skl: Updated the act_freq_mhz_show sysfs function 2015-03-17 22:30:25 +01:00
i915_trace.h Merge tag 'drm-intel-next-2015-04-23-fixed' of git://anongit.freedesktop.org/drm-intel into drm-next 2015-05-08 20:51:06 +10:00
i915_trace_points.c
i915_vgpu.c
i915_vgpu.h drm/i915: Add ULL postfix to VGT_MAGIC constant 2015-03-17 22:30:18 +01:00
intel_acpi.c
intel_atomic.c drm/i915: skylake primary plane scaling using shared scalers 2015-05-08 13:03:06 +02:00
intel_atomic_plane.c Merge tag 'drm-intel-next-2015-04-23-fixed' of git://anongit.freedesktop.org/drm-intel into drm-next 2015-05-08 20:51:06 +10:00
intel_audio.c drm/i915/audio: remove duplicated include from intel_audio.c 2015-04-16 17:53:15 +02:00
intel_bios.c drm/i915: Fix the VBT child device parsing for BSW 2015-04-10 08:56:14 +02:00
intel_bios.h drm/i915: Fix the VBT child device parsing for BSW 2015-04-10 08:56:14 +02:00
intel_crt.c drm/i915: Allocate connector state together with the connectors 2015-04-13 15:21:21 +03:00
intel_csr.c drm/i915/skl: Add DC5 Trigger Sequence 2015-05-08 13:03:11 +02:00
intel_ddi.c drm/i915: fix intel_prepare_ddi 2015-04-30 12:33:09 +03:00
intel_display.c drm/i915: skylake primary plane scaling using shared scalers 2015-05-08 13:03:06 +02:00
intel_dp.c Merge tag 'drm-intel-next-2015-04-23-fixed' of git://anongit.freedesktop.org/drm-intel into drm-next 2015-05-08 20:51:06 +10:00
intel_dp_mst.c drm/i915/bxt: Restrict PORT_CLK_SEL programming below gen9 2015-04-16 11:29:05 +02:00
intel_drv.h drm/i915/skl: Add DC5 Trigger Sequence 2015-05-08 13:03:11 +02:00
intel_dsi.c drm/i915: Allocate connector state together with the connectors 2015-04-13 15:21:21 +03:00
intel_dsi.h
intel_dsi_panel_vbt.c
intel_dsi_pll.c
intel_dvo.c drm/i915: Silence compiler warning in dvo 2015-04-29 14:37:48 +03:00
intel_fbc.c drm/i915: kill i915.powersave 2015-03-26 13:04:23 +01:00
intel_fbdev.c drm/i915: Pass in plane state when (un)pinning frame buffers 2015-03-23 15:00:57 +01:00
intel_fifo_underrun.c
intel_frontbuffer.c drm/i915: PSR VLV: Add single frame update. 2015-04-14 19:15:23 +02:00
intel_hdmi.c Merge tag 'drm-intel-next-2015-04-23-fixed' of git://anongit.freedesktop.org/drm-intel into drm-next 2015-05-08 20:51:06 +10:00
intel_i2c.c Merge tag 'drm-intel-next-2015-04-23-fixed' of git://anongit.freedesktop.org/drm-intel into drm-next 2015-05-08 20:51:06 +10:00
intel_lrc.c Merge tag 'drm-intel-next-2015-04-23-fixed' of git://anongit.freedesktop.org/drm-intel into drm-next 2015-05-08 20:51:06 +10:00
intel_lrc.h drm/i915: Move common request allocation code into a common function 2015-04-01 07:54:30 +02:00
intel_lvds.c drm/i915: Allocate connector state together with the connectors 2015-04-13 15:21:21 +03:00
intel_modes.c
intel_opregion.c
intel_overlay.c drm/i915: Allow disabling the destination colorkey for overlay 2015-04-10 08:55:54 +02:00
intel_panel.c kernel.h: implement DIV_ROUND_CLOSEST_ULL 2015-04-17 09:03:55 -04:00
intel_pm.c drm/i915: Re-adjusting rc6 promotional timer for chv 2015-04-16 16:05:24 +02:00
intel_psr.c drm/i915: PSR VLV: Add single frame update. 2015-04-14 19:15:23 +02:00
intel_renderstate.h
intel_renderstate_gen6.c
intel_renderstate_gen7.c
intel_renderstate_gen8.c
intel_renderstate_gen9.c
intel_ringbuffer.c drm/i915/bxt: Add WaDisableThreadStallDopClockGating 2015-05-08 13:03:08 +02:00
intel_ringbuffer.h drm/i915: Split the batch pool by engine 2015-04-10 08:56:04 +02:00
intel_runtime_pm.c drm/i915/skl: Implement enable/disable for Display C5 state. 2015-05-08 13:03:12 +02:00
intel_sdvo.c drm/i915: Allocate connector state together with the connectors 2015-04-13 15:21:21 +03:00
intel_sdvo_regs.h
intel_sideband.c
intel_sprite.c drm/i915: skylake sprite plane scaling using shared scalers 2015-05-08 13:03:07 +02:00
intel_tv.c drm/i915: Allocate connector state together with the connectors 2015-04-13 15:21:21 +03:00
intel_uncore.c Merge tag 'drm-intel-next-2015-04-23-fixed' of git://anongit.freedesktop.org/drm-intel into drm-next 2015-05-08 20:51:06 +10:00
Kconfig
Makefile drm/i915/skl: Add support to load SKL CSR firmware. 2015-05-08 13:03:10 +02:00