linux/drivers/gpu/drm/i915
Ville Syrjälä ac840ae535 drm/i915: Re-enable GGTT earlier during resume on pre-gen6 platforms
Move the intel_enable_gtt() call to happen before we touch the GTT
during resume. Right now it's done way too late. Before
commit ebb7c78d35 ("agp/intel-gtt: Only register fake agp driver for gen1")
it was actually done earlier on account of also getting called from
the resume hook of the fake agp driver. With the fake agp driver
no longer getting registered we must move the call up.

The symptoms I've seen on my 830 machine include lowmem corruption,
other kinds of memory corruption, and straight up hung machine during
or just after resume. Not really sure what causes the memory corruption,
but so far I've not seen any with this fix.

I think we shouldn't really need to call this during init, but we have
been doing that so I've decided to keep the call. However moving that
call earlier could be prudent as well. Doing it right after the
intel-gtt probe seems appropriate.

Also tested this on 946gz,elk,ilk and all seemed quite happy with
this change.

v2: Reorder init_hw vs. enable_hw functions (Chris)

Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: drm-intel-fixes@lists.freedesktop.org
Fixes: ebb7c78d35 ("agp/intel-gtt: Only register fake agp driver for gen1")
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1462559755-353-1-git-send-email-ville.syrjala@linux.intel.com
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-05-10 12:29:33 +03: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: Store a i915 backpointer from engine, and use it 2016-05-09 13:41:24 +01:00
i915_dma.c drm/i915: Re-enable GGTT earlier during resume on pre-gen6 platforms 2016-05-10 12:29:33 +03:00
i915_drv.c drm/i915: Re-enable GGTT earlier during resume on pre-gen6 platforms 2016-05-10 12:29:33 +03:00
i915_drv.h drm/i915: Store a i915 backpointer from engine, and use it 2016-05-09 13:41:24 +01: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: Store a i915 backpointer from engine, and use it 2016-05-09 13:41:24 +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: Store a i915 backpointer from engine, and use it 2016-05-09 13:41:24 +01:00
i915_gem_fence.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2016-03-17 21:38:27 -07:00
i915_gem_gtt.c drm/i915: Re-enable GGTT earlier during resume on pre-gen6 platforms 2016-05-10 12:29:33 +03:00
i915_gem_gtt.h drm/i915: Re-enable GGTT earlier during resume on pre-gen6 platforms 2016-05-10 12:29:33 +03: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: Canonicalize stolen memory calculations 2016-04-25 13:30:32 +03:00
i915_gem_tiling.c drm/i915: remove i915_gem_object_ggtt_unbind 2016-05-04 13:10:10 +03:00
i915_gem_userptr.c drm/i915: Prevent leaking of -EIO from i915_wait_request() 2016-04-14 10:45:40 +01:00
i915_gem.c drm/i915: Re-enable GGTT earlier during resume on pre-gen6 platforms 2016-05-10 12:29:33 +03: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: Store a i915 backpointer from engine, and use it 2016-05-09 13:41:24 +01:00
i915_guc_reg.h drm/i915/guc: always reset GuC before loading firmware 2016-04-05 13:29:24 +01:00
i915_guc_submission.c drm/i915: Propagate error from drm_gem_object_init() 2016-04-28 12:28:58 +03:00
i915_ioc32.c
i915_irq.c drm/i915: Store a i915 backpointer from engine, and use it 2016-05-09 13:41:24 +01:00
i915_params.c drm/i915: Add Backlight Control using DPCD for eDP connectors (v9) 2016-04-26 15:17:54 +03:00
i915_params.h drm/i915: Add Backlight Control using DPCD for eDP connectors (v9) 2016-04-26 15:17:54 +03:00
i915_reg.h drm/i915/chv: Tune L3 SQC credits based on actual latencies 2016-05-03 16:49:19 +03: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: Hold RPM reference while setting freq limits through sysfs 2016-03-02 18:50:47 +02:00
i915_trace_points.c
i915_trace.h drm/i915: Store a i915 backpointer from engine, and use it 2016-05-09 13:41:24 +01:00
i915_vgpu.c drm/i915: Refer to GGTT {,VM} consistently 2016-03-31 17:55:43 +03:00
i915_vgpu.h
intel_acpi.c
intel_atomic_plane.c drm/i915: Pass the correct crtc state to .update_plane() 2016-03-10 13:49:31 +02:00
intel_atomic.c drm/i915: Remove some post-commit members from intel_crtc->atomic, v3. 2016-03-16 14:50:25 +01: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: Determine DP++ type 1 DVI adaptor presence based on VBT 2016-05-09 14:09:38 +03: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: Bail out of pipe config compute loop on LPT 2016-05-04 17:15:43 +02: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: Enable/disable TMDS output buffers in DP++ adaptor as needed 2016-05-09 14:08:32 +03:00
intel_display.c drm/i915: Add a FIXME about crtc !active vs. watermarks 2016-05-09 19:14:57 +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 Revert "drm/i915: start adding dp mst audio" 2016-05-03 22:28:26 +02:00
intel_dp.c drm/i915: Unduplicate pre encoder enabling phy code 2016-04-29 09:58:53 +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/bxt: PORT_PLL_REF_SEL bit should be set for all BXT variations 2016-04-15 16:10:59 +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: Store a i915 backpointer from engine, and use it 2016-05-09 13:41:24 +01: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/bxt: Adjusting the error in horizontal timings retrieval 2016-04-28 17:08:44 +03:00
intel_dsi.h drm/i915: Compute DSI PLL parameters during .compute_config() 2016-04-15 16:25:27 +03:00
intel_dvo.c drm: Pass 'name' to drm_encoder_init() 2015-12-11 09:13:20 +01:00
intel_fbc.c drm/i915: Store a i915 backpointer from engine, and use it 2016-05-09 13:41:24 +01:00
intel_fbdev.c drm/i915: Move ioremap_wc tracking onto VMA 2016-04-28 12:17:32 +01: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: Decouple GuC engine id from ring id 2016-01-25 10:56:30 +00:00
intel_guc_loader.c drm/i915/guc: always reset GuC before loading firmware 2016-04-05 13:29:24 +01:00
intel_guc.h drm/i915/guc: local optimisations and updating comments 2016-04-20 14:46:14 +01:00
intel_hdmi.c drm/i915: Determine DP++ type 1 DVI adaptor presence based on VBT 2016-05-09 14:09:38 +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: Store a i915 backpointer from engine, and use it 2016-05-09 13:41:24 +01:00
intel_lrc.h drm/i915: Store a i915 backpointer from engine, and use it 2016-05-09 13:41:24 +01:00
intel_lvds.c drm/i915/lvds: separate border enable readout from panel fitter 2016-05-02 10:46:13 +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: Small display interrupt handlers tidy 2016-05-09 13:38:16 +01:00
intel_overlay.c drm/i915: Store a i915 backpointer from engine, and use it 2016-05-09 13:41:24 +01:00
intel_panel.c drm/i915: Add Backlight Control using DPCD for eDP connectors (v9) 2016-04-26 15:17:54 +03:00
intel_pm.c drm/i915: Calculate IPS linetime watermark based on future cdclk 2016-05-09 19:14:11 +03:00
intel_psr.c drm/i915: Do not use {HAS_*, IS_*, INTEL_INFO}(dev_priv->dev) 2016-04-07 14:50:26 +03: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: Store a i915 backpointer from engine, and use it 2016-05-09 13:41:24 +01:00
intel_ringbuffer.h drm/i915: Store a i915 backpointer from engine, and use it 2016-05-09 13:41:24 +01:00
intel_runtime_pm.c drm/i915: Update RAWCLK_FREQ register on VLV/CHV 2016-04-27 20:38:57 +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: move sdvo mappings to vbt data 2016-03-29 15:12:30 +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: Fix plane init failure paths 2016-04-01 23:24:21 +03:00
intel_tv.c drm/i915: move VBT based TV presence check to intel_bios.c 2016-03-16 18:28:07 +02:00
intel_uncore.c drm/i915: Store a i915 backpointer from engine, and use it 2016-05-09 13:41:24 +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: Unduplicate CHV signal level code 2016-04-29 09:55:14 +03:00