summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>2007-02-12 00:55:25 -0800
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-02-12 09:48:44 -0800
commit0465f790e06d6dbc07d9b569b74ee8154dfca280 (patch)
treef494cad79e5515251b0c69f9c2a7a104c0c18bf7
parent310d8c11126d21e417206c874c6382c44ece1baa (diff)
downloadlinux-0465f790e06d6dbc07d9b569b74ee8154dfca280.tar.bz2
[PATCH] ps3: disable display flipping during mode changes
If ps3fb is available, we have to disable display flipping while changing the audio or video mode. 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--drivers/ps3/ps3av_cmd.c5
-rw-r--r--include/asm-powerpc/ps3fb.h10
2 files changed, 14 insertions, 1 deletions
diff --git a/drivers/ps3/ps3av_cmd.c b/drivers/ps3/ps3av_cmd.c
index b3d1bc40a1b8..21c97c80aa2e 100644
--- a/drivers/ps3/ps3av_cmd.c
+++ b/drivers/ps3/ps3av_cmd.c
@@ -22,6 +22,7 @@
#include <linux/kernel.h>
#include <linux/delay.h>
#include <asm/ps3av.h>
+#include <asm/ps3fb.h>
#include <asm/ps3.h>
#include "vuart.h"
@@ -851,8 +852,9 @@ int ps3av_cmd_avb_param(struct ps3av_pkt_avb_param *avb, u32 send_len)
{
int res;
- /* avb packet */
+ ps3fb_flip_ctl(0); /* flip off */
+ /* avb packet */
res = ps3av_do_pkt(PS3AV_CID_AVB_PARAM, send_len, sizeof(*avb),
&avb->send_hdr);
if (res < 0)
@@ -864,6 +866,7 @@ int ps3av_cmd_avb_param(struct ps3av_pkt_avb_param *avb, u32 send_len)
res);
out:
+ ps3fb_flip_ctl(1); /* flip on */
return res;
}
diff --git a/include/asm-powerpc/ps3fb.h b/include/asm-powerpc/ps3fb.h
index 3f121fe4010d..8933adf535b8 100644
--- a/include/asm-powerpc/ps3fb.h
+++ b/include/asm-powerpc/ps3fb.h
@@ -41,4 +41,14 @@ struct ps3fb_ioctl_res {
__u32 num_frames; /* num of frame buffers */
};
+#ifdef __KERNEL__
+
+#ifdef CONFIG_FB_PS3
+extern void ps3fb_flip_ctl(int on);
+#else
+static inline void ps3fb_flip_ctl(int on) {}
+#endif
+
+#endif /* __KERNEL__ */
+
#endif /* _ASM_POWERPC_PS3FB_H_ */