Implement ioremap_wt() and use that in the MEMREMAP_WT case for i386

and amd64.

Suggested by:	cem @
Discussed with:	kmacy @
MFC after:	1 week
Sponsored by:	Mellanox Technologies
This commit is contained in:
hselasky 2016-05-10 17:51:17 +00:00
parent 3d433e3de9
commit 5a2349cebd

View File

@ -183,6 +183,8 @@ void *_ioremap_attr(vm_paddr_t phys_addr, unsigned long size, int attr);
_ioremap_attr((addr), (size), VM_MEMATTR_WRITE_COMBINING)
#define ioremap_wb(addr, size) \
_ioremap_attr((addr), (size), VM_MEMATTR_WRITE_BACK)
#define ioremap_wt(addr, size) \
_ioremap_attr((addr), (size), VM_MEMATTR_WRITE_THROUGH)
#define ioremap(addr, size) \
_ioremap_attr((addr), (size), VM_MEMATTR_UNCACHEABLE)
void iounmap(void *addr);
@ -227,7 +229,7 @@ memremap(resource_size_t offset, size_t size, unsigned long flags)
(addr = ioremap_wb(offset, size)) != NULL)
goto done;
if ((flags & MEMREMAP_WT) &&
(addr = ioremap_nocache(offset, size)) != NULL)
(addr = ioremap_wt(offset, size)) != NULL)
goto done;
if ((flags & MEMREMAP_WC) &&
(addr = ioremap_wc(offset, size)) != NULL)