linux/drivers/gpu/drm/i915
Michel Thierry dfc53c5e73 drm/i915: Consider HW CSB write pointer before resetting the sw read pointer
A previous commit resets the Context Status Buffer (CSB) read pointer in
ring init
    commit c0a03a2e4c ("drm/i915: Reset CSB read pointer in ring init")

This is generally correct, but this pointer is not reset after
suspend/resume in some platforms (cht). In this case, the driver should
read the register value instead of resetting the sw read counter to 0.
Otherwise we process old events, leading to unwanted pre-emptions or
something worse.

But in other platforms (bdw) and also during GPU reset or power up, the
CSBWP is reset to 0x7 (an invalid number), and in this case the read
pointer should be set to 5 (the interrupt code will increment this
counter one more time, and will start reading from CSB[0]).

v2: When the CSB registers are reset, the read pointer needs to be set
to 5, otherwise the first write (CSB[0]) won't be read (Mika).
Replace magic numbers with GEN8_CSB_ENTRIES (6) and GEN8_CSB_PTR_MASK
(0x07).

Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Cc: stable@vger.kernel.org # v4.0+
Signed-off-by: Lei Shen <lei.shen@intel.com>
Signed-off-by: Deepak S <deepak.s@intel.com>
Signed-off-by: Michel Thierry <michel.thierry@intel.com>
Reviewed-by: Mika Kuoppala <mika.kuoppala@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2015-09-28 17:23:19 +03:00
..
dvo_ch7xxx.c
dvo_ch7017.c
dvo_ivch.c Fix resume from suspend on IBM X30 2015-06-15 12:21:01 +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
dvo.h
i915_cmd_parser.c drm/i915: Fix command parser table validator 2015-07-29 10:31:04 +02:00
i915_debugfs.c drm/i915/skl: Adding DDI_E power well domain 2015-08-31 18:40:48 +03:00
i915_dma.c drm/i915: Fake AGP is dead 2015-07-28 13:30:00 +02:00
i915_drv.c Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2015-09-04 15:49:32 -07:00
i915_drv.h Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux 2015-09-11 09:35:56 -07: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: Remove the failed context from the fpriv->context_idr 2015-08-14 17:50:41 +02:00
i915_gem_debug.c drm/i915: Implement inter-engine read-read optimisations 2015-05-21 15:11:42 +02:00
i915_gem_dmabuf.c drm/i915: remove unused has_dma_mapping flag 2015-07-13 22:42:41 +02:00
i915_gem_evict.c
i915_gem_execbuffer.c drm/i915: Always mark the object as dirty when used by the GPU 2015-09-02 16:21:53 +03:00
i915_gem_fence.c drm/i915: kerneldoc for tiling IOCTL and swizzle functions 2015-07-27 10:26:30 +02:00
i915_gem_gtt.c Linux 4.2-rc7 2015-08-17 14:13:53 +10:00
i915_gem_gtt.h drm/i915/gtt: Move scratch_pd and scratch_pt into vm struct 2015-06-26 11:06:30 +02:00
i915_gem_render_state.c drm/i915: Add provision to extend Golden context batch 2015-07-21 09:30:57 +02:00
i915_gem_render_state.h drm/i915: Add provision to extend Golden context batch 2015-07-21 09:30:57 +02:00
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: Fix build warning on 32-bit 2015-08-26 10:15:36 +03:00
i915_gem_tiling.c Merge tag 'drm-intel-fixes-2015-08-14' into drm-intel-next-fixes 2015-08-14 18:11:30 +02:00
i915_gem_userptr.c drm/i915: avoid leaking DMA mappings 2015-07-13 22:42:40 +02:00
i915_gem.c Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2015-09-04 15:49:32 -07:00
i915_gpu_error.c drm/i915: Report IOMMU enabled status for GPU hangs 2015-08-14 17:50:41 +02:00
i915_guc_reg.h drm/i915: Add GuC-related header files 2015-07-21 08:38:00 +02:00
i915_ioc32.c Merge tag 'drm-intel-fixes-2015-07-15' into drm-intel-next-queued 2015-07-15 16:36:50 +02:00
i915_irq.c drm/i915: workaround bad DSL readout v3 2015-09-23 10:13:50 +03:00
i915_params.c drm/i915: Add GuC-related module parameters 2015-07-21 08:37:35 +02:00
i915_reg.h drm/i915/skl: enable DDI-E hotplug 2015-08-26 10:24:25 +03:00
i915_suspend.c drm/i915: use dev_priv for the FBC functions 2015-07-08 11:39:45 +02:00
i915_sysfs.c drm/i915/vlv: fix RC6 residency time calculation 2015-06-15 11:56:37 +02:00
i915_trace_points.c
i915_trace.h Merge tag 'drm-intel-fixes-2015-07-15' into drm-intel-next-queued 2015-07-15 16:36:50 +02:00
i915_vgpu.c
i915_vgpu.h
intel_acpi.c
intel_atomic_plane.c drm/i915: Remove transitional references from intel_plane_atomic_check. 2015-06-22 14:28:29 +02:00
intel_atomic.c drm/i915: Commit planes on each crtc separately. 2015-08-13 12:09:18 +03:00
intel_audio.c drm/i915: fix kernel-doc warnings in intel_audio.c 2015-09-21 10:03:53 +03:00
intel_bios.c drm/i915/bios: handle MIPI Sequence Block v3+ gracefully 2015-09-23 16:59:37 +03:00
intel_bios.h drm/i915: eDP can be present on DDI-E 2015-08-31 18:36:38 +03:00
intel_crt.c drm/i915: Get rid of dpms handling. 2015-08-14 17:50:33 +02:00
intel_csr.c drm/i915: Fix CSR MMIO address check 2015-09-10 10:32:48 +03:00
intel_ddi.c drm/i915: Don't use link_bw for PLL setup 2015-09-01 12:31:44 +03:00
intel_display.c drm/i915: Add primary plane to mask if it's visible 2015-09-23 13:18:26 +03:00
intel_dp_mst.c drm/i915: Fix broken mst get_hw_state. 2015-09-08 16:16:50 +03:00
intel_dp.c i915: Set ddi_pll_sel in DP MST path 2015-09-01 12:42:27 +03:00
intel_drv.h i915: Set ddi_pll_sel in DP MST path 2015-09-01 12:42:27 +03:00
intel_dsi_panel_vbt.c drm/i915: s/dpio_lock/sb_lock/ 2015-05-28 11:13:51 +02:00
intel_dsi_pll.c drm/i915: Changes required to enable DSI Video Mode on CHT 2015-07-03 07:39:02 +02:00
intel_dsi.c drm/i915: Allow DSI dual link to be configured on any pipe 2015-09-10 16:23:42 +03:00
intel_dsi.h drm/i915: Use the CRC gpio for panel enable/disable 2015-07-21 09:22:43 +02:00
intel_dvo.c drm/i915: Get rid of dpms handling. 2015-08-14 17:50:33 +02:00
intel_fbc.c drm/i915: fix FBC frontbuffer tracking flushing code 2015-08-05 09:59:44 +02:00
intel_fbdev.c drm/i915: Use new drm_fb_helper functions 2015-08-06 14:13:05 +02:00
intel_fifo_underrun.c
intel_frontbuffer.c drm/i915: fix FBC frontbuffer tracking flushing code 2015-08-05 09:59:44 +02:00
intel_guc_fwif.h drm/i915: Add GuC-related header files 2015-07-21 08:38:00 +02:00
intel_hdmi.c drm/i915: Enable HDMI on DDI-E 2015-08-31 18:27:02 +03:00
intel_hotplug.c drm/i915/skl: enable DDI-E hotplug 2015-08-26 10:24:25 +03:00
intel_i2c.c Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2015-06-26 13:18:51 -07:00
intel_lrc.c drm/i915: Consider HW CSB write pointer before resetting the sw read pointer 2015-09-28 17:23:19 +03:00
intel_lrc.h drm/i915: Consider HW CSB write pointer before resetting the sw read pointer 2015-09-28 17:23:19 +03:00
intel_lvds.c drm/i915: Get rid of dpms handling. 2015-08-14 17:50:33 +02:00
intel_mocs.c drm/i915: Added Programming of the MOCS 2015-07-14 17:13:14 +02:00
intel_mocs.h drm/i915: Added Programming of the MOCS 2015-07-14 17:13:14 +02:00
intel_modes.c
intel_opregion.c Merge tag 'drm-intel-fixes-2015-07-15' into drm-intel-next-queued 2015-07-15 16:36:50 +02:00
intel_overlay.c drm/i915: Update intel_ring_begin() to take a request structure 2015-06-23 14:02:29 +02:00
intel_panel.c drm/i915: Backlight control using CRC PMIC based PWM driver 2015-07-21 09:22:48 +02:00
intel_pm.c drm/i915: Don't try to use DDR DVFS on CHV when disabled in the BIOS 2015-09-10 15:40:02 +03:00
intel_psr.c drm/i915: VLV/CHV PSR: Increase wait delay time before active PSR. 2015-08-05 10:07:44 +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: Contain the WA_REG macro 2015-08-14 17:50:42 +02:00
intel_ringbuffer.h Merge tag 'drm-intel-fixes-2015-07-15' into drm-intel-next-queued 2015-07-15 16:36:50 +02:00
intel_runtime_pm.c drm/i915/skl: Don't call intel_prepare_ddi when encoder list isn't yet initialized. 2015-09-28 11:05:13 +03:00
intel_sdvo_regs.h
intel_sdvo.c drm/i915: Get rid of dpms handling. 2015-08-14 17:50:33 +02:00
intel_sideband.c drm/i915: s/dpio_lock/sb_lock/ 2015-05-28 11:13:51 +02:00
intel_sprite.c drm/i915: always disable irqs in intel_pipe_update_start 2015-07-15 15:06:02 +02:00
intel_tv.c drm/i915: Get rid of dpms handling. 2015-08-14 17:50:33 +02:00
intel_uncore.c Linux 4.2-rc7 2015-08-17 14:13:53 +10:00
Kconfig drm/i915: Use CONFIG_DRM_FBDEV_EMULATION 2015-08-11 14:00:29 +02:00
Makefile Merge tag 'drm-intel-next-fixes-2015-08-16' of git://anongit.freedesktop.org/drm-intel into drm-next 2015-08-17 14:14:44 +10:00