media: rockchip: isp: use force big mode when auto big mode is incorrect

Signed-off-by: Hu Kejun <william.hu@rock-chips.com>
Change-Id: Ifbbe86b5571029e76be66aab7bdbf94af012d64e
This commit is contained in:
Hu Kejun
2021-02-03 21:42:21 +08:00
committed by Tao Huang
parent 04b89d073a
commit 51c730a4e4
2 changed files with 12 additions and 1 deletions

View File

@@ -19,7 +19,8 @@
(((a) & 0xFFFF) << 0 | ((b) & 0xFFFF) << 16)
#define ISP2X_REG_WR_MASK BIT(31) //disable write protect
#define ISP2X_NOBIG_OVERFLOW_SIZE (2560 * 1440)
#define ISP2X_NOBIG_OVERFLOW_SIZE (2688 * 1536)
#define ISP2X_AUTO_BIGMODE_WIDTH 2688
static inline void
rkisp_iowrite32(struct rkisp_isp_params_vdev *params_vdev,
@@ -3909,6 +3910,7 @@ rkisp_params_first_cfg_v2x(struct rkisp_isp_params_vdev *params_vdev)
(struct rkisp_isp_params_v21_ops *)params_vdev->priv_ops;
struct rkisp_isp_params_val_v21 *priv_val =
(struct rkisp_isp_params_val_v21 *)params_vdev->priv_val;
struct v4l2_rect *out_crop = &params_vdev->dev->isp_sdev.out_crop;
rkisp_alloc_bay3d_buf(params_vdev, params_vdev->isp21_params);
spin_lock(&params_vdev->config_lock);
@@ -3931,6 +3933,13 @@ rkisp_params_first_cfg_v2x(struct rkisp_isp_params_vdev *params_vdev)
__isp_isr_other_config(params_vdev, params_vdev->isp21_params, RKISP_PARAMS_ALL);
__isp_isr_meas_config(params_vdev, params_vdev->isp21_params, RKISP_PARAMS_ALL);
__preisp_isr_update_hdrae_para(params_vdev, params_vdev->isp21_params);
if (out_crop->width <= ISP2X_AUTO_BIGMODE_WIDTH &&
isp_param_get_insize(params_vdev) > ISP2X_NOBIG_OVERFLOW_SIZE) {
rkisp_set_bits(params_vdev->dev, ISP_CTRL1,
ISP2X_SYS_BIGMODE_MANUAL | ISP2X_SYS_BIGMODE_FORCEEN,
ISP2X_SYS_BIGMODE_MANUAL | ISP2X_SYS_BIGMODE_FORCEEN, false);
}
params_vdev->cur_hdrmge = params_vdev->isp21_params->others.hdrmge_cfg;
params_vdev->cur_hdrdrc = params_vdev->isp21_params->others.drc_cfg;
params_vdev->last_hdrmge = params_vdev->cur_hdrmge;

View File

@@ -2236,6 +2236,8 @@
#define ISP2X_SYS_DHAZ_FST BIT(25)
#define ISP2X_SYS_CNR_FST BIT(26)
#define ISP2X_SYS_BAY3D_FST BIT(27)
#define ISP2X_SYS_BIGMODE_FORCEEN BIT(28)
#define ISP2X_SYS_BIGMODE_MANUAL BIT(29)
/* isp interrupt */
#define ISP2X_OFF BIT(0)