linux/drivers/gpu/drm/i915
Sagar Arun Kamble 1800ad255c drm/i915: Update GEN6_PMINTRMSK setup with GuC enabled
On Loading, GuC sets PM interrupts routing (bit 31) and clears ARAT
expired interrupt (bit 9). Host turbo also updates this register
in RPS flows. This patch ensures bit 31 and bit 9 setup by GuC persists.
ARAT timer interrupt is needed in GuC for various features. It also
facilitates halting GuC and hence achieving RC6. PM interrupt routing
will not impact RPS interrupt reception by host as GuC will redirect
them.
This patch fixes igt test pm_rc6_residency that was failing with guc
load/submission enabled. Tested with SKL GuC v6.1 and BXT GuC v5.1 and v8.7.

v2: i915_irq/i915_pm decoupling from intel_guc. (ChrisW)

v3: restructuring the mask update and rebase w.r.t Ville's patch. (ChrisW)

v4: Updating the pm_intr_keep during direct_interrupts_to_guc. (Sagar)

Cc: Chris Harris <chris.harris@intel.com>
Cc: Zhe Wang <zhe1.wang@intel.com>
Cc: Deepak S <deepak.s@intel.com>
Cc: Satyanantha, Rama Gopal M <rama.gopal.m.satyanantha@intel.com>
Cc: Akash Goel <akash.goel@intel.com>
Testcase: igt/pm_rc6_residency
Signed-off-by: Sagar Arun Kamble <sagar.a.kamble@intel.com>
Tested-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1464683307-19475-1-git-send-email-sagar.a.kamble@intel.com
2016-05-31 16:13:47 -07:00
..
dvo_ch7xxx.c drm/i915: constify intel_dvo_dev_ops structures 2015-12-09 08:21:10 +01:00
dvo_ch7017.c drm/i915: constify intel_dvo_dev_ops structures 2015-12-09 08:21:10 +01:00
dvo_ivch.c drm/i915: constify intel_dvo_dev_ops structures 2015-12-09 08:21:10 +01:00
dvo_ns2501.c drm/i915: constify intel_dvo_dev_ops structures 2015-12-09 08:21:10 +01:00
dvo_sil164.c drm/i915: constify intel_dvo_dev_ops structures 2015-12-09 08:21:10 +01:00
dvo_tfp410.c drm/i915: constify intel_dvo_dev_ops structures 2015-12-09 08:21:10 +01:00
dvo.h drm/i915: constify intel_dvo_dev_ops structures 2015-12-09 08:21:10 +01:00
i915_cmd_parser.c drm/i915: Store a i915 backpointer from engine, and use it 2016-05-09 13:41:24 +01:00
i915_debugfs.c drm/i915: Update GEN6_PMINTRMSK setup with GuC enabled 2016-05-31 16:13:47 -07:00
i915_dma.c drm/i915/opregion: Rename init/fini functions to register/unregister 2016-05-23 16:35:50 +01:00
i915_drv.c drm/i915/opregion: Rename init/fini functions to register/unregister 2016-05-23 16:35:50 +01:00
i915_drv.h drm/i915: Update GEN6_PMINTRMSK setup with GuC enabled 2016-05-31 16:13:47 -07:00
i915_gem_batch_pool.c drm/i915: Propagate error from drm_gem_object_init() 2016-04-28 12:28:58 +03:00
i915_gem_batch_pool.h
i915_gem_context.c drm/i915: Merge legacy+execlists context structs 2016-05-24 15:30:31 +01:00
i915_gem_debug.c drm/i915: replace for_each_engine() 2016-03-24 14:34:11 +00:00
i915_gem_dmabuf.c Linux 4.6-rc3 2016-04-11 19:25:13 +02:00
i915_gem_evict.c drm/i915: Store a i915 backpointer from engine, and use it 2016-05-09 13:41:24 +01:00
i915_gem_execbuffer.c drm/i915: Rename and inline i915_gem_context_get() 2016-05-24 15:28:29 +01:00
i915_gem_fence.c drm/i915: Introduce & use new lightweight SGL iterators 2016-05-20 13:43:00 +01:00
i915_gem_gtt.c drm/i915: Introduce & use new lightweight SGL iterators 2016-05-20 13:43:00 +01:00
i915_gem_gtt.h drm/i915: Use drm_i915_private as the native pointer for intel_uncore.c 2016-05-10 17:20:20 +01:00
i915_gem_render_state.c drm/i915: Store a i915 backpointer from engine, and use it 2016-05-09 13:41:24 +01:00
i915_gem_render_state.h drm/i915: Rename intel_engine_cs function parameters 2016-03-16 15:33:10 +00:00
i915_gem_shrinker.c drm/i915: Store a i915 backpointer from engine, and use it 2016-05-09 13:41:24 +01:00
i915_gem_stolen.c drm/i915: Replace "INTEL_INFO->gen == x" checks with IS_GENx 2016-05-11 12:27:27 +01:00
i915_gem_tiling.c drm/i915: Replace "INTEL_INFO->gen == x" checks with IS_GENx 2016-05-11 12:27:27 +01:00
i915_gem_userptr.c drm/i915: Introduce & use new lightweight SGL iterators 2016-05-20 13:43:00 +01:00
i915_gem.c drm/i915: Rename struct intel_context 2016-05-24 15:27:14 +01:00
i915_gem.h drm/i915: Add GEM debugging Kconfig option 2016-04-14 10:45:40 +01:00
i915_gpu_error.c drm/i915: Replace "INTEL_INFO->gen == x" checks with IS_GENx 2016-05-11 12:27:27 +01:00
i915_guc_reg.h drm/i915/bxt: reserve space for RC6 in the the GuC WOPCM 2016-05-18 12:49:19 +01:00
i915_guc_submission.c drm/i915: Put the kernel_context in drm_i915_private next to its friends 2016-05-24 15:29:57 +01:00
i915_ioc32.c
i915_irq.c drm/i915: Update GEN6_PMINTRMSK setup with GuC enabled 2016-05-31 16:13:47 -07:00
i915_params.c drm/i915: Revert async unpin and nonblocking atomic commit 2016-05-25 09:33:04 +02:00
i915_params.h drm/i915: Revert async unpin and nonblocking atomic commit 2016-05-25 09:33:04 +02:00
i915_reg.h drm/i915: Update GEN6_PMINTRMSK setup with GuC enabled 2016-05-31 16:13:47 -07:00
i915_suspend.c drm/i915/bxt: Don't save/restore eDP panel power during suspend (v3) 2016-02-08 11:32:32 +02:00
i915_sysfs.c drm/i915: Rename struct intel_context 2016-05-24 15:27:14 +01:00
i915_trace_points.c
i915_trace.h drm/i915: Rename struct intel_context 2016-05-24 15:27:14 +01:00
i915_vgpu.c drm/i915: Use drm_i915_private as the native pointer for intel_uncore.c 2016-05-10 17:20:20 +01:00
i915_vgpu.h drm/i915: Use drm_i915_private as the native pointer for intel_uncore.c 2016-05-10 17:20:20 +01:00
intel_acpi.c
intel_atomic_plane.c drm/i915: Revert async unpin and nonblocking atomic commit 2016-05-25 09:33:04 +02:00
intel_atomic.c drm/i915: Revert async unpin and nonblocking atomic commit 2016-05-25 09:33:04 +02:00
intel_audio.c Revert "drm/i915: start adding dp mst audio" 2016-05-03 22:28:26 +02:00
intel_bios.c drm/i915/opregion: Convert to using native drm_i915_private 2016-05-23 16:35:21 +01:00
intel_bios.h drm/i915: Parse LFP brightness control field in VBT 2016-05-02 16:17:38 +03:00
intel_color.c drm/i915: Do not check crtc_state->active in intel_color_load_luts. 2016-03-31 12:46:07 +02:00
intel_crt.c drm/i915: Give encoders useful names 2016-05-30 17:02:26 +03:00
intel_csr.c drm/i915/kbl: Introduce the first official DMC for Kabylake. 2016-05-05 16:49:01 -07:00
intel_ddi.c drm/i915: Give encoders useful names 2016-05-30 17:02:26 +03:00
intel_display.c drm/i915: kill STANDARD/CURSOR plane screams 2016-05-30 17:03:11 +03:00
intel_dp_aux_backlight.c drm/i915: Add Backlight Control using DPCD for eDP connectors (v9) 2016-04-26 15:17:54 +03:00
intel_dp_link_training.c drm/i915/dp: reduce missing TPS3 support errors to debug logging 2016-02-08 11:37:17 +02:00
intel_dp_mst.c drm/i915: Give encoders useful names 2016-05-30 17:02:26 +03:00
intel_dp.c drm/i915: Give encoders useful names 2016-05-30 17:02:26 +03:00
intel_dpio_phy.c drm/i915: Move VLV HDMI lane reset work around logic to intel_dpio_phy.c 2016-04-29 09:59:00 +03:00
intel_dpll_mgr.c drm/i915: Use crtc->name in debug messages 2016-05-30 17:01:16 +03:00
intel_dpll_mgr.h drm/i915: Use a crtc mask instead of a refcount for dpll functions, v2. 2016-03-17 09:27:28 +01:00
intel_drv.h drm/i915: Revert async unpin and nonblocking atomic commit 2016-05-25 09:33:04 +02:00
intel_dsi_dcs_backlight.c drm/i915/dsi: CABC support for Panel PWM backlight control 2016-05-17 16:12:39 +03:00
intel_dsi_panel_vbt.c drm/i915/dsi: add support for gpio elements on CHV 2016-04-27 09:48:17 +03:00
intel_dsi_pll.c drm/i915: Eliminate {vlv,bxt}_configure_dsi_pll() 2016-04-15 16:25:27 +03:00
intel_dsi.c drm/i915: Give encoders useful names 2016-05-30 17:02:26 +03:00
intel_dsi.h drm/i915/dsi: CABC support for Panel PWM backlight control 2016-05-17 16:12:39 +03:00
intel_dvo.c drm/i915: Give encoders useful names 2016-05-30 17:02:26 +03:00
intel_fbc.c drm/i915: Revert async unpin and nonblocking atomic commit 2016-05-25 09:33:04 +02:00
intel_fbdev.c drm/i915: Use crtc->name in debug messages 2016-05-30 17:01:16 +03:00
intel_fifo_underrun.c drm/i915: Do not use {HAS_*, IS_*, INTEL_INFO}(dev_priv->dev) 2016-04-07 14:50:26 +03:00
intel_frontbuffer.c
intel_guc_fwif.h drm/i915/guc: rework guc_add_workqueue_item() 2016-05-23 14:21:53 +01:00
intel_guc_loader.c drm/i915: Update GEN6_PMINTRMSK setup with GuC enabled 2016-05-31 16:13:47 -07:00
intel_guc.h drm/i915: Rename struct intel_context 2016-05-24 15:27:14 +01:00
intel_hdmi.c drm/i915: Give encoders useful names 2016-05-30 17:02:26 +03:00
intel_hotplug.c drm/i915: Small display interrupt handlers tidy 2016-05-09 13:38:16 +01:00
intel_i2c.c drm/i915: Make GMBUS timeout message DRM_DEBUG_KMS 2016-04-12 13:23:17 +03:00
intel_lrc.c drm/i915: Revert async unpin and nonblocking atomic commit 2016-05-25 09:33:04 +02:00
intel_lrc.h drm/i915: Merge legacy+execlists context structs 2016-05-24 15:30:31 +01:00
intel_lvds.c drm/i915: Give encoders useful names 2016-05-30 17:02:26 +03:00
intel_mocs.c drm/i915: Store a i915 backpointer from engine, and use it 2016-05-09 13:41:24 +01:00
intel_mocs.h drm/i915/mocs: Program MOCS for all engines on init 2016-04-14 10:45:40 +01:00
intel_modes.c
intel_opregion.c drm/i915/opregion: Rename init/fini functions to register/unregister 2016-05-23 16:35:50 +01:00
intel_overlay.c drm/i915: Convert intel_overlay.c to use native drm_i915_private pointers 2016-05-12 15:20:42 +01:00
intel_panel.c drm/i915/dsi: Add DCS control for Panel PWM 2016-05-17 16:12:38 +03:00
intel_pm.c drm/i915/guc: distinguish HAS_GUC() from HAS_GUC_UCODE/HAS_GUC_SCHED 2016-05-23 14:21:52 +01:00
intel_psr.c drm/i915/psr: Use ->get_aux_send_ctl functions 2016-05-20 09:53:52 +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: Stop automatically retiring requests after a GPU hang 2016-05-13 12:39:20 +01:00
intel_ringbuffer.h drm/i915: Rename struct intel_context 2016-05-24 15:27:14 +01:00
intel_runtime_pm.c drm/i915: Assert the dbuf is enabled when disabling DC5/6 2016-05-23 21:11:18 +03:00
intel_sdvo_regs.h drm/i915/sdvo: revert bogus kernel-doc comments to normal comments 2016-01-20 10:21:34 +02:00
intel_sdvo.c drm/i915: Give encoders useful names 2016-05-30 17:02:26 +03:00
intel_sideband.c drm/i915: Extend gpio read/write to other cores 2016-02-04 19:11:17 +02:00
intel_sprite.c drm/i915: Give meaningful names to all the planes 2016-05-30 17:02:10 +03:00
intel_tv.c drm/i915: Give encoders useful names 2016-05-30 17:02:26 +03:00
intel_uncore.c drm/i915/guc: distinguish HAS_GUC() from HAS_GUC_UCODE/HAS_GUC_SCHED 2016-05-23 14:21:52 +01:00
intel_vbt_defs.h drm/i915: Determine DP++ type 1 DVI adaptor presence based on VBT 2016-05-09 14:09:38 +03:00
Kconfig drm/i915: Kconfig for extra driver debugging 2016-03-03 17:26:57 +00:00
Kconfig.debug drm/i915: Add GEM debugging Kconfig option 2016-04-14 10:45:40 +01:00
Makefile drm/i915/dsi: Add DCS control for Panel PWM 2016-05-17 16:12:38 +03:00