linux/drivers/gpu/drm/i915
Chris Wilson 17dc7af70e drm/i915/overlay: Allocate physical registers from stolen
Given that we are now reasonably confident in our ability to detect and
reserve the stolen memory (physical memory reserved for graphics by the
BIOS) for ourselves on most machines, we can put it to use. In this
case, we need a page to hold the overlay registers.

On an i915g running MythTv, H Buus noticed that

	commit 6a2c4232ec
	Author: Chris Wilson <chris@chris-wilson.co.uk>
	Date:   Tue Nov 4 04:51:40 2014 -0800
	drm/i915: Make the physical object coherent with GTT

introduced stuttering into his video playback. After discarding the
likely suspect of it being the physical cursor updates, we were left
with the use of the phys object for the overlay. And lo, if we
completely avoid using the phys object (allocated just once on module
load!) by switching to stolen memory, the stuttering goes away.

For lack of a better explanation, claim victory and kill two birds with
one stone.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107600
Fixes: 6a2c4232ec ("drm/i915: Make the physical object coherent with GTT")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180906190144.1272-1-chris@chris-wilson.co.uk
(cherry picked from commit c8124d3992)
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
2018-09-11 08:24:03 -07:00
..
gvt drm/i915/gvt: Fix the incorrect length of child_device_config issue 2018-09-06 11:17:38 +08:00
selftests drm/i915/selftests: Hold rpm for unparking 2018-08-15 13:41:08 -07:00
dvo.h
dvo_ch7xxx.c drm/i915/dvo: switch to kernel unsigned int types 2018-06-18 14:45:58 +03:00
dvo_ch7017.c drm/i915/dvo: switch to kernel unsigned int types 2018-06-18 14:45:58 +03:00
dvo_ivch.c drm/i915/dvo: switch to kernel unsigned int types 2018-06-18 14:45:58 +03:00
dvo_ns2501.c drm/i915/dvo: switch to kernel unsigned int types 2018-06-18 14:45:58 +03:00
dvo_sil164.c drm/i915/dvo: switch to kernel unsigned int types 2018-06-18 14:45:58 +03:00
dvo_tfp410.c drm/i915/dvo: switch to kernel unsigned int types 2018-06-18 14:45:58 +03:00
i915_cmd_parser.c
i915_debugfs.c drm/i915: Interactive RPS mode 2018-08-06 11:18:01 -07:00
i915_drv.c On GEM side: 2018-07-20 12:29:24 +10:00
i915_drv.h drm/i915: Interactive RPS mode 2018-08-06 11:18:01 -07:00
i915_gem.c drm/i915: Always retire residual requests before suspend 2018-07-18 14:49:55 +01:00
i915_gem.h drm/i915/execlists: Direct submission of new requests (avoid tasklet/ksoftirqd) 2018-06-28 22:55:10 +01:00
i915_gem_batch_pool.c
i915_gem_batch_pool.h
i915_gem_clflush.c
i915_gem_clflush.h
i915_gem_context.c drm/i915: Record logical context support in driver caps 2018-07-06 14:05:23 +01:00
i915_gem_context.h drm/i915: Forward declare struct intel_context 2018-05-25 08:21:19 +01:00
i915_gem_dmabuf.c dma-buf: remove kmap_atomic interface 2018-06-20 15:59:34 +02:00
i915_gem_evict.c drm/i915: Provide a timeout to i915_gem_wait_for_idle() 2018-07-09 13:55:41 +01:00
i915_gem_execbuffer.c drm/i915: Move i915_vma_move_to_active() to i915_vma.c 2018-07-06 18:22:41 +01:00
i915_gem_fence_reg.c
i915_gem_fence_reg.h
i915_gem_gtt.c On GEM side: 2018-07-20 12:29:24 +10:00
i915_gem_gtt.h drm/i915/gtt: Read-only pages for insert_entries on bdw+ 2018-07-13 16:12:03 +01:00
i915_gem_internal.c
i915_gem_object.c
i915_gem_object.h drm/i915/userptr: Enable read-only support on gen8+ 2018-07-13 16:18:15 +01:00
i915_gem_render_state.c drm/i915: Start returning an error from i915_vma_move_to_active() 2018-07-06 18:22:37 +01:00
i915_gem_render_state.h
i915_gem_shrinker.c drm/i915: Introduce i915_address_space.mutex 2018-07-11 13:56:16 +01:00
i915_gem_stolen.c drm/i915: use the ICL stolen memory 2018-07-10 16:29:56 -07:00
i915_gem_tiling.c
i915_gem_userptr.c mm, oom: distinguish blockable mode for mmu notifiers 2018-08-22 10:52:44 -07:00
i915_gemfs.c
i915_gemfs.h
i915_gpu_error.c include: Move ascii85 functions from i915 to linux/ascii85.h 2018-07-30 08:49:02 -04:00
i915_gpu_error.h drm/i915: Track vma activity per fence.context, not per engine 2018-07-06 18:22:43 +01:00
i915_ioc32.c
i915_irq.c drm/i915: Interactive RPS mode 2018-08-06 11:18:01 -07:00
i915_memcpy.c
i915_mm.c
i915_oa_bdw.c
i915_oa_bdw.h
i915_oa_bxt.c
i915_oa_bxt.h
i915_oa_cflgt2.c
i915_oa_cflgt2.h
i915_oa_cflgt3.c
i915_oa_cflgt3.h
i915_oa_chv.c
i915_oa_chv.h
i915_oa_cnl.c
i915_oa_cnl.h
i915_oa_glk.c
i915_oa_glk.h
i915_oa_hsw.c
i915_oa_hsw.h
i915_oa_icl.c
i915_oa_icl.h
i915_oa_kblgt2.c
i915_oa_kblgt2.h
i915_oa_kblgt3.c
i915_oa_kblgt3.h
i915_oa_sklgt2.c
i915_oa_sklgt2.h
i915_oa_sklgt3.c
i915_oa_sklgt3.h
i915_oa_sklgt4.c
i915_oa_sklgt4.h
i915_params.c drm/i915: Remove intel_panel_detect() 2018-07-19 18:39:31 +03:00
i915_params.h drm/i915: Remove intel_panel_detect() 2018-07-19 18:39:31 +03:00
i915_pci.c drm/i915: Remove pci private pointer after destroying the device private 2018-07-16 11:25:28 +01:00
i915_perf.c drm/i915: Provide a timeout to i915_gem_wait_for_idle() 2018-07-09 13:55:41 +01:00
i915_pmu.c drm pull for 4.19-rc1 2018-08-15 17:39:07 -07:00
i915_pmu.h drm/i915/pmu: Do not assume fixed hrtimer period 2018-06-05 16:45:01 +01:00
i915_pvinfo.h - Ice Lake's display enabling patches (Jose, Mahesh, Dhinakaran, Paulo, Manasi, Anusha, Arkadiusz) 2018-06-07 10:24:50 +08:00
i915_query.c drm/i915/query: nospec expects no more than an unsigned long 2018-05-29 13:53:07 +03:00
i915_query.h
i915_reg.h drm/i915/dsc: Fix PPS register definition macros for 2nd VDSC engine 2018-09-03 21:31:36 -07:00
i915_request.c drm/i915: Provide a timeout to i915_gem_wait_for_idle() 2018-07-09 13:55:41 +01:00
i915_request.h drm/i915: Track vma activity per fence.context, not per engine 2018-07-06 18:22:43 +01:00
i915_scheduler.h drm/i915: Pack params to engine->schedule() into a struct 2018-04-18 21:09:11 +01:00
i915_selftest.h drm/i915/selftests: Downgrade igt_timeout message 2018-07-16 11:23:45 +01:00
i915_suspend.c
i915_sw_fence.c
i915_sw_fence.h
i915_syncmap.c
i915_syncmap.h
i915_sysfs.c
i915_timeline.c drm/i915: Split i915_gem_timeline into individual timelines 2018-05-02 23:57:18 +01:00
i915_timeline.h drm/i915: Replace nested subclassing with explicit subclasses 2018-07-07 08:09:43 +01:00
i915_trace.h drm/i915/ringbuffer: Fix context restore upon reset 2018-06-11 14:03:47 +01:00
i915_trace_points.c
i915_utils.h include/linux/compiler*.h: make compiler-*.h mutually exclusive 2018-08-22 17:31:34 -07:00
i915_vgpu.c drm/i915/gtt: Rename i915_hw_ppgtt base member 2018-06-05 21:11:20 +01:00
i915_vgpu.h drm/i915: Add new vGPU cap info bit VGT_CAPS_HUGE_GTT 2018-06-05 16:57:01 +03:00
i915_vma.c drm/i915: Stop holding a ref to the ppgtt from each vma 2018-08-29 14:11:53 -07:00
i915_vma.h drm/i915: Track the last-active inside the i915_vma 2018-07-06 18:23:07 +01:00
icl_dsi.c drm/i915/icl: Power down unused DSI lanes 2018-07-06 12:14:16 +03:00
intel_acpi.c drm/i915/dsm: remove unnecessary dsm priv structure 2018-06-14 15:59:09 +03:00
intel_atomic.c Chris is doing many reworks that allow us to get full-ppgtt supported 2018-06-28 13:10:44 +10:00
intel_atomic_plane.c Chris is doing many reworks that allow us to get full-ppgtt supported 2018-06-28 13:10:44 +10:00
intel_audio.c drm/i915/audio: Hook up component bindings even if displays are disabled 2018-08-29 14:11:53 -07:00
intel_bios.c drm/i915/psr: fix copy-paste error with setting of tp2_wakeup_time_us 2018-06-20 12:00:31 -07:00
intel_bios.h
intel_breadcrumbs.c drm/i915: Move the irq_counter inside the spinlock 2018-06-28 20:56:35 +01:00
intel_cdclk.c drm/i915: Mark expected switch fall-throughs 2018-07-05 16:40:51 +03:00
intel_color.c
intel_crt.c drm/i915: Enforce max hdisplay/hblank_start limits on HSW/BDW FDI 2018-06-19 17:18:24 +03:00
intel_csr.c drm/i915: add support for specifying DMC firmware override by module param 2018-05-02 13:05:01 +03:00
intel_ddi.c drm/i915/dp_mst: Fix enabling pipe clock for all streams 2018-09-03 21:34:36 -07:00
intel_device_info.c drm/i915: Record logical context support in driver caps 2018-07-06 14:05:23 +01:00
intel_device_info.h drm/i915: Record logical context support in driver caps 2018-07-06 14:05:23 +01:00
intel_display.c drm/i915/bdw: Increase IPS disable timeout to 100ms 2018-09-10 10:18:42 -07:00
intel_display.h - New Drivers 2018-08-20 15:38:44 -07:00
intel_dp.c drm/i915: Re-apply "Perform link quality check, unconditionally during long pulse" 2018-09-03 21:31:28 -07:00
intel_dp_aux_backlight.c drm/i915/backlight: switch to kernel unsigned int types 2018-06-18 14:46:04 +03:00
intel_dp_link_training.c drm/i915/dp: Add support for HBR3 and TPS4 during link training 2018-06-14 14:58:22 -07:00
intel_dp_mst.c drm/i915/dp_mst: Fix enabling pipe clock for all streams 2018-09-03 21:34:36 -07:00
intel_dpio_phy.c drm/i915/gen9_lp: Increase DDI PHY0 power well enabling timeout 2018-04-10 13:12:22 +03:00
intel_dpll_mgr.c Higlights here goes to many PSR fixes and improvements; to the Ice lake work with 2018-07-19 05:46:30 +10:00
intel_dpll_mgr.h drm/i915/icl: Fix MG PLL setup when refclk is 38.4MHz 2018-06-21 19:01:40 +03:00
intel_drv.h - New Drivers 2018-08-20 15:38:44 -07:00
intel_dsi.h drm/i915/dsi: use vlv and bxt prefixes for the global DSI functions 2018-07-06 10:54:05 +03:00
intel_dsi_dcs_backlight.c
intel_dsi_vbt.c drm/i915/dsi: use vlv and bxt prefixes for the global DSI functions 2018-07-06 10:54:05 +03:00
intel_dvo.c drm/i915: Allow DBLSCAN user modes with eDP/LVDS/DSI 2018-06-19 15:47:49 +03:00
intel_engine_cs.c drm/i915: Do not short-circuit tasklets during reset 2018-07-13 22:32:20 +01:00
intel_fbc.c drm/i915: Remove delayed FBC activation. 2018-06-29 10:06:31 +02:00
intel_fbdev.c drm/i915: Use intel_fb_obj() everywhere 2018-05-22 09:44:02 +01:00
intel_fifo_underrun.c
intel_frontbuffer.c drm/i915/psr: Nuke PSR support for VLV and CHV 2018-05-24 16:05:19 +03:00
intel_frontbuffer.h
intel_gpu_commands.h
intel_guc.c drm/i915/guc: Disable rpm wakeref asserts in GuC irq handler 2018-07-14 19:21:20 +01:00
intel_guc.h drm/i915/guc: Use intel_guc_init_misc to hide GuC internals 2018-06-28 22:51:32 +01:00
intel_guc_ads.c drm/i915: Wrap engine->context_pin() and engine->context_unpin() 2018-04-30 16:01:13 +01:00
intel_guc_ads.h
intel_guc_ct.c drm/i915/guc: Replace %phn with %ph 2018-04-10 17:15:29 +01:00
intel_guc_ct.h
intel_guc_fw.c
intel_guc_fw.h
intel_guc_fwif.h drm/i915/guc: Move defines with size of GuC logs to intel_guc_log.h 2018-06-12 15:44:45 +01:00
intel_guc_log.c drm/i915/guc: Move defines with size of GuC logs to intel_guc_log.h 2018-06-12 15:44:45 +01:00
intel_guc_log.h drm/i915/guc: Add support for define guc_log_size in megabytes. 2018-06-12 15:44:47 +01:00
intel_guc_reg.h
intel_guc_submission.c drm/i915/guc: Keep guc submission permanently engaged 2018-07-19 10:13:26 +01:00
intel_guc_submission.h
intel_gvt.c drm/i915: Unwind HW init after GVT setup failure 2018-07-10 16:46:09 +01:00
intel_gvt.h
intel_hangcheck.c drm/i915: Declare the driver wedged if hangcheck makes no progress 2018-06-14 19:20:33 +01:00
intel_hdcp.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
intel_hdmi.c drm/i915: Free write_buf that we allocated with kzalloc. 2018-08-28 12:50:43 -07:00
intel_hotplug.c drm/i915: Pass hpd_pin to long_pulse_detect() 2018-07-13 18:22:22 +03:00
intel_huc.c drm/i915/uc: Fetch GuC/HuC firmwares from guc/huc specific init 2018-06-28 22:51:33 +01:00
intel_huc.h drm/i915/uc: Fetch GuC/HuC firmwares from guc/huc specific init 2018-06-28 22:51:33 +01:00
intel_huc_fw.c
intel_huc_fw.h
intel_i2c.c drm/i915/gmbus: Enable burst read 2018-07-12 17:31:28 +02:00
intel_lpe_audio.c drm pull for 4.19-rc1 2018-08-15 17:39:07 -07:00
intel_lrc.c drm/i915/execlists: Move the assertion we have the rpm wakeref down 2018-07-19 13:23:43 +01:00
intel_lrc.h drm/i915/guc: Keep guc submission permanently engaged 2018-07-19 10:13:26 +01:00
intel_lrc_reg.h
intel_lspcon.c drm/i915: Increase LSPCON timeout 2018-08-29 14:11:53 -07:00
intel_lvds.c On GEM side: 2018-07-20 12:29:24 +10:00
intel_mocs.c drm/i915/icl: Add configuring MOCS in new Icelake engines 2018-05-03 16:41:04 -07:00
intel_mocs.h
intel_modes.c drm: drop _mode_ from update_edit_property() 2018-07-13 18:40:27 +02:00
intel_opregion.c drm/i915/opregion: move acpi notifier to dev_priv 2018-06-14 13:48:10 +03:00
intel_opregion.h drm/i915/opregion: move acpi notifier to dev_priv 2018-06-14 13:48:10 +03:00
intel_overlay.c drm/i915/overlay: Allocate physical registers from stolen 2018-09-11 08:24:03 -07:00
intel_panel.c drm/i915: Remove intel_panel_detect() 2018-07-19 18:39:31 +03:00
intel_pipe_crc.c drm/i915: Remove support for legacy debugfs crc interface 2018-07-06 14:33:35 +02:00
intel_pm.c drm/i915: Interactive RPS mode 2018-08-06 11:18:01 -07:00
intel_psr.c drm/i915/psr: Remove few mod parameters option. 2018-07-12 23:33:38 -07: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: Unmask user interrupts writes into HWSP on snb/ivb/vlv/hsw 2018-08-15 13:41:01 -07:00
intel_ringbuffer.h drm/i915/selftests: Force a preemption hang 2018-07-16 17:17:27 +01:00
intel_runtime_pm.c drm/i915: Mark expected switch fall-throughs 2018-07-05 16:40:51 +03:00
intel_sdvo.c drm-misc-next for 4.19: 2018-07-20 10:46:49 +10:00
intel_sdvo_regs.h
intel_sideband.c
intel_sprite.c On GEM side: 2018-07-20 12:29:24 +10:00
intel_tv.c drm/i915/tv: fix strncpy truncation warning 2018-07-12 10:18:19 +01:00
intel_uc.c drm/i915/uc: Fetch GuC/HuC firmwares from guc/huc specific init 2018-06-28 22:51:33 +01:00
intel_uc.h
intel_uc_fw.c
intel_uc_fw.h drm/i915/firmware: Correct URL for firmware 2018-05-02 13:40:17 -07:00
intel_uncore.c drm/i915: Restore user forcewake domains across suspend 2018-08-15 13:41:05 -07:00
intel_uncore.h drm/i915: Restore user forcewake domains across suspend 2018-08-15 13:41:05 -07:00
intel_vbt_defs.h drm/i915/vbt: switch to kernel unsigned int types 2018-06-18 14:44:52 +03:00
intel_wopcm.c
intel_wopcm.h
intel_workarounds.c Revert "drm/i915/icl: WaEnableFloatBlendOptimization" 2018-08-06 11:18:04 -07:00
intel_workarounds.h drm/i915: Check whitelist registers across resets 2018-04-14 18:36:45 +01:00
Kconfig - New Drivers 2018-08-20 15:38:44 -07:00
Kconfig.debug Higlights here goes to many PSR fixes and improvements; to the Ice lake work with 2018-07-19 05:46:30 +10:00
Makefile drm/i915/icl: Program DSI Escape clock Divider 2018-07-06 12:13:34 +03:00
vlv_dsi.c drm/i915/dsi: update some of the platform based checks 2018-07-06 10:54:10 +03:00
vlv_dsi_pll.c drm/i915/dsi: use vlv and bxt prefixes for the global DSI functions 2018-07-06 10:54:05 +03:00