mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 11:50:43 +09:00
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:
@@ -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;
|
||||
|
||||
@@ -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 */
|
||||
|
||||
Reference in New Issue
Block a user