2016-11-30 20:39 GMT+01:00 Laurent Pinchart laurent.pinchart@ideasonboard.com:
On Wednesday 30 Nov 2016 20:34:17 Benjamin Gaignard wrote:
If HAVE_ARCH_FB_UNMAPPED_AREA is set and get_fb_unmapped_area function not defined in platform architecture let use a default function.
Signed-off-by: Benjamin Gaignard benjamin.gaignard@linaro.org
drivers/video/fbdev/core/fbmem.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+)
diff --git a/drivers/video/fbdev/core/fbmem.c b/drivers/video/fbdev/core/fbmem.c index 76c1ad9..54488ee 100644 --- a/drivers/video/fbdev/core/fbmem.c +++ b/drivers/video/fbdev/core/fbmem.c @@ -1492,6 +1492,21 @@ static long fb_compat_ioctl(struct file *file, unsigned int cmd, return 0; }
+#if defined(HAVE_ARCH_FB_UNMAPPED_AREA) && !defined(get_fb_unmapped_area)
I think I've asked this twice already, how is that possible ?
As you said before only sparc and blackfin architectures have define HAVE_ARCH_FB_UNMAPPED_AREA and get_fb_unmapped_area(). For stm32f4 (ARMv7m) I plan to only add HAVE_ARCH_FB_UNMAPPED_AREA and use this default function
By testing those two flags I avoid to define twince get_fb_unmapped_area() if the architecture already provide it.
+unsigned long get_fb_unmapped_area(struct file *filp,
unsigned long addr, unsigned long len,
unsigned long pgoff, unsigned long flags)
+{
struct fb_info * const info = filp->private_data;
unsigned long fb_size = PAGE_ALIGN(info->fix.smem_len);
if (pgoff > fb_size || len > fb_size - pgoff)
return -EINVAL;
return (unsigned long)info->screen_base + pgoff;
+} +#endif
static const struct file_operations fb_fops = { .owner = THIS_MODULE, .read = fb_read,
-- Regards,
Laurent Pinchart