mirror of
https://github.com/opnsense/src.git
synced 2026-05-28 04:12:45 -04:00
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
This commit is contained in:
parent
734bfbc5b0
commit
2685a39acf
2 changed files with 4 additions and 0 deletions
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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];
|
||||
|
|
|
|||
Loading…
Reference in a new issue