From e7d1916d4926b2ca71a89e17b5ba6c324ec64425 Mon Sep 17 00:00:00 2001 From: Hu Kejun Date: Wed, 1 Apr 2020 18:08:43 +0800 Subject: [PATCH] media: rockchip: isp: add code for lsc err Signed-off-by: Hu Kejun Change-Id: Idf6649aac80786995b8f5855c464941705698457 --- drivers/media/platform/rockchip/isp/regs_v2x.h | 2 ++ drivers/media/platform/rockchip/isp/rkisp.c | 11 +++++++++++ 2 files changed, 13 insertions(+) diff --git a/drivers/media/platform/rockchip/isp/regs_v2x.h b/drivers/media/platform/rockchip/isp/regs_v2x.h index cf7e755373fd..815994162b2a 100644 --- a/drivers/media/platform/rockchip/isp/regs_v2x.h +++ b/drivers/media/platform/rockchip/isp/regs_v2x.h @@ -1679,6 +1679,7 @@ #define ISP2X_AFM_LUM_OF BIT(13) #define ISP2X_SIAF_FIN BIT(14) #define ISP2X_SIHST_RDY BIT(15) +#define ISP2X_LSC_LUT_ERR BIT(16) #define ISP2X_FLASH_CAP BIT(17) #define ISP2X_YUVAE_END BIT(18) #define ISP2X_VSM_END BIT(19) @@ -1699,6 +1700,7 @@ #define ISP2X_3A_RAWAF_LUM BIT(9) #define ISP2X_3A_RAWAF BIT(10) #define ISP2X_3A_RAWAWB BIT(11) +#define ISP2X_3A_DDR_DONE BIT(12) /* mi interrupt */ #define MI_MP_FRAME BIT(0) diff --git a/drivers/media/platform/rockchip/isp/rkisp.c b/drivers/media/platform/rockchip/isp/rkisp.c index e4b1f6a0fd56..ece287e79f42 100644 --- a/drivers/media/platform/rockchip/isp/rkisp.c +++ b/drivers/media/platform/rockchip/isp/rkisp.c @@ -621,6 +621,8 @@ static int rkisp_config_isp(struct rkisp_device *dev) /* interrupt mask */ irq_mask |= CIF_ISP_FRAME | CIF_ISP_V_START | CIF_ISP_PIC_SIZE_ERROR | CIF_ISP_FRAME_IN; + if (dev->isp_ver == ISP_V20) + irq_mask |= ISP2X_LSC_LUT_ERR; writel(irq_mask, base + CIF_ISP_IMSC); if (dev->isp_ver == ISP_V20 && IS_HDR_RDBK(dev->hdr.op_mode)) { @@ -2080,6 +2082,15 @@ vs_skip: } } + if (isp_mis & ISP2X_LSC_LUT_ERR) { + writel(ISP2X_LSC_LUT_ERR, base + CIF_ISP_ICR); + + isp_err = readl(base + CIF_ISP_ERR); + v4l2_err(&dev->v4l2_dev, + "ISP2X_LSC_LUT_ERR. ISP_ERR 0x%x\n", isp_err); + writel(isp_err, base + CIF_ISP_ERR_CLR); + } + /* sampled input frame is complete */ if (isp_mis & CIF_ISP_FRAME_IN) { writel(CIF_ISP_FRAME_IN, base + CIF_ISP_ICR);