On Thu, Feb 05, 2026 at 04:02:30PM +0200, Vinod Govindapillai wrote:
> From: Ville Syrjälä <[email protected]>
> 
> Looks like stolen->size is in bytes, not pages. Remove the
> bogus PAGE_SHIFT stuff.

It looks to me like ttm itself is the problem here. It appears
to be a mismash of pages and bytes, and missing documentation
on which unit applies where.

Even worse, it looks like different drivers use different conventions
on what units to use. Eg. ttm_resource_manager_init() sometimes gets
passed the size in pages, sometimes in bytes. xe even uses both
units in one driver: pages in xe_ttm_sys_mgr_init(), bytes in
__xe_ttm_vram_mgr_init().

Cc'ing some ttm folks...

> 
> Also for some rnadom reason xe rejects the FB if it takes up
> exactly half of stolen, whereas i915 allows it to be used
> in that case. Adjust xe to follow the i915 rule for consistency.
> 
> v2: rebase related updates
> 
> Signed-off-by: Ville Syrjälä <[email protected]>
> Reviewed-by: Uma Shankar <[email protected]>
> Signed-off-by: Vinod Govindapillai <[email protected]>
> ---
>  drivers/gpu/drm/xe/display/xe_initial_plane.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/xe/display/xe_initial_plane.c 
> b/drivers/gpu/drm/xe/display/xe_initial_plane.c
> index 4cfeafcc158d..38ecc201ac4e 100644
> --- a/drivers/gpu/drm/xe/display/xe_initial_plane.c
> +++ b/drivers/gpu/drm/xe/display/xe_initial_plane.c
> @@ -99,7 +99,7 @@ initial_plane_bo(struct xe_device *xe,
>                * features.
>                */
>               if (IS_ENABLED(CONFIG_FRAMEBUFFER_CONSOLE) &&
> -                 plane_config->size * 2 >> PAGE_SHIFT >= stolen->size)
> +                 plane_config->size * 2 > stolen->size)
>                       return NULL;
>       }
>  
> -- 
> 2.43.0

-- 
Ville Syrjälä
Intel

Reply via email to