linux/drivers/gpu/drm/i915
Imre Deak 3cc134e3ee drm/i915: sanitize rps irq enabling
Atm we first enable the RPS interrupts then we clear any pending ones.
By this we could lose an interrupt arriving after we unmasked it. This
may not be a problem as the caller should handle such a race, but logic
still calls for the opposite order. Also we can delay enabling the
interrupts until after all the RPS initialization is ready with the
following order:

1. disable left-over RPS (earlier via intel_uncore_sanitize)
2. clear any pending RPS interrupts
3. initialize RPS
4. enable RPS interrupts

This also allows us to do the 2. and 4. step the same way for all
platforms, so let's follow this order to simplifying things.

Also make sure any queued interrupts are also cleared.

v2:
- rebase on the GEN9 patches where we don't support RPS yet, so we
  musn't enable RPS interrupts on it (Paulo)
v3:
- avoid enabling RPS interrupts on GEN>9 too (Paulo)
- clarify the RPS init sequence in the log message (Chris)
- add POSTING_READ to gen6_reset_rps_interrupts() (Paulo)
- WARN if any PM_IIR bits are set in gen6_enable_rps_interrupts()
  (Paulo)

Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-11-19 15:03:17 +01:00
..
dvo.h
dvo_ch7xxx.c
dvo_ch7017.c
dvo_ivch.c
dvo_ns2501.c
dvo_sil164.c
dvo_tfp410.c
i915_cmd_parser.c drm/i915: Add the predicate source registers to the register whitelist 2014-11-14 10:29:24 +01:00
i915_debugfs.c drm/i915/skl: Add a debugfs file to dump the DDB allocation 2014-11-07 18:42:09 +01:00
i915_dma.c drm/i915: Make the physical object coherent with GTT 2014-11-14 10:29:18 +01:00
i915_drv.c drm/i915: remove the unnecessary block around display.hpd_irq_setup 2014-11-14 10:29:27 +01:00
i915_drv.h drm/i915: Extend pcode mailbox interface 2014-11-19 14:39:58 +01:00
i915_gem.c drm/i915: Make the physical object coherent with GTT 2014-11-14 10:29:18 +01:00
i915_gem_context.c drm/i915: Initialize workarounds in logical ring mode too 2014-11-14 10:29:25 +01:00
i915_gem_debug.c
i915_gem_dmabuf.c
i915_gem_evict.c
i915_gem_execbuffer.c drm/i915: Request PIN_GLOBAL when pinning a vma for GTT relocations 2014-11-07 18:42:00 +01:00
i915_gem_gtt.c drm/i915: Fix comments about CHV snoop behaviour 2014-11-14 20:06:53 +01:00
i915_gem_gtt.h drm/i915: Move flags describing VMA mappings into the VMA 2014-11-04 14:04:51 +01:00
i915_gem_render_state.c drm/i915 Add golden context support for Gen9 2014-11-04 14:04:55 +01:00
i915_gem_render_state.h
i915_gem_stolen.c drm/i915: Move flags describing VMA mappings into the VMA 2014-11-04 14:04:51 +01:00
i915_gem_tiling.c drm/i915: Report the actual swizzling back to userspace 2014-11-07 18:42:01 +01:00
i915_gem_userptr.c
i915_gpu_error.c drm/i915: Don't print header in error state for non-existing CS 2014-11-18 16:23:13 +01:00
i915_ioc32.c
i915_irq.c drm/i915: sanitize rps irq enabling 2014-11-19 15:03:17 +01:00
i915_params.c
i915_reg.h drm/i915: Drop the HSW special case from __gen6_gt_wait_for_thread_c0() 2014-11-17 19:11:09 +01:00
i915_suspend.c drm/i915: unify remaining register save/restore code a bit 2014-11-14 10:29:28 +01:00
i915_sysfs.c
i915_trace.h drm/i915: Add tracepoints to track a vm during its lifetime 2014-11-14 10:29:13 +01:00
i915_trace_points.c
i915_ums.c drm/i915: don't save/restore backlight hist ctl registers 2014-11-14 10:29:28 +01:00
intel_acpi.c
intel_audio.c drm/i915/audio: fix monitor presence indication after disable 2014-11-18 11:17:37 +01:00
intel_bios.c
intel_bios.h
intel_crt.c drm/i915: Don't claim that we're resetting PCH ADPA register 2014-10-24 16:34:10 +02:00
intel_ddi.c drm/i915/ddi: set has_infoframe flag on DDI too v2 2014-11-19 14:54:08 +01:00
intel_display.c drm/i915: Don't store panning coordinates as 16.16 fixed point 2014-11-19 14:56:53 +01:00
intel_dp.c drm/i915: Tune down sink crc timeout dmesg output 2014-11-19 11:46:35 +01:00
intel_dp_mst.c drm/i915: Fold in intel_mst_port_dp_detect 2014-10-24 16:34:12 +02:00
intel_drv.h drm/i915: sanitize rps irq enabling 2014-11-19 15:03:17 +01:00
intel_dsi.c
intel_dsi.h
intel_dsi_cmd.c
intel_dsi_cmd.h
intel_dsi_panel_vbt.c
intel_dsi_pll.c
intel_dvo.c
intel_fbdev.c drm/i915: Make intel_pin_and_fence_fb_obj take plane and framebuffer 2014-11-07 18:41:51 +01:00
intel_fifo_underrun.c
intel_frontbuffer.c drm/i915: Introduce intel_psr.c 2014-11-17 19:12:28 +01:00
intel_hdmi.c drm/i915/hdmi: fetch infoframe status in get_config v2 2014-11-14 10:29:22 +01:00
intel_i2c.c
intel_lrc.c drm/i915: Drop return value from lrc_setup_hardware_status_page 2014-11-18 09:09:32 +01:00
intel_lrc.h
intel_lvds.c drm/i915: Pass the current pipe from eDP init to backlight setup 2014-11-14 10:29:20 +01:00
intel_modes.c
intel_opregion.c
intel_overlay.c
intel_panel.c drm/i915: Remove most INVALID_PIPE checks from the backlight code 2014-11-14 10:29:21 +01:00
intel_pm.c drm/i915: sanitize rps irq enabling 2014-11-19 15:03:17 +01:00
intel_psr.c drm/i915: Add PSR docbook 2014-11-17 19:13:24 +01:00
intel_renderstate.h drm/i915 Add golden context support for Gen9 2014-11-04 14:04:55 +01:00
intel_renderstate_gen6.c
intel_renderstate_gen7.c
intel_renderstate_gen8.c drm/i915 Update Gen8 golden context batch buffer 2014-11-04 14:04:54 +01:00
intel_renderstate_gen9.c drm/i915 Add golden context support for Gen9 2014-11-04 14:04:55 +01:00
intel_ringbuffer.c drm/i915: Initialize workarounds in logical ring mode too 2014-11-14 10:29:25 +01:00
intel_ringbuffer.h drm/i915: Initialize workarounds in logical ring mode too 2014-11-14 10:29:25 +01:00
intel_runtime_pm.c drm/i915: Reinit display irqs and hpd from chv pipe-a power well 2014-11-17 09:16:53 +01:00
intel_sdvo.c drm/i915: Don't destroy DRM properties in the driver 2014-10-31 18:38:17 +01:00
intel_sdvo_regs.h
intel_sideband.c
intel_sprite.c drm/i915: use the correct obj when preparing the sprite plane 2014-11-14 10:29:13 +01:00
intel_tv.c
intel_uncore.c drm/i915: Drop WaRsForcewakeWaitTC0:vlv 2014-11-17 19:11:18 +01:00
Kconfig
Makefile drm/i915: Introduce intel_psr.c 2014-11-17 19:12:28 +01:00