]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915/overlay: Allocate physical registers from stolen
authorChris Wilson <chris@chris-wilson.co.uk>
Thu, 6 Sep 2018 19:01:43 +0000 (20:01 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Tue, 11 Sep 2018 14:51:26 +0000 (15:51 +0100)
commitb38b25a37a49cab7068dd14bc9eb3e4d1aac057f
treee738b741c690c92da8993689bb5192179a01d980
parenta255633eedb2b4bc48f1f716ca6acda8bbe2406c
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 b351a4c6feaa05818285a78f5c8fe1626287ed90
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: b351a4c6feaa ("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
drivers/gpu/drm/i915/intel_overlay.c