svn commit: r307589 - in stable/11/sys: dev/fb sys
Oleksandr Tymoshenko
gonzo at FreeBSD.org
Wed Oct 19 01:35:23 UTC 2016
Author: gonzo
Date: Wed Oct 19 01:35:21 2016
New Revision: 307589
URL: https://svnweb.freebsd.org/changeset/base/307589
Log:
MFC r306555:
Provide way for framebuffer driver to request mmap(2) mapping type
On ARM if memattr is not overriden mmap(2) maps framebuffer
memory as WBWA which means part of changes to content in userland
end up in cache and appear on screen gradually as cache lines are
evicted. This change adds configurable memattr that hardware fb
implementation can set to get the memory mapping type it
requires:
- Add new flag FB_FLAG_MEMATTR that indicates that framebuffer
driver overrides default memattr
- Add new field fb_memattr to struct fb_info to specify requested
memattr
Reviewed by: ray
Differential Revision: https://reviews.freebsd.org/D8064
Modified:
stable/11/sys/dev/fb/fbd.c
stable/11/sys/sys/fbio.h
Directory Properties:
stable/11/ (props changed)
Modified: stable/11/sys/dev/fb/fbd.c
==============================================================================
--- stable/11/sys/dev/fb/fbd.c Wed Oct 19 00:14:22 2016 (r307588)
+++ stable/11/sys/dev/fb/fbd.c Wed Oct 19 01:35:21 2016 (r307589)
@@ -178,6 +178,8 @@ fb_mmap(struct cdev *dev, vm_ooffset_t o
*paddr = vtophys((uint8_t *)info->fb_vbase + offset);
else
*paddr = info->fb_pbase + offset;
+ if (info->fb_flags & FB_FLAG_MEMATTR)
+ *memattr = info->fb_memattr;
return (0);
}
return (EINVAL);
Modified: stable/11/sys/sys/fbio.h
==============================================================================
--- stable/11/sys/sys/fbio.h Wed Oct 19 00:14:22 2016 (r307588)
+++ stable/11/sys/sys/fbio.h Wed Oct 19 01:35:21 2016 (r307589)
@@ -142,6 +142,8 @@ struct fb_info {
uint32_t fb_flags;
#define FB_FLAG_NOMMAP 1 /* mmap unsupported. */
#define FB_FLAG_NOWRITE 2 /* disable writes for the time being */
+#define FB_FLAG_MEMATTR 4 /* override memattr for mmap */
+ vm_memattr_t fb_memattr;
int fb_stride;
int fb_bpp; /* bits per pixel */
uint32_t fb_cmap[16];
More information about the svn-src-stable-11
mailing list