aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/fb
diff options
context:
space:
mode:
authorOleksandr Tymoshenko <gonzo@FreeBSD.org>2016-10-01 17:43:02 +0000
committerOleksandr Tymoshenko <gonzo@FreeBSD.org>2016-10-01 17:43:02 +0000
commit2685a39acfd4fa2059529d17b80c17ee1248633e (patch)
treed6b12b90369cdb0281e6d20b7b06a143ee6cb446 /sys/dev/fb
parent734bfbc5b0e22749397a8fcfbec8076d460c54c4 (diff)
downloadsrc-2685a39acfd4fa2059529d17b80c17ee1248633e.tar.gz
src-2685a39acfd4fa2059529d17b80c17ee1248633e.zip
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
Notes
Notes: svn path=/head/; revision=306555
Diffstat (limited to 'sys/dev/fb')
-rw-r--r--sys/dev/fb/fbd.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/dev/fb/fbd.c b/sys/dev/fb/fbd.c
index b7e45040f65e..6110e4afd25e 100644
--- a/sys/dev/fb/fbd.c
+++ b/sys/dev/fb/fbd.c
@@ -178,6 +178,8 @@ fb_mmap(struct cdev *dev, vm_ooffset_t offset, vm_paddr_t *paddr, int nprot,
*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);