]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
ENGR00243315-1 IPUv3 CSI:Correct CCIR code1/2 for PAL and NTSC
authorLiu Ying <Ying.Liu@freescale.com>
Fri, 8 Mar 2013 08:01:48 +0000 (16:01 +0800)
committerLothar Waßmann <LW@KARO-electronics.de>
Wed, 20 Aug 2014 08:06:56 +0000 (10:06 +0200)
We reversed CCIR code1/2 setting before, which may brings
captured frame quality issue(jaggy edge can be seen). This
patch revert that change.

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
(cherry picked from commit a4c2228f5428af02b9be87114d096340f9b58083)

drivers/mxc/ipu3/ipu_capture.c

index a14b0eae7fb61ff072e1b039a40401198e175038..d2563a4f292898ee745e67dfec9b028f69e63c49 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2008-2013 Freescale Semiconductor, Inc. All Rights Reserved.
+ * Copyright 2008-2014 Freescale Semiconductor, Inc. All Rights Reserved.
  */
 
 /*
@@ -146,29 +146,30 @@ ipu_csi_init_interface(struct ipu_soc *ipu, uint16_t width, uint16_t height,
                if (width == 720 && height == 625) {
                        /* PAL case */
                        /*
-                        * Field0BlankEnd = 0x7, Field0BlankStart = 0x3,
-                        * Field0ActiveEnd = 0x5, Field0ActiveStart = 0x1
+                        * Field0BlankEnd = 0x6, Field0BlankStart = 0x2,
+                        * Field0ActiveEnd = 0x4, Field0ActiveStart = 0
                         */
-                       ipu_csi_write(ipu, csi, 0xD07DF, CSI_CCIR_CODE_1);
+                       ipu_csi_write(ipu, csi, 0x40596, CSI_CCIR_CODE_1);
                        /*
-                        * Field1BlankEnd = 0x6, Field1BlankStart = 0x2,
-                        * Field1ActiveEnd = 0x4, Field1ActiveStart = 0
+                        * Field1BlankEnd = 0x7, Field1BlankStart = 0x3,
+                        * Field1ActiveEnd = 0x5, Field1ActiveStart = 0x1
                         */
-                       ipu_csi_write(ipu, csi, 0x40596, CSI_CCIR_CODE_2);
+                       ipu_csi_write(ipu, csi, 0xD07DF, CSI_CCIR_CODE_2);
+
                        ipu_csi_write(ipu, csi, 0xFF0000, CSI_CCIR_CODE_3);
 
                } else if (width == 720 && height == 525) {
                        /* NTSC case */
-                       /*
-                        * Field1BlankEnd = 0x6, Field1BlankStart = 0x2,
-                        * Field1ActiveEnd = 0x4, Field1ActiveStart = 0
-                        */
-                       ipu_csi_write(ipu, csi, 0x40596, CSI_CCIR_CODE_1);
                        /*
                         * Field0BlankEnd = 0x7, Field0BlankStart = 0x3,
                         * Field0ActiveEnd = 0x5, Field0ActiveStart = 0x1
                         */
-                       ipu_csi_write(ipu, csi, 0xD07DF, CSI_CCIR_CODE_2);
+                       ipu_csi_write(ipu, csi, 0xD07DF, CSI_CCIR_CODE_1);
+                       /*
+                        * Field1BlankEnd = 0x6, Field1BlankStart = 0x2,
+                        * Field1ActiveEnd = 0x4, Field1ActiveStart = 0
+                        */
+                       ipu_csi_write(ipu, csi, 0x40596, CSI_CCIR_CODE_2);
                        ipu_csi_write(ipu, csi, 0xFF0000, CSI_CCIR_CODE_3);
                } else {
                        dev_err(ipu->dev, "Unsupported CCIR656 interlaced "