diff --git a/drivers/media/platform/rockchip/isp/isp_params_v2x.c b/drivers/media/platform/rockchip/isp/isp_params_v2x.c index fbaae5a520db..6d57bda6ab1e 100644 --- a/drivers/media/platform/rockchip/isp/isp_params_v2x.c +++ b/drivers/media/platform/rockchip/isp/isp_params_v2x.c @@ -3334,18 +3334,29 @@ static void isp_gain_config(struct rkisp_isp_params_vdev *params_vdev, const struct isp2x_gain_cfg *arg) { + struct rkisp_device *dev = params_vdev->dev; struct rkisp_isp_params_val_v2x *priv_val = (struct rkisp_isp_params_val_v2x *)params_vdev->priv_val; u32 value, i, gain_wsize; + u8 tmo_en, mge_en; + + if (dev->hdr.op_mode != HDR_NORMAL && + dev->hdr.op_mode != HDR_RDBK_FRAME1) { + tmo_en = 1; + mge_en = 1; + } else { + tmo_en = 0; + mge_en = 0; + } gain_wsize = rkisp_ioread32(params_vdev, MI_GAIN_WR_SIZE); gain_wsize &= 0x0FFFFFF0; if (gain_wsize) value = (priv_val->dhaz_en & 0x01) << 16 | (priv_val->wdr_en & 0x01) << 12 | - (priv_val->tmo_en & 0x01) << 8 | + (tmo_en & 0x01) << 8 | (priv_val->lsc_en & 0x01) << 4 | - (priv_val->mge_en & 0x01); + (mge_en & 0x01); else value = 0;