mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-06 02:50:49 +09:00
media: rockchip: isp: fix lsc switch for isp30
Change-Id: Ib953aadd25cf73f956197e19ccd9155173530fab Signed-off-by: Cai YiWei <cyw@rock-chips.com>
This commit is contained in:
@@ -1067,7 +1067,7 @@ static void isp_config_clk(struct rkisp_hw_dev *dev, int on)
|
||||
val = 0;
|
||||
|
||||
if ((dev->isp_ver == ISP_V20 || dev->isp_ver == ISP_V30) && on)
|
||||
val |= CLK_CTRL_ISP_3A;
|
||||
val |= CLK_CTRL_ISP_3A | CLK_CTRL_ISP_RAW;
|
||||
if (dev->isp_ver == ISP_V32)
|
||||
rv1106_sdmmc_get_lock();
|
||||
writel(val, dev->base_addr + CTRL_VI_ISP_CLK_CTRL);
|
||||
|
||||
@@ -634,6 +634,7 @@ static void
|
||||
isp_lsc_enable(struct rkisp_isp_params_vdev *params_vdev, bool en, u32 id)
|
||||
{
|
||||
struct isp3x_isp_params_cfg *params_rec = params_vdev->isp3x_params + id;
|
||||
struct rkisp_isp_params_val_v3x *priv_val = params_vdev->priv_val;
|
||||
u32 val = isp3_param_read(params_vdev, ISP3X_LSC_CTRL, id);
|
||||
|
||||
if (en == !!(val & ISP_LSC_EN))
|
||||
@@ -641,9 +642,12 @@ isp_lsc_enable(struct rkisp_isp_params_vdev *params_vdev, bool en, u32 id)
|
||||
|
||||
if (en) {
|
||||
isp3_param_set_bits(params_vdev, ISP3X_LSC_CTRL, ISP_LSC_EN, id);
|
||||
if (params_vdev->dev->hw_dev->is_single)
|
||||
isp_lsc_matrix_cfg_sram(params_vdev,
|
||||
¶ms_rec->others.lsc_cfg, false, id);
|
||||
if (params_vdev->dev->hw_dev->is_single) {
|
||||
if (!in_interrupt())
|
||||
isp_lsc_matrix_cfg_sram(params_vdev, ¶ms_rec->others.lsc_cfg, false, id);
|
||||
else if (id == ISP3_LEFT)
|
||||
tasklet_schedule(&priv_val->lsc_tasklet);
|
||||
}
|
||||
} else {
|
||||
isp3_param_clear_bits(params_vdev, ISP3X_LSC_CTRL, ISP_LSC_EN, id);
|
||||
isp3_param_clear_bits(params_vdev, ISP3X_GAIN_CTRL, BIT(8), id);
|
||||
|
||||
Reference in New Issue
Block a user