diff --git a/arch/powerpc/platforms/ps3/htab.c b/arch/powerpc/platforms/ps3/htab.c index a4b5a1bc60f4aa6c5a2c441dff52629a3e2da3bb..e12e59fea13a5a8a94517f580c3c1d5e5041d37d 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 #include #include +#include #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 8933adf535b8340706f2a6cbfa5a74964d74b191..ad81cf4319645ae0a20f5602f8bc970e0a2f6ddd 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__ */