diff options
Diffstat (limited to 'arch/arm/mm/ioremap.c')
| -rw-r--r-- | arch/arm/mm/ioremap.c | 13 | 
1 files changed, 10 insertions, 3 deletions
diff --git a/arch/arm/mm/ioremap.c b/arch/arm/mm/ioremap.c index f123d6eb074..d1e5ad7ab3b 100644 --- a/arch/arm/mm/ioremap.c +++ b/arch/arm/mm/ioremap.c @@ -392,9 +392,9 @@ __arm_ioremap_exec(phys_addr_t phys_addr, size_t size, bool cached)  	unsigned int mtype;  	if (cached) -		mtype = MT_MEMORY; +		mtype = MT_MEMORY_RWX;  	else -		mtype = MT_MEMORY_NONCACHED; +		mtype = MT_MEMORY_RWX_NONCACHED;  	return __arm_ioremap_caller(phys_addr, size, mtype,  			__builtin_return_address(0)); @@ -438,6 +438,13 @@ void __arm_iounmap(volatile void __iomem *io_addr)  EXPORT_SYMBOL(__arm_iounmap);  #ifdef CONFIG_PCI +static int pci_ioremap_mem_type = MT_DEVICE; + +void pci_ioremap_set_mem_type(int mem_type) +{ +	pci_ioremap_mem_type = mem_type; +} +  int pci_ioremap_io(unsigned int offset, phys_addr_t phys_addr)  {  	BUG_ON(offset + SZ_64K > IO_SPACE_LIMIT); @@ -445,7 +452,7 @@ int pci_ioremap_io(unsigned int offset, phys_addr_t phys_addr)  	return ioremap_page_range(PCI_IO_VIRT_BASE + offset,  				  PCI_IO_VIRT_BASE + offset + SZ_64K,  				  phys_addr, -				  __pgprot(get_mem_type(MT_DEVICE)->prot_pte)); +				  __pgprot(get_mem_type(pci_ioremap_mem_type)->prot_pte));  }  EXPORT_SYMBOL_GPL(pci_ioremap_io);  #endif  | 
