media: rockchip: isp: resolution write directly to reg for first dev

Change-Id: I75f2aced1de968eb0bb16f9643b93bb5709550c3
Signed-off-by: Cai YiWei <cyw@rock-chips.com>
This commit is contained in:
Cai YiWei
2020-10-15 09:49:10 +08:00
committed by Tao Huang
parent 591e626b0e
commit bfdc2e9135
2 changed files with 13 additions and 8 deletions

View File

@@ -474,6 +474,7 @@ void rkisp_trigger_read_back(struct rkisp_csi_device *csi, u8 dma2frm, u32 mode)
u32 val, cur_frame_id, tmp;
bool is_upd = false;
hw->cur_dev_id = dev->dev_id;
rkisp_dmarx_get_frame(dev, &cur_frame_id, NULL, true);
if (dma2frm > 2)
dma2frm = 2;

View File

@@ -503,6 +503,10 @@ static int rkisp_config_isp(struct rkisp_device *dev)
u32 signal = 0;
u32 acq_mult = 0;
u32 acq_prop = 0;
bool is_direct = true;
if (atomic_read(&dev->hw_dev->refcnt) > 1)
is_direct = false;
sensor = dev->active_sensor;
in_fmt = &dev->isp_sdev.in_fmt;
@@ -591,21 +595,21 @@ static int rkisp_config_isp(struct rkisp_device *dev)
rkisp_write(dev, CIF_ISP_ACQ_NR_FRAMES, 0, true);
/* Acquisition Size */
rkisp_write(dev, CIF_ISP_ACQ_H_OFFS, acq_mult * in_crop->left, false);
rkisp_write(dev, CIF_ISP_ACQ_V_OFFS, in_crop->top, false);
rkisp_write(dev, CIF_ISP_ACQ_H_SIZE, acq_mult * in_crop->width, false);
rkisp_write(dev, CIF_ISP_ACQ_H_OFFS, acq_mult * in_crop->left, is_direct);
rkisp_write(dev, CIF_ISP_ACQ_V_OFFS, in_crop->top, is_direct);
rkisp_write(dev, CIF_ISP_ACQ_H_SIZE, acq_mult * in_crop->width, is_direct);
/* ISP Out Area differ with ACQ is only FIFO, so don't crop in this */
rkisp_write(dev, CIF_ISP_OUT_H_OFFS, 0, true);
rkisp_write(dev, CIF_ISP_OUT_V_OFFS, 0, true);
rkisp_write(dev, CIF_ISP_OUT_H_SIZE, in_crop->width, false);
rkisp_write(dev, CIF_ISP_OUT_H_SIZE, in_crop->width, is_direct);
if (dev->cap_dev.stream[RKISP_STREAM_SP].interlaced) {
rkisp_write(dev, CIF_ISP_ACQ_V_SIZE, in_crop->height / 2, false);
rkisp_write(dev, CIF_ISP_OUT_V_SIZE, in_crop->height / 2, false);
rkisp_write(dev, CIF_ISP_ACQ_V_SIZE, in_crop->height / 2, is_direct);
rkisp_write(dev, CIF_ISP_OUT_V_SIZE, in_crop->height / 2, is_direct);
} else {
rkisp_write(dev, CIF_ISP_ACQ_V_SIZE, in_crop->height, false);
rkisp_write(dev, CIF_ISP_OUT_V_SIZE, in_crop->height, false);
rkisp_write(dev, CIF_ISP_ACQ_V_SIZE, in_crop->height, is_direct);
rkisp_write(dev, CIF_ISP_OUT_V_SIZE, in_crop->height, is_direct);
}
/* interrupt mask */