linux/drivers/gpu/drm/i915
Daniel Vetter d18ea1b58a drm/i915: unify PM interrupt preinstall sequence
Since the addition of VECS we have a slightly different enable
sequence for PM interrupts on ivb/hsw vs snb and vlv. Usually that
will end up in hard to track down surprises.

Hence unifiy things and since we have copies of this code in 3 places
now, extract it into its own little helper.

Note that this changes the irq preinstall sequence a bit for snb and
vlv: We now also clear the PM registers in the preinstall hook, in
addition to the PM register clearing/setup already done when actually
enabling rps. So this doesn't fix a bug but simply unifies the code
across all platforms. After the postinstall hook is similarly unified
we can rip out the then redundant PM interrupt setup from the rps
code.

v3: Rebase on top of the retained double-GTIIR clearing. Also
resurrect the masking/disabling of the gen6+ PM interrupts as spotted
by Ben Widaswky.

v4: Move the DE interrupt reset code out of gen5_gt_irq_preinstall
back to ironlake_irq_preinstall where it really belongs. Spotted by
Paulo.

v3: Improve the commit message to more clearly spell out why we want
to unify the code and what exactly changes.

Cc: Paulo Zanoni <przanoni@gmail.com>
Reviewed-by: Ben Widawsky <ben@bwidawsk.net>
[danvet: s/GT/PM/ to fix up a comment which Ben spotted while
reviewing.]
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-07-16 08:14:30 +02:00
..
dvo_ch7xxx.c drm/i915: add support for dvo Chrontel 7010B 2013-05-20 22:02:49 +02:00
dvo_ch7017.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_ivch.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_ns2501.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_sil164.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_tfp410.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo.h Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2012-10-03 23:29:23 -07:00
i915_debugfs.c drm/i915: debugfs entries for [e]LLC 2013-07-16 08:09:12 +02:00
i915_dma.c drm/i915: store eLLC size 2013-07-16 08:08:21 +02:00
i915_drv.c drm/i915: don't frob mm.suspended when not using ums 2013-07-10 14:30:25 +02:00
i915_drv.h drm/i915: store eLLC size 2013-07-16 08:08:21 +02:00
i915_gem_context.c drm/i915: Getter/setter for object attributes 2013-07-08 22:04:34 +02:00
i915_gem_debug.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
i915_gem_dmabuf.c drm/i915: fix dmabuf vmap support 2013-05-01 16:09:31 +10:00
i915_gem_evict.c drm/i915: Embed drm_mm_node in i915 gem obj 2013-07-08 22:04:36 +02:00
i915_gem_execbuffer.c drm/i915: don't frob mm.suspended when not using ums 2013-07-10 14:30:25 +02:00
i915_gem_gtt.c drm/i915: Use eLLC/LLC by default when available 2013-07-16 08:08:39 +02:00
i915_gem_stolen.c drm/i915: WARN if the bios reserved range is bigger than stolen size 2013-07-09 16:53:24 +02:00
i915_gem_tiling.c drm/i915: Getter/setter for object attributes 2013-07-08 22:04:34 +02:00
i915_gem.c drm/i915: store eLLC size 2013-07-16 08:08:21 +02:00
i915_gpu_error.c drm/i915: move error state to own compilation unit 2013-07-12 18:53:13 +02:00
i915_ioc32.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
i915_irq.c drm/i915: unify PM interrupt preinstall sequence 2013-07-16 08:14:30 +02:00
i915_reg.h drm/i915: Define some of the eLLC magic 2013-07-16 08:00:52 +02:00
i915_suspend.c drm/i915: protect backlight registers and data with a spinlock 2013-04-25 14:10:10 +02:00
i915_sysfs.c drm/i915: add error_state sysfs entry 2013-07-01 19:39:31 +02:00
i915_trace_points.c drm/i915: [sparse] trivial sparse fixes 2012-04-18 10:34:49 +02:00
i915_trace.h drm/i915: Getter/setter for object attributes 2013-07-08 22:04:34 +02:00
i915_ums.c drm/i915: scrap register address storage 2013-06-10 19:54:14 +02:00
intel_acpi.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
intel_bios.c drm/i915: Organize VBT stuff inside drm_i915_private 2013-05-10 21:56:46 +02:00
intel_bios.h drm/i915: set CPT FDI RX polarity bits based on VBT 2013-04-18 09:43:31 +02:00
intel_crt.c drm/i915: document why dvo/sdvo/crt need a special dpms function 2013-05-31 20:54:04 +02:00
intel_ddi.c drm/i915: fix the "ghost eDP" encoder unwind path 2013-06-28 14:14:19 +02:00
intel_display.c drm/i915: clear DPLL reg when disabling i9xx dplls 2013-07-12 18:54:02 +02:00
intel_dp.c drm/i915: get mode clock when reading the pipe config v9 2013-07-01 19:37:53 +02:00
intel_drv.h drm/i915: Move fbc members out of line 2013-07-01 11:28:00 +02:00
intel_dvo.c drm/i915: fix dvo DPLL regression 2013-07-08 22:04:37 +02:00
intel_fb.c drm/i915: Getter/setter for object attributes 2013-07-08 22:04:34 +02:00
intel_hdmi.c Revert "drm/i915: Don't use the HDMI port color range bit on Valleyview" 2013-07-01 11:14:53 +02:00
intel_i2c.c drm/i915: avoid premature DP AUX timeouts 2013-05-22 13:51:26 +02:00
intel_lvds.c drm/i915: s/pre_pll/pre/ on the lvds port enable function 2013-07-01 11:27:54 +02:00
intel_modes.c drm/i915: Add "Automatic" mode for the "Broadcast RGB" property 2013-01-20 13:09:44 +01:00
intel_opregion.c drm/i915: tune down DIDL warning about too many outputs 2013-07-01 11:14:42 +02:00
intel_overlay.c drm/i915: move error state to own compilation unit 2013-07-12 18:53:13 +02:00
intel_panel.c drm/i915: Fix WARN_ON() on UP machines 2013-05-23 12:51:30 +02:00
intel_pm.c drm/i915: kill dev_priv->rps.lock 2013-07-11 14:36:43 +02:00
intel_ringbuffer.c drm/i915: don't enable PM_VEBOX_CS_ERROR_INTERRUPT 2013-07-11 14:37:00 +02:00
intel_ringbuffer.h drm/i915: unify ring irq refcounts (again) 2013-07-11 14:36:49 +02:00
intel_sdvo_regs.h drm/i915: clear the entire sdvo infoframe buffer 2012-10-24 15:12:48 +02:00
intel_sdvo.c drm/i915: Don't attempt to read an unitialized stack value 2013-07-12 17:33:21 +02:00
intel_sideband.c drm/i915: change VLV IOSF sideband accessors to not return error code 2013-05-23 23:25:42 +02:00
intel_sprite.c drm/i915: Getter/setter for object attributes 2013-07-08 22:04:34 +02:00
intel_tv.c drm/i915: consolidate and tighten encoder cloning checks 2013-06-05 12:33:14 +02:00
Makefile drm/i915: move error state to own compilation unit 2013-07-12 18:53:13 +02:00