linux-mips
[Top] [All Lists]

[PATCH] override of arch/mips/mm/cache.c: __uncached_access

To: linux-mips@linux-mips.org
Subject: [PATCH] override of arch/mips/mm/cache.c: __uncached_access
From: tiansm@lemote.com
Date: Thu, 7 Jun 2007 14:04:17 +0800
Cc: Songmao Tian <tiansm@lemote.com>
In-reply-to: <20070606182814.GD30017@linux-mips.org>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <20070606182814.GD30017@linux-mips.org>
Sender: linux-mips-bounce@linux-mips.org
From: Songmao Tian <tiansm@lemote.com>

Signed-off-by: Songmao Tian <tiansm@lemote.com>
---
 arch/mips/lemote/lm2e/Makefile |    2 +-
 arch/mips/lemote/lm2e/mem.c    |   25 +++++++++++++++++++++++++
 2 files changed, 26 insertions(+), 1 deletions(-)
 create mode 100644 arch/mips/lemote/lm2e/mem.c

diff --git a/arch/mips/lemote/lm2e/Makefile b/arch/mips/lemote/lm2e/Makefile
index 0ba6f12..fb1b48c 100644
--- a/arch/mips/lemote/lm2e/Makefile
+++ b/arch/mips/lemote/lm2e/Makefile
@@ -2,6 +2,6 @@
 # Makefile for Lemote Fulong mini-PC board.
 #
 
-obj-y += setup.o prom.o reset.o irq.o pci.o bonito-irq.o dbg_io.o
+obj-y += setup.o prom.o reset.o irq.o pci.o bonito-irq.o dbg_io.o mem.o
 EXTRA_AFLAGS := $(CFLAGS)
 
diff --git a/arch/mips/lemote/lm2e/mem.c b/arch/mips/lemote/lm2e/mem.c
new file mode 100644
index 0000000..6068a17
--- /dev/null
+++ b/arch/mips/lemote/lm2e/mem.c
@@ -0,0 +1,25 @@
+/*
+ * This program is free software; you can redistribute  it and/or modify it
+ * under  the terms of  the GNU General  Public License as published by the
+ * Free Software Foundation;  either version 2 of the  License, or (at your
+ * option) any later version.
+ */
+
+#include <linux/fs.h>
+#include <linux/fcntl.h>
+#include <linux/mm.h>
+
+/* override of arch/mips/mm/cache.c: __uncached_access */
+int __uncached_access(struct file *file, unsigned long addr)
+{
+       if (file->f_flags & O_SYNC)
+               return 1;
+
+       /* 
+        * on lemote loongson 2e system, peripheral register 
+        * reside between 0x1000 0000 and 0x2000 0000
+        */
+       return addr >= __pa(high_memory) ||
+               ((addr >=0x10000000) && (addr < 0x20000000));
+}
+
-- 
1.5.2.1


<Prev in Thread] Current Thread [Next in Thread>