mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-06 02:50:49 +09:00
media: rockchip: isp: fix multi sensor for isp39
1.fix stop no to disable yuvme 2.limit dhaz thumb size, cam_n * col * row <= 80 Change-Id: Ib90ba6fb1664dd85860b639653ad424fc0f2e37d Signed-off-by: Cai YiWei <cyw@rock-chips.com>
This commit is contained in:
@@ -2512,6 +2512,11 @@ isp_dhaz_config(struct rkisp_isp_params_vdev *params_vdev,
|
||||
ISP39_DHAZ_THUMB_ROW_MAX : arg->thumb_row & ~1;
|
||||
thumb_col = arg->thumb_col > ISP39_DHAZ_THUMB_COL_MAX ?
|
||||
ISP39_DHAZ_THUMB_COL_MAX : arg->thumb_col & ~1;
|
||||
if (dev->hw_dev->dev_link_num > 1 && thumb_row > 4 &&
|
||||
!dev->hw_dev->is_frm_buf && thumb_col > 4) {
|
||||
thumb_row = 4;
|
||||
thumb_col = 4;
|
||||
}
|
||||
blk_het = ALIGN(h / thumb_row, 2);
|
||||
blk_wid = ALIGN(w / thumb_col, 2);
|
||||
priv_val->dhaz_blk_num = thumb_row * thumb_col;
|
||||
@@ -3959,6 +3964,8 @@ void __isp_isr_other_en(struct rkisp_isp_params_vdev *params_vdev,
|
||||
mask = ISP39_MODULE_YNR | ISP39_MODULE_CNR | ISP39_MODULE_SHARP;
|
||||
if ((module_ens & mask) && ((module_ens & mask) != mask))
|
||||
dev_err(params_vdev->dev->dev, "ynr cnr sharp no enable together\n");
|
||||
if (module_ens & ISP39_MODULE_YUVME && !(module_ens & ISP39_MODULE_BAY3D))
|
||||
dev_err(params_vdev->dev->dev, "yuvme need bay3d enable together\n");
|
||||
v4l2_dbg(4, rkisp_debug, ¶ms_vdev->dev->v4l2_dev,
|
||||
"%s id:%d seq:%d module_en_update:0x%llx module_ens:0x%llx\n",
|
||||
__func__, id, new_params->frame_id, module_en_update, module_ens);
|
||||
@@ -4922,7 +4929,7 @@ rkisp_params_disable_isp_v39(struct rkisp_isp_params_vdev *params_vdev)
|
||||
int i;
|
||||
|
||||
params_vdev->isp39_params->module_ens = 0;
|
||||
params_vdev->isp39_params->module_en_update = 0x7ffffffffff;
|
||||
params_vdev->isp39_params->module_en_update = ~ISP39_MODULE_FORCE;
|
||||
|
||||
for (i = 0; i < params_vdev->dev->unite_div; i++) {
|
||||
__isp_isr_other_en(params_vdev, params_vdev->isp39_params, RKISP_PARAMS_ALL, i);
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
#include "regs_v2x.h"
|
||||
#include "isp_params_v3x.h"
|
||||
#include "isp_params_v32.h"
|
||||
#include "isp_params_v39.h"
|
||||
|
||||
#ifdef CONFIG_PROC_FS
|
||||
|
||||
@@ -830,6 +831,7 @@ static void isp32_show(struct rkisp_device *dev, struct seq_file *p)
|
||||
|
||||
static void isp39_show(struct rkisp_device *dev, struct seq_file *p)
|
||||
{
|
||||
struct rkisp_isp_params_val_v39 *priv = dev->params_vdev.priv_val;
|
||||
u32 full_range_flg = CIF_ISP_CTRL_ISP_CSM_Y_FULL_ENA | CIF_ISP_CTRL_ISP_CSM_C_FULL_ENA;
|
||||
static const char * const effect[] = { "OFF", "BLACKWHITE" };
|
||||
u32 val, val1, val2;
|
||||
@@ -869,27 +871,38 @@ static void isp39_show(struct rkisp_device *dev, struct seq_file *p)
|
||||
seq_printf(p, "%-10s %s(0x%x)\n", "HDRDRC", (val & 1) ? "ON" : "OFF", val);
|
||||
val = rkisp_read(dev, ISP3X_HDRMGE_CTRL, false);
|
||||
seq_printf(p, "%-10s %s(0x%x)\n", "HDRMGE", (val & 1) ? "ON" : "OFF", val);
|
||||
val = rkisp_read(dev, ISP3X_DHAZ_CTRL, false);
|
||||
val1 = rkisp_read(dev, ISP39_DHAZ_THUMB_SIZE, false);
|
||||
seq_printf(p, "%-10s %s(0x%x) contrast:%d hist:%d enhance:%d blk(row:%d col:%d)\n",
|
||||
"DHAZ", (val & 1) ? "ON" : "OFF", val,
|
||||
!!(val & BIT(4)), !!(val & BIT(8)), !!(val & BIT(20)),
|
||||
val1 & 0x1f, (val1 & 0x1f00) >> 8);
|
||||
val = rkisp_read(dev, ISP3X_BAY3D_CTRL, false);
|
||||
val1 = rkisp_read(dev, ISP39_BAY3D_CTRL1, false);
|
||||
val2 = rkisp_read(dev, ISP39_BAY3D_CTRL2, false);
|
||||
seq_printf(p, "%-10s %s(0x%x 0x%x 0x%x)\n", "BAY3D",
|
||||
(val & 1) ? "ON" : "OFF", val, val1, val2);
|
||||
seq_printf(p, "%-10s %s(0x%x 0x%x 0x%x) bypass:%d iirsparse:%d size:%d\n",
|
||||
"BAY3D", (val & 1) ? "ON" : "OFF", val, val1, val2,
|
||||
!!(val & BIT(1)), !!(val & BIT(2)),
|
||||
priv ? priv->buf_3dnr_iir.size : 0);
|
||||
val = rkisp_read(dev, ISP39_YUVME_CTRL, false);
|
||||
seq_printf(p, "%-10s %s(0x%x) bypass:%d size:%d\n",
|
||||
"YUVME", (val & 1) ? "ON" : "OFF", val, !!(val & BIT(1)),
|
||||
priv ? priv->buf_3dnr_cur.size : 0);
|
||||
val = rkisp_read(dev, ISP3X_YNR_GLOBAL_CTRL, false);
|
||||
seq_printf(p, "%-10s %s(0x%x)\n", "YNR", (val & 1) ? "ON" : "OFF", val);
|
||||
seq_printf(p, "%-10s %s(0x%x) bypass(lospnr:%d hispnr:%d)\n",
|
||||
"YNR", (val & 1) ? "ON" : "OFF", val,
|
||||
!!(val & BIT(1)), !!(val & BIT(2)));
|
||||
val = rkisp_read(dev, ISP3X_CNR_CTRL, false);
|
||||
seq_printf(p, "%-10s %s(0x%x)\n", "CNR", (val & 1) ? "ON" : "OFF", val);
|
||||
val = rkisp_read(dev, ISP3X_SHARP_EN, false);
|
||||
seq_printf(p, "%-10s %s(0x%x)\n", "SHARP", (val & 1) ? "ON" : "OFF", val);
|
||||
val = rkisp_read(dev, ISP3X_DHAZ_CTRL, false);
|
||||
seq_printf(p, "%-10s %s(0x%x)\n", "DHAZ", (val & 1) ? "ON" : "OFF", val);
|
||||
seq_printf(p, "%-10s %s(0x%x) bypass:%d\n", "SHARP",
|
||||
(val & 1) ? "ON" : "OFF", val, !!(val & BIT(1)));
|
||||
val = rkisp_read(dev, ISP3X_3DLUT_CTRL, false);
|
||||
seq_printf(p, "%-10s %s(0x%x)\n", "3DLUT", (val & 1) ? "ON" : "OFF", val);
|
||||
val = rkisp_read(dev, ISP3X_LDCH_STS, false);
|
||||
seq_printf(p, "%-10s %s(0x%x)\n", "LDCH", (val & 1) ? "ON" : "OFF", val);
|
||||
val = rkisp_read(dev, ISP39_LDCV_CTRL, false);
|
||||
seq_printf(p, "%-10s %s(0x%x)\n", "LDCV", (val & 1) ? "ON" : "OFF", val);
|
||||
val = rkisp_read(dev, ISP39_YUVME_CTRL, false);
|
||||
seq_printf(p, "%-10s %s(0x%x)\n", "YUVME", (val & 1) ? "ON" : "OFF", val);
|
||||
val = rkisp_read(dev, ISP39_RGBIR_CTRL, false);
|
||||
seq_printf(p, "%-10s %s(0x%x)\n", "RGBIR", (val & 1) ? "ON" : "OFF", val);
|
||||
val = rkisp_read(dev, ISP3X_ISP_CTRL0, false);
|
||||
|
||||
Reference in New Issue
Block a user