diff options
author | Cai YiWei <cyw@rock-chips.com> | 2019-01-11 18:54:47 +0800 |
---|---|---|
committer | Tao Huang <huangtao@rock-chips.com> | 2019-01-24 14:48:36 +0800 |
commit | 89c354e3b71b78e7f71ec162fd3c50907c5a4186 (patch) | |
tree | 00db4f1bbc74a9f1c5bea4e42ecbee196f7922b1 /drivers/media/platform/rockchip | |
parent | 7b1fb3919b69301a90d5abf62ae415758cbb2674 (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.h | 4 | ||||
-rw-r--r-- | drivers/media/platform/rockchip/isp1/rkisp1.c | 8 |
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; } |