From 5409c91052b2f1514e85f0d1083edd79ed3bc1bb Mon Sep 17 00:00:00 2001 From: Cai YiWei Date: Thu, 17 Feb 2022 19:51:58 +0800 Subject: [PATCH] media: rockchip: isp: isp32 bls2 remove to awb Change-Id: Ieea6a4fd4ee796c5a02a46dbf9e7650d2a345170 Signed-off-by: Cai YiWei --- .../platform/rockchip/isp/isp_params_v32.c | 69 ++++++++++--------- include/uapi/linux/rkisp32-config.h | 5 +- 2 files changed, 39 insertions(+), 35 deletions(-) diff --git a/drivers/media/platform/rockchip/isp/isp_params_v32.c b/drivers/media/platform/rockchip/isp/isp_params_v32.c index fe8cd47f82f6..69147f926339 100644 --- a/drivers/media/platform/rockchip/isp/isp_params_v32.c +++ b/drivers/media/platform/rockchip/isp/isp_params_v32.c @@ -310,7 +310,7 @@ isp_bls_config(struct rkisp_isp_params_vdev *params_vdev, u32 new_control, value; new_control = isp3_param_read(params_vdev, ISP3X_BLS_CTRL); - new_control &= ISP_BLS_ENA; + new_control &= (ISP_BLS_ENA | ISP32_BLS_BLS2_EN); pval = &arg->bls1_val; if (arg->bls1_en) { @@ -345,39 +345,6 @@ isp_bls_config(struct rkisp_isp_params_vdev *params_vdev, } } - pval = &arg->bls2_val; - if (arg->bls2_en) { - new_control |= ISP32_BLS_BLS2_EN; - - switch (params_vdev->raw_type) { - case RAW_BGGR: - isp3_param_write(params_vdev, pval->r, ISP32_BLS2_D_FIXED); - isp3_param_write(params_vdev, pval->gr, ISP32_BLS2_C_FIXED); - isp3_param_write(params_vdev, pval->gb, ISP32_BLS2_B_FIXED); - isp3_param_write(params_vdev, pval->b, ISP32_BLS2_A_FIXED); - break; - case RAW_GBRG: - isp3_param_write(params_vdev, pval->r, ISP32_BLS2_C_FIXED); - isp3_param_write(params_vdev, pval->gr, ISP32_BLS2_D_FIXED); - isp3_param_write(params_vdev, pval->gb, ISP32_BLS2_A_FIXED); - isp3_param_write(params_vdev, pval->b, ISP32_BLS2_B_FIXED); - break; - case RAW_GRBG: - isp3_param_write(params_vdev, pval->r, ISP32_BLS2_B_FIXED); - isp3_param_write(params_vdev, pval->gr, ISP32_BLS2_A_FIXED); - isp3_param_write(params_vdev, pval->gb, ISP32_BLS2_D_FIXED); - isp3_param_write(params_vdev, pval->b, ISP32_BLS2_C_FIXED); - break; - case RAW_RGGB: - default: - isp3_param_write(params_vdev, pval->r, ISP32_BLS2_A_FIXED); - isp3_param_write(params_vdev, pval->gr, ISP32_BLS2_B_FIXED); - isp3_param_write(params_vdev, pval->gb, ISP32_BLS2_C_FIXED); - isp3_param_write(params_vdev, pval->b, ISP32_BLS2_D_FIXED); - break; - } - } - /* fixed subtraction values */ pval = &arg->fixed_val; if (!arg->enable_auto) { @@ -1426,8 +1393,42 @@ isp_rawawb_config(struct rkisp_isp_params_vdev *params_vdev, { struct isp32_isp_params_cfg *params_rec = params_vdev->isp32_params; struct isp32_rawawb_meas_cfg *arg_rec = ¶ms_rec->meas.rawawb; + const struct isp2x_bls_fixed_val *pval = &arg->bls2_val; u32 value; + value = isp3_param_read(params_vdev, ISP3X_BLS_CTRL); + value &= ~ISP32_BLS_BLS2_EN; + if (arg->bls2_en) { + switch (params_vdev->raw_type) { + case RAW_BGGR: + isp3_param_write(params_vdev, pval->r, ISP32_BLS2_D_FIXED); + isp3_param_write(params_vdev, pval->gr, ISP32_BLS2_C_FIXED); + isp3_param_write(params_vdev, pval->gb, ISP32_BLS2_B_FIXED); + isp3_param_write(params_vdev, pval->b, ISP32_BLS2_A_FIXED); + break; + case RAW_GBRG: + isp3_param_write(params_vdev, pval->r, ISP32_BLS2_C_FIXED); + isp3_param_write(params_vdev, pval->gr, ISP32_BLS2_D_FIXED); + isp3_param_write(params_vdev, pval->gb, ISP32_BLS2_A_FIXED); + isp3_param_write(params_vdev, pval->b, ISP32_BLS2_B_FIXED); + break; + case RAW_GRBG: + isp3_param_write(params_vdev, pval->r, ISP32_BLS2_B_FIXED); + isp3_param_write(params_vdev, pval->gr, ISP32_BLS2_A_FIXED); + isp3_param_write(params_vdev, pval->gb, ISP32_BLS2_D_FIXED); + isp3_param_write(params_vdev, pval->b, ISP32_BLS2_C_FIXED); + break; + case RAW_RGGB: + default: + isp3_param_write(params_vdev, pval->r, ISP32_BLS2_A_FIXED); + isp3_param_write(params_vdev, pval->gr, ISP32_BLS2_B_FIXED); + isp3_param_write(params_vdev, pval->gb, ISP32_BLS2_C_FIXED); + isp3_param_write(params_vdev, pval->b, ISP32_BLS2_D_FIXED); + } + value |= ISP32_BLS_BLS2_EN; + } + isp3_param_write(params_vdev, value, ISP3X_BLS_CTRL); + value = arg->in_overexposure_threshold << 16 | !!arg->blk_with_luma_wei_en << 8 | (arg->blk_measure_illu_idx & 0x7) << 4 | diff --git a/include/uapi/linux/rkisp32-config.h b/include/uapi/linux/rkisp32-config.h index 9ad883b9b6f2..5062cc05101e 100644 --- a/include/uapi/linux/rkisp32-config.h +++ b/include/uapi/linux/rkisp32-config.h @@ -189,7 +189,6 @@ struct isp32_bls_cfg { u8 enable_auto; u8 en_windows; u8 bls1_en; - u8 bls2_en; u8 bls_samples; @@ -731,6 +730,8 @@ struct isp32_hdrmge_cfg { } __attribute__ ((packed)); struct isp32_rawawb_meas_cfg { + u8 bls2_en; + u8 rawawb_sel; u8 bnr2awb_sel; u8 drc2awb_sel; @@ -1130,6 +1131,8 @@ struct isp32_rawawb_meas_cfg { u32 islope12_3; u32 islope23_3; u32 islope30_3; + + struct isp2x_bls_fixed_val bls2_val; } __attribute__ ((packed)); struct isp32_rawaf_meas_cfg {