summaryrefslogtreecommitdiffstats
path: root/drivers/staging/fbtft
diff options
context:
space:
mode:
authorThomas Zimmermann <tzimmermann@suse.de>2022-04-29 12:08:30 +0200
committerThomas Zimmermann <tzimmermann@suse.de>2022-05-03 16:04:21 +0200
commit5905585103276b7c14bb9a7de4b575216cb6dac4 (patch)
treeb440972605773f8144366c0d96394ce32136f1d2 /drivers/staging/fbtft
parent594e9c04b5864b4b8b151ef4ba9521c59e0f5c54 (diff)
downloadlinux-stable-5905585103276b7c14bb9a7de4b575216cb6dac4.tar.gz
linux-stable-5905585103276b7c14bb9a7de4b575216cb6dac4.tar.bz2
linux-stable-5905585103276b7c14bb9a7de4b575216cb6dac4.zip
fbdev: Put mmap for deferred I/O into drivers
The fbdev mmap function fb_mmap() unconditionally overrides the driver's implementation if deferred I/O has been activated. This makes it hard to implement mmap with anything but a vmalloc()'ed software buffer. That is specifically a problem for DRM, where video memory is maintained by a memory manager. Leave the mmap handling to drivers and expect them to call the helper for deferred I/O by thmeselves. v4: * unlock mm_lock in fb_mmap() error path (Dan) v3: * fix warning if fb_mmap is missing (kernel test robot) v2: * print a helpful error message if the defio setup is incorrect (Javier) Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Reviewed-by: Javier Martinez Canillas <javierm@redhat.com> Link: https://patchwork.freedesktop.org/patch/msgid/20220429100834.18898-2-tzimmermann@suse.de
Diffstat (limited to 'drivers/staging/fbtft')
-rw-r--r--drivers/staging/fbtft/fbtft-core.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/staging/fbtft/fbtft-core.c b/drivers/staging/fbtft/fbtft-core.c
index 9c4d797e7ae4..d4e14f7c9d57 100644
--- a/drivers/staging/fbtft/fbtft-core.c
+++ b/drivers/staging/fbtft/fbtft-core.c
@@ -652,6 +652,7 @@ struct fb_info *fbtft_framebuffer_alloc(struct fbtft_display *display,
fbops->fb_imageblit = fbtft_fb_imageblit;
fbops->fb_setcolreg = fbtft_fb_setcolreg;
fbops->fb_blank = fbtft_fb_blank;
+ fbops->fb_mmap = fb_deferred_io_mmap;
fbdefio->delay = HZ / fps;
fbdefio->sort_pagelist = true;