diff mbox series

[v2] drm/i915/display: relax 2big checking around initial fb

Message ID 20210526124901.245689-1-matthew.auld@intel.com (mailing list archive)
State New, archived
Headers show
Series [v2] drm/i915/display: relax 2big checking around initial fb | expand

Commit Message

Matthew Auld May 26, 2021, 12:49 p.m. UTC
From: Chris Wilson <chris@chris-wilson.co.uk>

The kernel prefers enabling fbc over the initial fb, since this leads to
actual runtime power savings, so if the initial fb is deemed too big
using some heuristic, then we simply skip allocating stolen for it.
However if the kernel is not configured with fbcon then it should be
possible to relax this, since unlike with fbcon the display server
shouldn't preserve it when later replacing it, and so we should be able
to re-use the stolen memory for fbc and friends. This patch is reported
to fix some flicker seen during boot splash on some devices.

v2: s/FRAMEBUFFER_CONSOLE/CONFIG_FRAMEBUFFER_CONSOLE

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Lee Shawn C <shawn.c.lee@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Daniel Vetter <daniel.vetter@intel.com>
Reviewed-by: Imre Deak <imre.deak@intel.com>
---
 drivers/gpu/drm/i915/display/intel_display.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Lee Shawn C May 27, 2021, 3:24 a.m. UTC | #1
On Wed, 26 May 2021 at 12:49 p.m, Matthew Auld <matthew.auld@intel.com> wrote:

>From: Chris Wilson <chris@chris-wilson.co.uk>
>
>The kernel prefers enabling fbc over the initial fb, since this leads to actual runtime power savings, so if the initial fb is deemed too big using some heuristic, then we simply skip allocating stolen for it.
>However if the kernel is not configured with fbcon then it should be possible to relax this, since unlike with fbcon the display server shouldn't preserve it when later replacing it, and so we should be able to re-use the stolen memory for fbc and friends. This patch is reported to fix some flicker seen during boot splash on some devices.
>
>v2: s/FRAMEBUFFER_CONSOLE/CONFIG_FRAMEBUFFER_CONSOLE
>
>Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
>Signed-off-by: Matthew Auld <matthew.auld@intel.com>
>Cc: Lee Shawn C <shawn.c.lee@intel.com>
>Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
>Cc: Daniel Vetter <daniel.vetter@intel.com>
>Reviewed-by: Imre Deak <imre.deak@intel.com>

Verify on my DUT and no flicker issue seen during boot splash. Thanks!

>---
> drivers/gpu/drm/i915/display/intel_display.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
>diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
>index 0bb2e582c87f..db97a92dc84e 100644
>--- a/drivers/gpu/drm/i915/display/intel_display.c
>+++ b/drivers/gpu/drm/i915/display/intel_display.c
>@@ -1690,7 +1690,8 @@ initial_plane_vma(struct drm_i915_private *i915,
> 	 * important and we should probably use that space with FBC or other
> 	 * features.
> 	 */
>-	if (size * 2 > i915->stolen_usable_size)
>+	if (IS_ENABLED(CONFIG_FRAMEBUFFER_CONSOLE) &&
>+	    size * 2 > i915->stolen_usable_size)
> 		return NULL;
> 
> 	obj = i915_gem_object_create_stolen_for_preallocated(i915, base, size);
>--
>2.26.3
>
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 0bb2e582c87f..db97a92dc84e 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -1690,7 +1690,8 @@  initial_plane_vma(struct drm_i915_private *i915,
 	 * important and we should probably use that space with FBC or other
 	 * features.
 	 */
-	if (size * 2 > i915->stolen_usable_size)
+	if (IS_ENABLED(CONFIG_FRAMEBUFFER_CONSOLE) &&
+	    size * 2 > i915->stolen_usable_size)
 		return NULL;
 
 	obj = i915_gem_object_create_stolen_for_preallocated(i915, base, size);