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 Renpgprot_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