summaryrefslogtreecommitdiff
path: root/drivers/media/platform/rockchip
diff options
context:
space:
mode:
authorCai YiWei <cyw@rock-chips.com>2019-01-11 18:54:47 +0800
committerTao Huang <huangtao@rock-chips.com>2019-01-24 14:48:36 +0800
commit89c354e3b71b78e7f71ec162fd3c50907c5a4186 (patch)
tree00db4f1bbc74a9f1c5bea4e42ecbee196f7922b1 /drivers/media/platform/rockchip
parent7b1fb3919b69301a90d5abf62ae415758cbb2674 (diff)
media: rockchip: isp1: fix dvp data width config
Change-Id: If90968fbae78fadaf99d68766606143f1f4f2208 Signed-off-by: Cai YiWei <cyw@rock-chips.com>
Diffstat (limited to 'drivers/media/platform/rockchip')
-rw-r--r--drivers/media/platform/rockchip/isp1/regs.h4
-rw-r--r--drivers/media/platform/rockchip/isp1/rkisp1.c8
2 files changed, 8 insertions, 4 deletions
diff --git a/drivers/media/platform/rockchip/isp1/regs.h b/drivers/media/platform/rockchip/isp1/regs.h
index 3b4b30a4e8af..1aebd88f5004 100644
--- a/drivers/media/platform/rockchip/isp1/regs.h
+++ b/drivers/media/platform/rockchip/isp1/regs.h
@@ -39,7 +39,9 @@
/* GRF */
#define GRF_VI_CON0 0x430
#define ISP_CIF_DATA_WIDTH_MASK 0x60006000
-#define ISP_CIF_DATA_WIDTH_12B (2 << 13 | 2 << 29)
+#define ISP_CIF_DATA_WIDTH_8B (0 << 13 | 3 << 29)
+#define ISP_CIF_DATA_WIDTH_10B (BIT(13) | 3 << 29)
+#define ISP_CIF_DATA_WIDTH_12B (2 << 13 | 3 << 29)
/* ISP_CTRL */
#define CIF_ISP_CTRL_ISP_ENABLE BIT(0)
diff --git a/drivers/media/platform/rockchip/isp1/rkisp1.c b/drivers/media/platform/rockchip/isp1/rkisp1.c
index 52b116a2002d..77ee3184252c 100644
--- a/drivers/media/platform/rockchip/isp1/rkisp1.c
+++ b/drivers/media/platform/rockchip/isp1/rkisp1.c
@@ -306,17 +306,20 @@ static int rkisp1_config_dvp(struct rkisp1_device *dev)
{
struct ispsd_in_fmt *in_fmt = &dev->isp_sdev.in_fmt;
void __iomem *base = dev->base_addr;
- u32 val, input_sel;
+ u32 val, input_sel, data_width;
switch (in_fmt->bus_width) {
case 8:
input_sel = CIF_ISP_ACQ_PROP_IN_SEL_8B_ZERO;
+ data_width = ISP_CIF_DATA_WIDTH_8B;
break;
case 10:
input_sel = CIF_ISP_ACQ_PROP_IN_SEL_10B_ZERO;
+ data_width = ISP_CIF_DATA_WIDTH_10B;
break;
case 12:
input_sel = CIF_ISP_ACQ_PROP_IN_SEL_12B;
+ data_width = ISP_CIF_DATA_WIDTH_12B;
break;
default:
v4l2_err(&dev->v4l2_dev, "Invalid bus width\n");
@@ -329,11 +332,10 @@ static int rkisp1_config_dvp(struct rkisp1_device *dev)
if (!IS_ERR(dev->grf) &&
(dev->isp_ver == ISP_V12 ||
dev->isp_ver == ISP_V13))
- /* config isp cif 12bit datawidth */
regmap_update_bits(dev->grf,
GRF_VI_CON0,
ISP_CIF_DATA_WIDTH_MASK,
- ISP_CIF_DATA_WIDTH_12B);
+ data_width);
return 0;
}