xref: /linux/arch/csky/mm/ioremap.c (revision c95baf12f5077419db01313ab61c2aac007d40cd)
1013de2d6SGuo Ren // SPDX-License-Identifier: GPL-2.0
2013de2d6SGuo Ren // Copyright (C) 2018 Hangzhou C-SKY Microsystems co.,ltd.
3013de2d6SGuo Ren 
4013de2d6SGuo Ren #include <linux/export.h>
5013de2d6SGuo Ren #include <linux/mm.h>
6013de2d6SGuo Ren #include <linux/io.h>
7013de2d6SGuo Ren 
phys_mem_access_prot(struct file * file,unsigned long pfn,unsigned long size,pgprot_t vma_prot)876d21d18SGuo Ren pgprot_t phys_mem_access_prot(struct file *file, unsigned long pfn,
976d21d18SGuo Ren 			      unsigned long size, pgprot_t vma_prot)
1076d21d18SGuo Ren {
1176d21d18SGuo Ren 	if (!pfn_valid(pfn)) {
1276d21d18SGuo Ren 		return pgprot_noncached(vma_prot);
1376d21d18SGuo Ren 	} else if (file->f_flags & O_SYNC) {
14*7f80fe20SGuo Ren 		return pgprot_writecombine(vma_prot);
1576d21d18SGuo Ren 	}
1676d21d18SGuo Ren 
1776d21d18SGuo Ren 	return vma_prot;
1876d21d18SGuo Ren }
1976d21d18SGuo Ren EXPORT_SYMBOL(phys_mem_access_prot);
20