[v2,4/8] drm/fb-helper: Support smem_len in deferred I/O
Sui Jingfeng
15330273260 at 189.cn
Wed Mar 22 07:39:49 UTC 2023
Yet, better to clarify which one should be used, not two.
Tested-by: Sui Jingfeng <suijingfeng at loongson.cn>
On 2023/3/20 23:07, Thomas Zimmermann wrote:
> The size of the framebuffer can either be stored in screen_info or
> smem_len. Take both into account in the deferred I/O code.
>
> Signed-off-by: Thomas Zimmermann <tzimmermann at suse.de>
> Reviewed-by: Javier Martinez Canillas <javierm at redhat.com>
> ---
> drivers/gpu/drm/drm_fb_helper.c | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
> index 7e96ed9efdb5..bb0b25209b3e 100644
> --- a/drivers/gpu/drm/drm_fb_helper.c
> +++ b/drivers/gpu/drm/drm_fb_helper.c
> @@ -672,7 +672,7 @@ static void drm_fb_helper_memory_range_to_clip(struct fb_info *info, off_t off,
> void drm_fb_helper_deferred_io(struct fb_info *info, struct list_head *pagereflist)
> {
> struct drm_fb_helper *helper = info->par;
> - unsigned long start, end, min_off, max_off;
> + unsigned long start, end, min_off, max_off, total_size;
> struct fb_deferred_io_pageref *pageref;
> struct drm_rect damage_area;
>
> @@ -690,7 +690,11 @@ void drm_fb_helper_deferred_io(struct fb_info *info, struct list_head *pagerefli
> * of the screen and account for non-existing scanlines. Hence,
> * keep the covered memory area within the screen buffer.
> */
> - max_off = min(max_off, info->screen_size);
> + if (info->screen_size)
> + total_size = info->screen_size;
> + else
> + total_size = info->fix.smem_len;
> + max_off = min(max_off, total_size);
>
> if (min_off < max_off) {
> drm_fb_helper_memory_range_to_clip(info, min_off, max_off - min_off, &damage_area);
More information about the dri-devel
mailing list