Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 24e9d0b9 authored by Ralf Baechle's avatar Ralf Baechle
Browse files

[MIPS] Hook for platforms to define cachability of /dev/mem regions

parent 8bb809df
Loading
Loading
Loading
Loading
+10 −0
Original line number Original line Diff line number Diff line
@@ -6,6 +6,8 @@
 * Copyright (C) 1994 - 2003, 07 by Ralf Baechle (ralf@linux-mips.org)
 * Copyright (C) 1994 - 2003, 07 by Ralf Baechle (ralf@linux-mips.org)
 * Copyright (C) 2007 MIPS Technologies, Inc.
 * Copyright (C) 2007 MIPS Technologies, Inc.
 */
 */
#include <linux/fs.h>
#include <linux/fcntl.h>
#include <linux/init.h>
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/module.h>
@@ -164,3 +166,11 @@ void __init cpu_cache_init(void)


	panic(cache_panic);
	panic(cache_panic);
}
}

int __weak __uncached_access(struct file *file, unsigned long addr)
{
	if (file->f_flags & O_SYNC)
		return 1;

	return addr >= __pa(high_memory);
}
+7 −0
Original line number Original line Diff line number Diff line
@@ -75,6 +75,13 @@ static inline int uncached_access(struct file *file, unsigned long addr)
	 * On ia64, we ignore O_SYNC because we cannot tolerate memory attribute aliases.
	 * On ia64, we ignore O_SYNC because we cannot tolerate memory attribute aliases.
	 */
	 */
	return !(efi_mem_attributes(addr) & EFI_MEMORY_WB);
	return !(efi_mem_attributes(addr) & EFI_MEMORY_WB);
#elif defined(CONFIG_MIPS)
	{
		extern int __uncached_access(struct file *file,
					     unsigned long addr);

		return __uncached_access(file, addr);
	}
#else
#else
	/*
	/*
	 * Accessing memory above the top the kernel knows about or through a file pointer
	 * Accessing memory above the top the kernel knows about or through a file pointer