linux/drivers/gpu/drm/i915
Chris Wilson 54905ab5fe drm/i915: Limit Valleyview and earlier to only using mappable scanout
Valleyview appears to be limited to only scanning out from the first 512MiB
of the Global GTT. Lets presume that this behaviour was inherited from the
display block copied from g4x (not Ironlake) and all earlier generations
are similarly affected, though testing suggests different symptoms. For
simplicity, impose that these platforms must scanout from the mappable
region. (For extra simplicity, use HAS_GMCH_DISPLAY even though this
catches Cherryview which does not appear to be limited to the low
aperture for its scanout.)

v2: Use HAS_GMCH_DISPLAY() to more clearly convey my intent about
limiting this workaround to the old style of display engine.

v3: Update changelog to reflect testing by Ville Syrjälä
v4: Include the changes to the comments as well

Reported-by: Luis Botello <luis.botello.ortega@intel.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98036
Fixes: 2efb813d53 ("drm/i915: Fallback to using unmappable memory for scanout")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Akash Goel <akash.goel@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: <drm-intel-fixes@lists.freedesktop.org> # v4.9-rc1+
Link: http://patchwork.freedesktop.org/patch/msgid/20161107110128.28762-1-chris@chris-wilson.co.uk
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
(cherry picked from commit 767a222e47)
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2016-11-07 19:02:35 +02:00
..
gvt drm/i915: gvt: Introduce the basic architecture of GVT-g 2016-06-17 20:35:06 +01:00
dvo_ch7xxx.c
dvo_ch7017.c
dvo_ivch.c
dvo_ns2501.c
dvo_sil164.c
dvo_tfp410.c
dvo.h
i915_cmd_parser.c drm/i915: use NULL for NULL pointers 2016-09-16 10:35:43 +03:00
i915_debugfs.c Merge tag 'drm-intel-next-2016-09-19' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-09-20 06:23:22 +10:00
i915_drv.c drm/i915: Fix mismatched INIT power domain disabling during suspend 2016-10-28 15:19:43 +03:00
i915_drv.h drm/i915: keep declarations in i915_drv.h 2016-10-28 15:17:12 +03:00
i915_gem_batch_pool.c drm/i915: Double check the active status on the batch pool 2016-08-04 20:19:50 +01:00
i915_gem_batch_pool.h drm/i915: Double check the active status on the batch pool 2016-08-04 20:19:50 +01:00
i915_gem_context.c drm/i915: Update reset path to fix incomplete requests 2016-09-09 14:23:05 +01:00
i915_gem_dmabuf.c drm/prime: Take a ref on the drm_dev when exporting a dma_buf 2016-10-05 15:30:32 +02:00
i915_gem_dmabuf.h drm/i915: Serialise presentation with imported dmabufs 2016-06-17 10:32:26 +01:00
i915_gem_evict.c drm/i915: Mark up all locked waiters 2016-09-09 14:23:03 +01:00
i915_gem_execbuffer.c Merge tag 'drm-for-v4.9' of git://people.freedesktop.org/~airlied/linux 2016-10-11 18:12:22 -07:00
i915_gem_fence.c drm/i915: Use fence_write() from rpm resume 2016-10-28 15:18:51 +03:00
i915_gem_gtt.c drm/i915: remove writeq ifdeffery 2016-09-12 11:33:56 +03:00
i915_gem_gtt.h drm/i915: Embed the scratch page struct into each VM 2016-08-22 12:19:52 +01:00
i915_gem_render_state.c drm/i915: Use VMA for render state page tracking 2016-08-15 11:01:11 +01:00
i915_gem_render_state.h drm/i915: Use VMA for render state page tracking 2016-08-15 11:01:11 +01:00
i915_gem_request.c drm/i915: Distinguish last emitted request from last submitted request 2016-10-10 16:06:43 +03:00
i915_gem_request.h drm/i915: Nonblocking request submission 2016-09-09 14:23:08 +01:00
i915_gem_shrinker.c drm/i915: Mark up all locked waiters 2016-09-09 14:23:03 +01:00
i915_gem_stolen.c drm/i915: pdev cleanup 2016-08-22 12:19:52 +01:00
i915_gem_tiling.c drm/i915: Move fence tracking from object to vma 2016-08-18 22:36:50 +01:00
i915_gem_userptr.c mm: replace get_user_pages_remote() write/force parameters with gup_flags 2016-10-19 08:12:02 -07:00
i915_gem.c drm/i915: Limit Valleyview and earlier to only using mappable scanout 2016-11-07 19:02:35 +02:00
i915_gem.h
i915_gpu_error.c drm/i915: Make HWS_NEEDS_PHYSICAL the exception 2016-09-07 16:07:09 -07:00
i915_guc_reg.h drm/i915/guc: general tidying up (loader) 2016-09-15 10:56:02 +01:00
i915_guc_submission.c drm/i915/guc: Unwind GuC workqueue reservation if request construction fails 2016-10-10 16:06:44 +03:00
i915_ioc32.c
i915_irq.c drm/i915: Use correct index for backtracking HUNG semaphores 2016-10-10 16:06:42 +03:00
i915_memcpy.c drm/i915: Mark the static key for movntqda as static 2016-08-17 12:36:07 +01:00
i915_mm.c drm/i915: Use remap_io_mapping() to prefault all PTE in a single pass 2016-08-19 17:13:36 +01:00
i915_params.c drm/i915: Add a way to test the modeset done during gpu reset, v3. 2016-08-05 23:28:28 +03:00
i915_params.h drm/i915: Add a way to test the modeset done during gpu reset, v3. 2016-08-05 23:28:28 +03:00
i915_pci.c drm/i915: keep declarations in i915_drv.h 2016-10-28 15:17:12 +03:00
i915_pvinfo.h drm/i915: Use offsetof() to calculate the offset of members in PVINFO page 2016-06-17 19:44:25 +01:00
i915_reg.h drm/i915: clarify PMINTRMSK/pm_intr_keep usage 2016-09-15 10:55:43 +01:00
i915_suspend.c drm/i915: pdev cleanup 2016-08-22 12:19:52 +01:00
i915_sw_fence.c drm/i915: Add a sw fence for collecting up dma fences 2016-09-09 14:22:55 +01:00
i915_sw_fence.h drm/i915: Add a sw fence for collecting up dma fences 2016-09-09 14:22:55 +01:00
i915_sysfs.c drm/i915: Drop mutex around clearing error state 2016-09-02 08:32:55 +01:00
i915_trace_points.c
i915_trace.h drm/i915: Remove surplus drm_device parameter to i915_gem_evict_something() 2016-08-04 20:19:50 +01:00
i915_vgpu.c Merge tag 'drm-intel-next-2016-09-19' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-09-20 06:23:22 +10:00
i915_vgpu.h drm/i915: Fold vGPU active check into inner functions 2016-06-17 19:44:29 +01:00
intel_acpi.c
intel_atomic_plane.c drm: remove const attribute to hint at caller that they now own the memory 2016-08-16 14:06:53 +02:00
intel_atomic.c drm: Consolidate plane arrays in drm_atomic_state 2016-06-02 17:20:25 +02:00
intel_audio.c Merge tag 'drm-intel-next-2016-09-19' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-09-20 06:23:22 +10:00
intel_bios.c drm/i915: Clean up DDI DDC/AUX CH sanitation 2016-10-28 15:23:21 +03:00
intel_bios.h
intel_breadcrumbs.c drm/i915: Reset the breadcrumbs IRQ more carefully 2016-10-10 16:06:44 +03:00
intel_color.c drm/i915: Use more atomic state in intel_color.c 2016-08-23 11:58:56 +02:00
intel_crt.c drm/i915: Cleanup crt disable sequence on hsw+ 2016-08-24 09:49:10 +02:00
intel_csr.c drm/i915: Fix botched merge that downgrades CSR versions. 2016-08-22 16:08:32 +03:00
intel_ddi.c drm/i915: Add support for Kabylake to function obtaining shared PLL 2016-09-12 22:06:08 -07:00
intel_device_info.c drm/i915: workaround sparse warning on variable length arrays 2016-10-28 15:17:50 +03:00
intel_display.c drm/i915/dp: Extend BDW DP audio workaround to GEN9 platforms 2016-11-07 18:23:54 +02:00
intel_dp_aux_backlight.c
intel_dp_link_training.c drm/i915: Make DP link training channel equalization DP 1.2 Spec compliant 2016-09-09 14:53:18 -07:00
intel_dp_mst.c drm/i915: Remove ddi_pll_sel from intel_crtc_state 2016-09-07 13:55:33 -07:00
intel_dp.c drm/i915: Respect alternate_aux_channel for all DDI ports 2016-10-28 15:20:54 +03:00
intel_dpio_phy.c drm/i915: Mass convert dev->dev_private to to_i915(dev) 2016-07-04 12:54:07 +01:00
intel_dpll_mgr.c drm/i915/bxt: Fix HDMI DPLL configuration 2016-10-10 16:06:39 +03:00
intel_dpll_mgr.h drm/i915/dp: Add a standalone function to obtain shared dpll for HSW/BDW/SKL/BXT 2016-09-09 14:53:18 -07:00
intel_drv.h drm/i915: SAGV is not SKL-only, so rename a few things 2016-10-10 16:06:36 +03:00
intel_dsi_dcs_backlight.c drm/i915: Mass convert dev->dev_private to to_i915(dev) 2016-07-04 12:54:07 +01:00
intel_dsi_panel_vbt.c drm/i915: Mass convert dev->dev_private to to_i915(dev) 2016-07-04 12:54:07 +01:00
intel_dsi_pll.c drm/i915: Mass convert dev->dev_private to to_i915(dev) 2016-07-04 12:54:07 +01:00
intel_dsi.c drm/i915: Convert intel_dsi to use atomic state 2016-08-23 11:21:39 +02:00
intel_dsi.h
intel_dvo.c drm/i915/dvo: Remove dangling call to drm_encoder_cleanup() 2016-08-29 12:28:09 +03:00
intel_engine_cs.c drm/i915: Reset the breadcrumbs IRQ more carefully 2016-10-10 16:06:44 +03:00
intel_fbc.c drm/i915/fbc: fix CFB size calculation for gen8+ 2016-10-28 15:23:52 +03:00
intel_fbdev.c drm/i915: pdev cleanup 2016-08-22 12:19:52 +01:00
intel_fifo_underrun.c drm/i915: Convert dev_priv->dev backpointers to dev_priv->drm 2016-07-05 11:58:45 +01:00
intel_frontbuffer.c drm/i915: Use dev_priv consistently through the intel_frontbuffer interface 2016-08-04 20:20:03 +01:00
intel_frontbuffer.h drm/i915: Use dev_priv consistently through the intel_frontbuffer interface 2016-08-04 20:20:03 +01:00
intel_guc_fwif.h drm/doc: Fix more kerneldoc/sphinx warnings 2016-08-16 16:09:58 +02:00
intel_guc_loader.c drm/i915/guc: general tidying up (loader) 2016-09-15 10:56:02 +01:00
intel_guc.h drm/i915/guc: Unwind GuC workqueue reservation if request construction fails 2016-10-10 16:06:44 +03:00
intel_gvt.c drm/i915/gvt: Mark i915.enable_gvt as false if loading fails 2016-06-21 12:40:13 +01:00
intel_gvt.h drm/i915: gvt: Introduce the basic architecture of GVT-g 2016-06-17 20:35:06 +01:00
intel_hdmi.c drm/i915: Respect alternate_ddc_pin for all DDI ports 2016-11-07 18:22:06 +02:00
intel_hotplug.c drm/i915: Mark i915_hpd_poll_init_work as static 2016-08-17 12:36:15 +01:00
intel_i2c.c drm/i915: Take forcewake once for the entire GMBUS transaction 2016-08-22 18:42:44 +01:00
intel_lrc.c drm/i915/guc: Unwind GuC workqueue reservation if request construction fails 2016-10-10 16:06:44 +03:00
intel_lrc.h drm/i915: Update reset path to fix incomplete requests 2016-09-09 14:23:05 +01:00
intel_lvds.c Merge tag 'drm-intel-next-2016-09-19' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-09-20 06:23:22 +10:00
intel_mocs.c drm/i915: Rename struct intel_ringbuffer to struct intel_ring 2016-08-02 22:58:16 +01:00
intel_mocs.h drm/i915: rename 'ring' where it refers to an engine or engine_id 2016-07-21 09:59:41 +01:00
intel_modes.c drm: Remove superflous linux/fb.h includes 2016-08-12 10:41:39 +02:00
intel_opregion.c drm/i915: Ignore OpRegion panel type except on select machines 2016-09-14 11:25:05 +03:00
intel_overlay.c drm/i915: Embed the io-mapping struct inside drm_i915_private 2016-08-19 17:13:35 +01:00
intel_panel.c drm/i915/backlight: setup backlight pwm alternate increment on backlight enable 2016-10-10 16:05:52 +03:00
intel_pm.c drm/i915/gen9: fix watermarks when using the pipe scaler 2016-10-28 15:20:15 +03:00
intel_psr.c Revert "drm/i915/psr: Make idle_frames sensible again" 2016-09-14 11:24:58 +03:00
intel_renderstate_gen6.c
intel_renderstate_gen7.c
intel_renderstate_gen8.c
intel_renderstate_gen9.c
intel_renderstate.h drm/i915: Remove duplicate golden render state init from execlists 2016-08-02 22:58:30 +01:00
intel_ringbuffer.c drm/i915: Reset the breadcrumbs IRQ more carefully 2016-10-10 16:06:44 +03:00
intel_ringbuffer.h drm/i915: Reset the breadcrumbs IRQ more carefully 2016-10-10 16:06:44 +03:00
intel_runtime_pm.c drm/i915/vlv: Prevent enabling hpd polling in late suspend 2016-11-07 18:22:46 +02:00
intel_sdvo_regs.h
intel_sdvo.c drm/i915: Convert intel_sdvo to use atomic state 2016-08-23 11:21:51 +02:00
intel_sideband.c drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() 2016-06-30 15:42:33 +01:00
intel_sprite.c drm/i915/skl: Don't try to update plane watermarks if they haven't changed 2016-09-07 12:29:17 +02:00
intel_tv.c drm/i915: Make encoder->compute_config take the connector state 2016-08-23 11:07:23 +02:00
intel_uncore.c drm/i915: Just clear the mmiodebug before a register access 2016-10-10 16:06:41 +03:00
intel_vbt_defs.h drm/i915: Extract physical display dimensions from VBT 2016-06-10 10:41:15 +03:00
Kconfig drm/i915: gvt: Introduce the basic architecture of GVT-g 2016-06-17 20:35:06 +01:00
Kconfig.debug drm/i915: Select DRM_VGEM for igt 2016-07-10 13:22:39 +01:00
Makefile drm/i915: Add a sw fence for collecting up dma fences 2016-09-09 14:22:55 +01:00