[PATCH] ps3: disable display flipping during mode changes
authorGeert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
Mon, 12 Feb 2007 08:55:25 +0000 (00:55 -0800)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Mon, 12 Feb 2007 17:48:44 +0000 (09:48 -0800)
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>
drivers/ps3/ps3av_cmd.c
include/asm-powerpc/ps3fb.h

index b3d1bc40a1b85eb065df63d6fdee84442b5964b1..21c97c80aa2edc4bdc565c361fb2bdfca6a38ea3 100644 (file)
@@ -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;
 }
 
index 3f121fe4010d02144b30a9eefe6840e4f0cbbc78..8933adf535b8340706f2a6cbfa5a74964d74b191 100644 (file)
@@ -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_ */