aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeert Uytterhoeven2007-02-12 00:55:26 -0800
committerLinus Torvalds2007-02-12 09:48:44 -0800
commit36dff96b3b83c5d79a45b221adf137b571b03d65 (patch)
tree149e42bd19a8f2f98e6aba6f933247e6333bad48
parent0465f790e06d6dbc07d9b569b74ee8154dfca280 (diff)
[PATCH] ps3: cleanup ps3fb before clearing HPTE
PS3: Cleanup the frame buffer device before clearing the HPTE mapping Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com> Cc: James Simmons <jsimmons@infradead.org> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Paul Mackerras <paulus@samba.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--arch/powerpc/platforms/ps3/htab.c6
-rw-r--r--include/asm-powerpc/ps3fb.h2
2 files changed, 7 insertions, 1 deletions
diff --git a/arch/powerpc/platforms/ps3/htab.c b/arch/powerpc/platforms/ps3/htab.c
index a4b5a1bc60f4..e12e59fea13a 100644
--- a/arch/powerpc/platforms/ps3/htab.c
+++ b/arch/powerpc/platforms/ps3/htab.c
@@ -2,7 +2,7 @@
* PS3 pagetable management routines.
*
* Copyright (C) 2006 Sony Computer Entertainment Inc.
- * Copyright 2006 Sony Corp.
+ * Copyright 2006, 2007 Sony Corporation
*
* 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
@@ -24,6 +24,7 @@
#include <asm/lmb.h>
#include <asm/udbg.h>
#include <asm/lv1call.h>
+#include <asm/ps3fb.h>
#include "platform.h"
@@ -233,6 +234,9 @@ static void ps3_hpte_invalidate(unsigned long slot, unsigned long va,
static void ps3_hpte_clear(void)
{
+ /* Make sure to clean up the frame buffer device first */
+ ps3fb_cleanup();
+
lv1_unmap_htab(htab_addr);
}
diff --git a/include/asm-powerpc/ps3fb.h b/include/asm-powerpc/ps3fb.h
index 8933adf535b8..ad81cf431964 100644
--- a/include/asm-powerpc/ps3fb.h
+++ b/include/asm-powerpc/ps3fb.h
@@ -45,8 +45,10 @@ struct ps3fb_ioctl_res {
#ifdef CONFIG_FB_PS3
extern void ps3fb_flip_ctl(int on);
+extern void ps3fb_cleanup(void);
#else
static inline void ps3fb_flip_ctl(int on) {}
+static inline void ps3fb_cleanup(void) {}
#endif
#endif /* __KERNEL__ */