linux-hardened/drivers/gpu/drm/i915
Paulo Zanoni 3c6b29b2df drm/i915: fully apply WaSkipStolenMemoryFirstPage
Don't even tell the mm allocator to handle the first page of stolen on
the affected platforms. This means that we won't inherit the FB in
case the BIOS decides to put it at the start of stolen. But the BIOS
should not be putting it at the start of stolen since it's going to
get corrupted. I suppose the bug here is that some pixels at the very
top of the screen will be corrupted, so it's not exactly easy to
notice.

We have confirmation that the first page of stolen does actually get
corrupted, so I really think we should do this in order to avoid any
possible future headaches, even if that means losing BIOS framebuffer
inheritance. Let's not use the HW in a way it's not supposed to be
used.

Notice that now ggtt->stolen_usable_size won't reflect the ending
address of the stolen usable range anymore, so we have to fix the
places that rely on this. To simplify, we'll just use U64_MAX.

v2: don't even put the first page on the mm (Chris)
v3: drm_mm_init() takes size instead of end as argument (Ville)
v4: add a comment explaining the reserved ranges (Chris)
    use 0 for start and U64_MAX for end when possible (Chris)

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94605
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: http://patchwork.freedesktop.org/patch/msgid/1481808235-27607-1-git-send-email-paulo.r.zanoni@intel.com
2016-12-20 10:45:33 -02:00
..
gvt drm/i915: Mark the shadow gvt context as closed 2016-12-18 16:18:54 +00: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: Use the precomputed value for whether to enable command parsing 2016-11-24 13:52:34 +00:00
i915_debugfs.c drm/i915/debugfs: use rb_entry() 2016-12-20 10:59:42 +01:00
i915_drv.c drm/i915: Use DRM_DEV_ERROR in i915_driver_load 2016-12-08 12:31:33 +00:00
i915_drv.h drm/i915: Expand is_lp backwards to gen8_lp and gen7_lp. 2016-12-19 11:08:00 -08:00
i915_gem.c drm/i915: Add a test that we terminate the trimmed sgtable as expected 2016-12-20 12:31:52 +00:00
i915_gem.h drm/i915: introduce GEM_WARN_ON 2016-12-16 21:16:36 +00:00
i915_gem_batch_pool.c drm/i915: Move GEM activity tracking into a common struct reservation_object 2016-10-28 20:53:50 +01:00
i915_gem_batch_pool.h
i915_gem_context.c drm/i915: Mark the shadow gvt context as closed 2016-12-18 16:18:54 +00:00
i915_gem_dmabuf.c drm/i915: Make GEM object alloc/free and stolen created take dev_priv 2016-12-01 18:00:15 +00:00
i915_gem_evict.c drm/i915: Retire before attempting to evict from the active lists 2016-12-12 12:25:32 +00:00
i915_gem_execbuffer.c drm/i915: Add a reminder that i915_vma_move_to_active() requires struct_mutex 2016-12-18 16:18:48 +00:00
i915_gem_fence_reg.c drm/i915: simplify check for I915G/I945G in bit 6 swizzling detection 2016-12-14 15:18:52 +02:00
i915_gem_fence_reg.h drm/i915: Split out i915_vma.c 2016-11-11 14:34:54 +02:00
i915_gem_gtt.c drm/i915: move vma sanity checking into i915_vma_bind 2016-12-16 21:17:22 +00:00
i915_gem_gtt.h drm/i915: fully apply WaSkipStolenMemoryFirstPage 2016-12-20 10:45:33 -02:00
i915_gem_internal.c drm/i915: rename BROADWATER and CRESTLINE to I965G and I965GM, respectively 2016-12-07 15:18:33 +02:00
i915_gem_object.h drm/i915: Move frontbuffer CS write tracking from ggtt vma to object 2016-11-18 11:15:59 +00:00
i915_gem_render_state.c drm/i915: Introduce HAS_64BIT_RELOC 2016-11-03 12:45:57 +02:00
i915_gem_render_state.h drm/i915: Reuse the active golden render state batch 2016-10-28 20:53:44 +01:00
i915_gem_request.c drm/i915: Swap if(enable_execlists) in i915_gem_request_alloc for a vfunc 2016-12-18 16:18:56 +00:00
i915_gem_request.h drm/i915: Unify active context tracking between legacy/execlists/guc 2016-12-18 16:18:50 +00:00
i915_gem_shrinker.c drm/i915: Unify global_list into global_link 2016-11-02 15:17:13 +02:00
i915_gem_stolen.c drm/i915: fully apply WaSkipStolenMemoryFirstPage 2016-12-20 10:45:33 -02:00
i915_gem_tiling.c drm/i915: Convert vm->dev backpointer to vm->i915 2016-11-29 11:38:00 +00:00
i915_gem_timeline.c drm/i915: Create distinct lockclasses for execution vs user timelines 2016-11-14 21:00:21 +00:00
i915_gem_timeline.h drm/i915: Rename i915_gem_timeline.next_seqno to .seqno 2016-11-25 07:01:11 +00:00
i915_gem_userptr.c drm/i915: Make GEM object alloc/free and stolen created take dev_priv 2016-12-01 18:00:15 +00:00
i915_gpu_error.c drm/i915: replace platform flags with a platform enum 2016-12-07 11:58:26 +02:00
i915_guc_reg.h drm/i915/guc: Drop guc2host/host2guc from names 2016-11-25 21:28:57 +00:00
i915_guc_submission.c drm/i915: Unify active context tracking between legacy/execlists/guc 2016-12-18 16:18:50 +00:00
i915_ioc32.c
i915_irq.c drm/i915/glk: Reuse broxton code for geminilake 2016-12-02 16:38:56 +02:00
i915_memcpy.c
i915_mm.c
i915_oa_hsw.c drm/i915: Add more Haswell OA metric sets 2016-11-22 14:40:00 +01:00
i915_oa_hsw.h drm/i915: advertise available metrics via sysfs 2016-11-22 14:38:51 +01:00
i915_params.c drm/i915: Use the precomputed value for whether to enable command parsing 2016-11-24 13:52:34 +00:00
i915_params.h drm/i915: Use the precomputed value for whether to enable command parsing 2016-11-24 13:52:34 +00:00
i915_pci.c drm/i915: Expand is_lp backwards to gen8_lp and gen7_lp. 2016-12-19 11:08:00 -08:00
i915_perf.c drm/i915: Simplify releasing context reference 2016-12-18 16:18:53 +00:00
i915_pvinfo.h
i915_reg.h drm/i915/glk: Update Port PLL enable sequence for Geminilkae 2016-12-02 16:41:47 +02:00
i915_suspend.c drm/i915: Make i915_save/restore_state and intel_i2c_reset take dev_priv 2016-12-01 18:01:23 +00:00
i915_sw_fence.c drm/i915: Integrate i915_sw_fence with debugobjects 2016-11-25 13:49:26 +00:00
i915_sw_fence.h drm/i915: Integrate i915_sw_fence with debugobjects 2016-11-25 13:49:26 +00:00
i915_sysfs.c drm/i915: Fix setting of boost freq tunable 2016-12-14 15:48:28 +02:00
i915_trace.h drm/i915: Fix i915_gem_evict_for_vma (soft-pinning) 2016-12-05 20:49:17 +00:00
i915_trace_points.c
i915_vgpu.c
i915_vgpu.h
i915_vma.c drm/i915: convert to using range_overflows 2016-12-16 21:22:12 +00:00
i915_vma.h drm/i915: Optimise VMA lookup slightly 2016-12-15 13:31:26 +00:00
intel_acpi.c
intel_atomic.c
intel_atomic_plane.c Merge tag 'drm-misc-next-2016-11-29' of git://anongit.freedesktop.org/git/drm-misc into drm-next 2016-11-30 14:28:20 +10:00
intel_audio.c drm/i915/audio: extend audio sync rate support for DP MST 2016-12-02 16:20:48 +02:00
intel_bios.c drm/i915: Parse panel backlight controller from VBT 2016-12-12 17:22:08 +02:00
intel_bios.h drm/i915/dsi: Fix swapping of MIPI_SEQ_DEASSERT_RESET / MIPI_SEQ_ASSERT_RESET 2016-12-07 19:37:22 +02:00
intel_breadcrumbs.c drm/i915/breadcrumbs: s/container_of/rb_entry/ 2016-12-20 12:30:25 +00:00
intel_color.c drm/i915: Assorted INTEL_INFO(dev) cleanups 2016-11-17 13:56:35 +00:00
intel_crt.c drm/i915: Pass dev_priv to intel_setup_outputs() 2016-11-25 16:43:24 +02:00
intel_csr.c drm/i915: fix compilation warnings on maybe uninitialized pointers 2016-11-29 11:31:01 +01:00
intel_ddi.c drm/i915/glk: Reuse broxton code for geminilake 2016-12-02 16:38:56 +02:00
intel_device_info.c drm/i915: give G45 and GM45 their own platform enums 2016-12-07 15:19:51 +02:00
intel_display.c drm/i915: Unify active context tracking between legacy/execlists/guc 2016-12-18 16:18:50 +00:00
intel_dp.c drm/i915: Prevent PPS stealing from a normal DP port on VLV/CHV 2016-12-19 14:59:11 +02:00
intel_dp_aux_backlight.c
intel_dp_link_training.c
intel_dp_mst.c drm/i915: Validate mode against max. link data rate for DP MST 2016-12-05 16:23:18 +02:00
intel_dpio_phy.c drm/i915: Only poll DW3_A when init DDI PHY for ports B and C. 2016-12-02 12:16:25 -08:00
intel_dpll_mgr.c drm/i915/glk: Update Port PLL enable sequence for Geminilkae 2016-12-02 16:41:47 +02:00
intel_dpll_mgr.h
intel_drv.h drm/i915: Prevent PPS stealing from a normal DP port on VLV/CHV 2016-12-19 14:59:11 +02:00
intel_dsi.c drm/i915: relax uncritical udelay_range() settings 2016-12-16 11:21:30 +02:00
intel_dsi.h
intel_dsi_dcs_backlight.c
intel_dsi_panel_vbt.c drm/i915/bxt: add bxt dsi gpio element support 2016-12-13 14:49:15 +02:00
intel_dsi_pll.c drm/i915: relax uncritical udelay_range() 2016-12-16 11:22:01 +02:00
intel_dvo.c drm/i915: Pass dev_priv to intel_setup_outputs() 2016-11-25 16:43:24 +02:00
intel_engine_cs.c drm/i915: Unify active context tracking between legacy/execlists/guc 2016-12-18 16:18:50 +00:00
intel_fbc.c drm/i915: fully apply WaSkipStolenMemoryFirstPage 2016-12-20 10:45:33 -02:00
intel_fbdev.c Merge remote-tracking branch 'airlied/drm-next' into drm-intel-next-queued 2016-12-05 09:52:17 +01:00
intel_fifo_underrun.c drm/i915: Always use intel_get_crtc_for_pipe() 2016-11-01 16:40:38 +02:00
intel_frontbuffer.c
intel_frontbuffer.h drm/i915: Move frontbuffer CS write tracking from ggtt vma to object 2016-11-18 11:15:59 +00:00
intel_guc_fwif.h drm/i915/guc: Drop comment on fwif autogeneration 2016-12-07 07:10:21 +00:00
intel_guc_loader.c drm/i915: Fix kerneldoc for intel_guc_fini 2016-12-02 09:55:46 +00:00
intel_gvt.c Documentation/gpu: Add section for Intel GVT-g host support 2016-10-20 17:18:39 +08:00
intel_gvt.h drm/i915/gvt: clean up intel_gvt.h as interface for i915 core 2016-10-20 17:18:30 +08:00
intel_hangcheck.c drm/i915: Disable hangcheck when wedged 2016-11-22 17:42:17 +00:00
intel_hdmi.c drm/i915/glk: Reuse broxton code for geminilake 2016-12-02 16:38:56 +02:00
intel_hotplug.c drm/i915: More assorted dev_priv cleanups 2016-11-11 14:58:26 +00:00
intel_i2c.c drm/i915: add some more "i" in platform names for consistency 2016-12-07 15:19:31 +02:00
intel_lrc.c drm/i915: Swap if(enable_execlists) in i915_gem_request_alloc for a vfunc 2016-12-18 16:18:56 +00:00
intel_lrc.h drm/i915: Swap if(enable_execlists) in i915_gem_request_alloc for a vfunc 2016-12-18 16:18:56 +00:00
intel_lspcon.c drm/i915/lspcon: Remove unused force change mode parameter 2016-11-23 13:32:01 +02:00
intel_lvds.c drm/i915: Intel panel detection cleanup 2016-12-13 17:25:26 +02:00
intel_mocs.c drm/i915/glk: Reuse broxton code for geminilake 2016-12-02 16:38:56 +02:00
intel_mocs.h drm/i915: Make various init functions take dev_priv 2016-12-01 18:01:15 +00:00
intel_modes.c
intel_opregion.c drm/i915/opregion: fill in the CADL from connector list, not DIDL 2016-11-17 12:45:59 +02:00
intel_overlay.c drm/i915: add some more "i" in platform names for consistency 2016-12-07 15:19:31 +02:00
intel_panel.c drm/i915: clean up Hz to PWM for i965 2016-12-13 17:28:08 +02:00
intel_pipe_crc.c drm/i915/debugfs: Move out pipe CRC code 2016-12-13 09:41:24 +01:00
intel_pm.c drm/i915: Unify active context tracking between legacy/execlists/guc 2016-12-18 16:18:50 +00:00
intel_psr.c drm/i915: disable PSR by default on HSW/BDW 2016-12-14 18:15:24 -02:00
intel_renderstate.h
intel_renderstate_gen6.c
intel_renderstate_gen7.c
intel_renderstate_gen8.c
intel_renderstate_gen9.c
intel_ringbuffer.c drm/i915: Swap if(enable_execlists) in i915_gem_request_alloc for a vfunc 2016-12-18 16:18:56 +00:00
intel_ringbuffer.h drm/i915: Swap if(enable_execlists) in i915_gem_request_alloc for a vfunc 2016-12-18 16:18:56 +00:00
intel_runtime_pm.c drm/i915/dsi: Do not clear DPOUNIT_CLOCK_GATE_DISABLE from vlv_init_display_clock_gating 2016-12-05 20:45:58 +02:00
intel_sdvo.c drm/i915: distinguish G33 and Pineview from each other 2016-12-07 23:28:33 +02:00
intel_sdvo_regs.h
intel_sideband.c
intel_sprite.c Merge remote-tracking branch 'airlied/drm-next' into drm-intel-next-queued 2016-12-05 09:52:17 +01:00
intel_tv.c drm/i915: Pass dev_priv to intel_setup_outputs() 2016-11-25 16:43:24 +02:00
intel_uc.c drm/i915/guc: Init send_mutex in intel_uc_init_early() 2016-11-25 21:42:36 +00:00
intel_uc.h drm/i915: Make various init functions take dev_priv 2016-12-01 18:01:15 +00:00
intel_uncore.c drm/i915: Catch non-existent registers in find_fw_domain 2016-12-08 09:37:23 +02:00
intel_vbt_defs.h drm/i915: Assume non-DP++ port if dvo_port is HDMI and there's no AUX ch specified in the VBT 2016-11-16 10:06:14 +02:00
Kconfig drm/i915: rename preliminary_hw_support to alpha_support 2016-11-14 15:33:27 +02:00
Kconfig.debug drm/i915: Enable swfence debugobject support for i915.ko 2016-12-05 20:49:17 +00:00
Makefile drm/i915/debugfs: Move out pipe CRC code 2016-12-13 09:41:24 +01:00