Switch to generic media bus signal polarity flags and allow
configuring the FIELD signal polarity.

Signed-off-by: Sylwester Nawrocki <s.nawro...@samsung.com>
Signed-off-by: Kyungmin Park <s.nawro...@samsung.com>
---
 drivers/media/video/s5p-fimc/fimc-reg.c  |   14 +++++++++-----
 drivers/media/video/s5p-fimc/regs-fimc.h |    1 +
 include/media/s5p_fimc.h                 |    7 +------
 3 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/drivers/media/video/s5p-fimc/fimc-reg.c 
b/drivers/media/video/s5p-fimc/fimc-reg.c
index 2a1ae51..678d7d3 100644
--- a/drivers/media/video/s5p-fimc/fimc-reg.c
+++ b/drivers/media/video/s5p-fimc/fimc-reg.c
@@ -533,20 +533,24 @@ int fimc_hw_set_camera_polarity(struct fimc_dev *fimc,
        u32 cfg = readl(fimc->regs + S5P_CIGCTRL);
 
        cfg &= ~(S5P_CIGCTRL_INVPOLPCLK | S5P_CIGCTRL_INVPOLVSYNC |
-                S5P_CIGCTRL_INVPOLHREF | S5P_CIGCTRL_INVPOLHSYNC);
+                S5P_CIGCTRL_INVPOLHREF | S5P_CIGCTRL_INVPOLHSYNC |
+                S5P_CIGCTRL_INVPOLFIELD);
 
-       if (cam->flags & FIMC_CLK_INV_PCLK)
+       if (cam->flags & V4L2_MBUS_PCLK_SAMPLE_FALLING)
                cfg |= S5P_CIGCTRL_INVPOLPCLK;
 
-       if (cam->flags & FIMC_CLK_INV_VSYNC)
+       if (cam->flags & V4L2_MBUS_VSYNC_ACTIVE_LOW)
                cfg |= S5P_CIGCTRL_INVPOLVSYNC;
 
-       if (cam->flags & FIMC_CLK_INV_HREF)
+       if (cam->flags & V4L2_MBUS_HSYNC_ACTIVE_LOW)
                cfg |= S5P_CIGCTRL_INVPOLHREF;
 
-       if (cam->flags & FIMC_CLK_INV_HSYNC)
+       if (cam->flags & V4L2_MBUS_HSYNC_ACTIVE_LOW)
                cfg |= S5P_CIGCTRL_INVPOLHSYNC;
 
+       if (cam->flags & V4L2_MBUS_FIELD_ACTIVE_LOW)
+               cfg |= S5P_CIGCTRL_INVPOLFIELD;
+
        writel(cfg, fimc->regs + S5P_CIGCTRL);
 
        return 0;
diff --git a/drivers/media/video/s5p-fimc/regs-fimc.h 
b/drivers/media/video/s5p-fimc/regs-fimc.h
index 94d2302..c8e3b94 100644
--- a/drivers/media/video/s5p-fimc/regs-fimc.h
+++ b/drivers/media/video/s5p-fimc/regs-fimc.h
@@ -61,6 +61,7 @@
 #define S5P_CIGCTRL_CSC_ITU601_709     (1 << 5)
 #define S5P_CIGCTRL_INVPOLHSYNC                (1 << 4)
 #define S5P_CIGCTRL_SELCAM_MIPI                (1 << 3)
+#define S5P_CIGCTRL_INVPOLFIELD                (1 << 1)
 #define S5P_CIGCTRL_INTERLACE          (1 << 0)
 
 /* Window offset 2 */
diff --git a/include/media/s5p_fimc.h b/include/media/s5p_fimc.h
index 2b58904..688fb3f 100644
--- a/include/media/s5p_fimc.h
+++ b/include/media/s5p_fimc.h
@@ -19,11 +19,6 @@ enum cam_bus_type {
        FIMC_LCD_WB, /* FIFO link from LCD mixer */
 };
 
-#define FIMC_CLK_INV_PCLK      (1 << 0)
-#define FIMC_CLK_INV_VSYNC     (1 << 1)
-#define FIMC_CLK_INV_HREF      (1 << 2)
-#define FIMC_CLK_INV_HSYNC     (1 << 3)
-
 struct i2c_board_info;
 
 /**
@@ -37,7 +32,7 @@ struct i2c_board_info;
  * @i2c_bus_num: i2c control bus id the sensor is attached to
  * @mux_id: FIMC camera interface multiplexer index (separate for MIPI and ITU)
  * @clk_id: index of the SoC peripheral clock for sensors
- * @flags: flags defining bus signals polarity inversion (High by default)
+ * @flags: the parallel bus flags defining signals polarity (V4L2_MBUS_*)
  */
 struct s5p_fimc_isp_info {
        struct i2c_board_info *board_info;
-- 
1.7.6.3

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to