Am 27.01.22 um 11:26 schrieb Thomas Zimmermann: > Mark screen buffers in system memory with FB_VIRTFB. Otherwise, the FBINFO_ is the name. Will be fixed before merging > buffers are mmap'ed as I/O memory (i.e., VM_IO). For shadow buffers, > also set the FB_READS_FAST hint. > > Signed-off-by: Thomas Zimmermann > --- > drivers/gpu/drm/drm_fb_helper.c | 9 ++++++--- > 1 file changed, 6 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c > index ed43b987d306..f15127a32f7a 100644 > --- a/drivers/gpu/drm/drm_fb_helper.c > +++ b/drivers/gpu/drm/drm_fb_helper.c > @@ -2346,6 +2346,7 @@ static int drm_fb_helper_generic_probe(struct drm_fb_helper *fb_helper, > fbi->fbops = &drm_fbdev_fb_ops; > fbi->screen_size = sizes->surface_height * fb->pitches[0]; > fbi->fix.smem_len = fbi->screen_size; > + fbi->flags = FBINFO_DEFAULT; > > drm_fb_helper_fill_info(fbi, fb_helper, sizes); > > @@ -2353,19 +2354,21 @@ static int drm_fb_helper_generic_probe(struct drm_fb_helper *fb_helper, > fbi->screen_buffer = vzalloc(fbi->screen_size); > if (!fbi->screen_buffer) > return -ENOMEM; > + fbi->flags |= FBINFO_VIRTFB | FBINFO_READS_FAST; > > fbi->fbdefio = &drm_fbdev_defio; > - > fb_deferred_io_init(fbi); > } else { > /* buffer is mapped for HW framebuffer */ > ret = drm_client_buffer_vmap(fb_helper->buffer, &map); > if (ret) > return ret; > - if (map.is_iomem) > + if (map.is_iomem) { > fbi->screen_base = map.vaddr_iomem; > - else > + } else { > fbi->screen_buffer = map.vaddr; > + fbi->flags |= FBINFO_VIRTFB; > + } > > /* > * Shamelessly leak the physical address to user-space. As -- Thomas Zimmermann Graphics Driver Developer SUSE Software Solutions Germany GmbH Maxfeldstr. 5, 90409 Nürnberg, Germany (HRB 36809, AG Nürnberg) Geschäftsführer: Ivo Totev