media: rockchip: isp: params and stats for dual isp unite

Change-Id: I8d950102877ea37423baced71b1fec50aa9a92f6
Signed-off-by: Cai YiWei <cyw@rock-chips.com>
This commit is contained in:
Cai YiWei
2021-09-06 16:17:53 +08:00
committed by Tao Huang
parent da2794bb29
commit e8b2b58cee
7 changed files with 2689 additions and 2212 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -29,161 +29,163 @@
struct rkisp_isp_params_vdev;
struct rkisp_isp_params_ops_v3x {
void (*dpcc_config)(struct rkisp_isp_params_vdev *params_vdev,
const struct isp2x_dpcc_cfg *arg);
const struct isp2x_dpcc_cfg *arg, u32 id);
void (*dpcc_enable)(struct rkisp_isp_params_vdev *params_vdev,
bool en);
bool en, u32 id);
void (*bls_config)(struct rkisp_isp_params_vdev *params_vdev,
const struct isp21_bls_cfg *arg);
const struct isp21_bls_cfg *arg, u32 id);
void (*bls_enable)(struct rkisp_isp_params_vdev *params_vdev,
bool en);
bool en, u32 id);
void (*sdg_config)(struct rkisp_isp_params_vdev *params_vdev,
const struct isp2x_sdg_cfg *arg);
const struct isp2x_sdg_cfg *arg, u32 id);
void (*sdg_enable)(struct rkisp_isp_params_vdev *params_vdev,
bool en);
bool en, u32 id);
void (*lsc_config)(struct rkisp_isp_params_vdev *params_vdev,
const struct isp3x_lsc_cfg *arg);
const struct isp3x_lsc_cfg *arg, u32 id);
void (*lsc_enable)(struct rkisp_isp_params_vdev *params_vdev,
bool en);
bool en, u32 id);
void (*awbgain_config)(struct rkisp_isp_params_vdev *params_vdev,
const struct isp21_awb_gain_cfg *arg);
const struct isp21_awb_gain_cfg *arg, u32 id);
void (*awbgain_enable)(struct rkisp_isp_params_vdev *params_vdev,
bool en);
bool en, u32 id);
void (*debayer_config)(struct rkisp_isp_params_vdev *params_vdev,
const struct isp2x_debayer_cfg *arg);
const struct isp2x_debayer_cfg *arg, u32 id);
void (*debayer_enable)(struct rkisp_isp_params_vdev *params_vdev,
bool en);
bool en, u32 id);
void (*ccm_config)(struct rkisp_isp_params_vdev *params_vdev,
const struct isp21_ccm_cfg *arg);
const struct isp21_ccm_cfg *arg, u32 id);
void (*ccm_enable)(struct rkisp_isp_params_vdev *params_vdev,
bool en);
bool en, u32 id);
void (*goc_config)(struct rkisp_isp_params_vdev *params_vdev,
const struct isp3x_gammaout_cfg *arg);
const struct isp3x_gammaout_cfg *arg, u32 id);
void (*goc_enable)(struct rkisp_isp_params_vdev *params_vdev,
bool en);
bool en, u32 id);
void (*cproc_config)(struct rkisp_isp_params_vdev *params_vdev,
const struct isp2x_cproc_cfg *arg);
const struct isp2x_cproc_cfg *arg, u32 id);
void (*cproc_enable)(struct rkisp_isp_params_vdev *params_vdev,
bool en);
bool en, u32 id);
void (*ie_config)(struct rkisp_isp_params_vdev *params_vdev,
const struct isp2x_ie_cfg *arg);
const struct isp2x_ie_cfg *arg, u32 id);
void (*ie_enable)(struct rkisp_isp_params_vdev *params_vdev,
bool en);
bool en, u32 id);
void (*rawaf_config)(struct rkisp_isp_params_vdev *params_vdev,
const struct isp3x_rawaf_meas_cfg *arg);
const struct isp3x_rawaf_meas_cfg *arg, u32 id);
void (*rawaf_enable)(struct rkisp_isp_params_vdev *params_vdev,
bool en);
bool en, u32 id);
void (*rawae0_config)(struct rkisp_isp_params_vdev *params_vdev,
const struct isp2x_rawaelite_meas_cfg *arg);
const struct isp2x_rawaelite_meas_cfg *arg, u32 id);
void (*rawae0_enable)(struct rkisp_isp_params_vdev *params_vdev,
bool en);
bool en, u32 id);
void (*rawae1_config)(struct rkisp_isp_params_vdev *params_vdev,
const struct isp2x_rawaebig_meas_cfg *arg);
const struct isp2x_rawaebig_meas_cfg *arg, u32 id);
void (*rawae1_enable)(struct rkisp_isp_params_vdev *params_vdev,
bool en);
bool en, u32 id);
void (*rawae2_config)(struct rkisp_isp_params_vdev *params_vdev,
const struct isp2x_rawaebig_meas_cfg *arg);
const struct isp2x_rawaebig_meas_cfg *arg, u32 id);
void (*rawae2_enable)(struct rkisp_isp_params_vdev *params_vdev,
bool en);
bool en, u32 id);
void (*rawae3_config)(struct rkisp_isp_params_vdev *params_vdev,
const struct isp2x_rawaebig_meas_cfg *arg);
const struct isp2x_rawaebig_meas_cfg *arg, u32 id);
void (*rawae3_enable)(struct rkisp_isp_params_vdev *params_vdev,
bool en);
bool en, u32 id);
void (*rawawb_config)(struct rkisp_isp_params_vdev *params_vdev,
const struct isp3x_rawawb_meas_cfg *arg);
const struct isp3x_rawawb_meas_cfg *arg, u32 id);
void (*rawawb_enable)(struct rkisp_isp_params_vdev *params_vdev,
bool en);
bool en, u32 id);
void (*rawhst0_config)(struct rkisp_isp_params_vdev *params_vdev,
const struct isp2x_rawhistlite_cfg *arg);
const struct isp2x_rawhistlite_cfg *arg, u32 id);
void (*rawhst0_enable)(struct rkisp_isp_params_vdev *params_vdev,
bool en);
bool en, u32 id);
void (*rawhst1_config)(struct rkisp_isp_params_vdev *params_vdev,
const struct isp2x_rawhistbig_cfg *arg);
const struct isp2x_rawhistbig_cfg *arg, u32 id);
void (*rawhst1_enable)(struct rkisp_isp_params_vdev *params_vdev,
bool en);
bool en, u32 id);
void (*rawhst2_config)(struct rkisp_isp_params_vdev *params_vdev,
const struct isp2x_rawhistbig_cfg *arg);
const struct isp2x_rawhistbig_cfg *arg, u32 id);
void (*rawhst2_enable)(struct rkisp_isp_params_vdev *params_vdev,
bool en);
bool en, u32 id);
void (*rawhst3_config)(struct rkisp_isp_params_vdev *params_vdev,
const struct isp2x_rawhistbig_cfg *arg);
const struct isp2x_rawhistbig_cfg *arg, u32 id);
void (*rawhst3_enable)(struct rkisp_isp_params_vdev *params_vdev,
bool en);
bool en, u32 id);
void (*hdrdrc_config)(struct rkisp_isp_params_vdev *params_vdev,
const struct isp3x_drc_cfg *arg, enum rkisp_params_type type);
const struct isp3x_drc_cfg *arg,
enum rkisp_params_type type, u32 id);
void (*hdrdrc_enable)(struct rkisp_isp_params_vdev *params_vdev,
bool en);
bool en, u32 id);
void (*hdrmge_config)(struct rkisp_isp_params_vdev *params_vdev,
const struct isp3x_hdrmge_cfg *arg, enum rkisp_params_type type);
const struct isp3x_hdrmge_cfg *arg,
enum rkisp_params_type type, u32 id);
void (*hdrmge_enable)(struct rkisp_isp_params_vdev *params_vdev,
bool en);
bool en, u32 id);
void (*gic_config)(struct rkisp_isp_params_vdev *params_vdev,
const struct isp21_gic_cfg *arg);
const struct isp21_gic_cfg *arg, u32 id);
void (*gic_enable)(struct rkisp_isp_params_vdev *params_vdev,
bool en);
bool en, u32 id);
void (*dhaz_config)(struct rkisp_isp_params_vdev *params_vdev,
const struct isp3x_dhaz_cfg *arg);
const struct isp3x_dhaz_cfg *arg, u32 id);
void (*dhaz_enable)(struct rkisp_isp_params_vdev *params_vdev,
bool en);
bool en, u32 id);
void (*isp3dlut_config)(struct rkisp_isp_params_vdev *params_vdev,
const struct isp2x_3dlut_cfg *arg);
const struct isp2x_3dlut_cfg *arg, u32 id);
void (*isp3dlut_enable)(struct rkisp_isp_params_vdev *params_vdev,
bool en);
bool en, u32 id);
void (*ldch_config)(struct rkisp_isp_params_vdev *params_vdev,
const struct isp2x_ldch_cfg *arg);
const struct isp2x_ldch_cfg *arg, u32 id);
void (*ldch_enable)(struct rkisp_isp_params_vdev *params_vdev,
bool en);
bool en, u32 id);
void (*ynr_config)(struct rkisp_isp_params_vdev *params_vdev,
const struct isp3x_ynr_cfg *arg);
const struct isp3x_ynr_cfg *arg, u32 id);
void (*ynr_enable)(struct rkisp_isp_params_vdev *params_vdev,
bool en, const struct isp3x_ynr_cfg *arg);
bool en, const struct isp3x_ynr_cfg *arg, u32 id);
void (*cnr_config)(struct rkisp_isp_params_vdev *params_vdev,
const struct isp3x_cnr_cfg *arg);
const struct isp3x_cnr_cfg *arg, u32 id);
void (*cnr_enable)(struct rkisp_isp_params_vdev *params_vdev,
bool en, const struct isp3x_cnr_cfg *arg);
bool en, const struct isp3x_cnr_cfg *arg, u32 id);
void (*sharp_config)(struct rkisp_isp_params_vdev *params_vdev,
const struct isp3x_sharp_cfg *arg);
const struct isp3x_sharp_cfg *arg, u32 id);
void (*sharp_enable)(struct rkisp_isp_params_vdev *params_vdev,
bool en);
bool en, u32 id);
void (*baynr_config)(struct rkisp_isp_params_vdev *params_vdev,
const struct isp3x_baynr_cfg *arg);
const struct isp3x_baynr_cfg *arg, u32 id);
void (*baynr_enable)(struct rkisp_isp_params_vdev *params_vdev,
bool en);
bool en, u32 id);
void (*bay3d_config)(struct rkisp_isp_params_vdev *params_vdev,
const struct isp3x_bay3d_cfg *arg);
const struct isp3x_bay3d_cfg *arg, u32 id);
void (*bay3d_enable)(struct rkisp_isp_params_vdev *params_vdev,
bool en);
bool en, u32 id);
void (*gain_config)(struct rkisp_isp_params_vdev *params_vdev,
const struct isp3x_gain_cfg *arg);
const struct isp3x_gain_cfg *arg, u32 id);
void (*gain_enable)(struct rkisp_isp_params_vdev *params_vdev,
bool en);
bool en, u32 id);
void (*cac_config)(struct rkisp_isp_params_vdev *params_vdev,
const struct isp3x_cac_cfg *arg);
const struct isp3x_cac_cfg *arg, u32 id);
void (*cac_enable)(struct rkisp_isp_params_vdev *params_vdev,
bool en);
bool en, u32 id);
};
struct rkisp_isp_params_val_v3x {
struct rkisp_dummy_buffer buf_3dlut[ISP3X_3DLUT_BUF_NUM];
u32 buf_3dlut_idx;
struct rkisp_dummy_buffer buf_3dlut[ISP3_UNITE_MAX][ISP3X_3DLUT_BUF_NUM];
u32 buf_3dlut_idx[ISP3_UNITE_MAX];
struct rkisp_dummy_buffer buf_ldch[ISP3X_MESH_BUF_NUM];
u32 buf_ldch_idx;
struct rkisp_dummy_buffer buf_ldch[ISP3_UNITE_MAX][ISP3X_MESH_BUF_NUM];
u32 buf_ldch_idx[ISP3_UNITE_MAX];
struct rkisp_dummy_buffer buf_lsclut[ISP3X_LSC_LUT_BUF_NUM];
u32 buf_lsclut_idx;
struct rkisp_dummy_buffer buf_lsclut[ISP3_UNITE_MAX][ISP3X_LSC_LUT_BUF_NUM];
u32 buf_lsclut_idx[ISP3_UNITE_MAX];
struct rkisp_dummy_buffer buf_cac[ISP3X_MESH_BUF_NUM];
u32 buf_cac_idx;
struct rkisp_dummy_buffer buf_cac[ISP3_UNITE_MAX][ISP3X_MESH_BUF_NUM];
u32 buf_cac_idx[ISP3_UNITE_MAX];
struct rkisp_dummy_buffer buf_3dnr_iir;
struct rkisp_dummy_buffer buf_3dnr_cur;
struct rkisp_dummy_buffer buf_3dnr_ds;
struct rkisp_dummy_buffer buf_3dnr_iir[ISP3_UNITE_MAX];
struct rkisp_dummy_buffer buf_3dnr_cur[ISP3_UNITE_MAX];
struct rkisp_dummy_buffer buf_3dnr_ds[ISP3_UNITE_MAX];
struct isp3x_hdrmge_cfg last_hdrmge;
struct isp3x_drc_cfg last_hdrdrc;
struct isp3x_hdrmge_cfg cur_hdrmge;
struct isp3x_drc_cfg cur_hdrdrc;
struct isp3x_lsc_cfg cur_lsccfg;
struct isp3x_lsc_cfg cur_lsccfg[ISP3_UNITE_MAX];
bool dhaz_en;
bool drc_en;

File diff suppressed because it is too large Load Diff

View File

@@ -14,29 +14,29 @@
struct rkisp_isp_stats_vdev;
struct rkisp_stats_ops_v3x {
int (*get_rawawb_meas)(struct rkisp_isp_stats_vdev *stats_vdev,
struct rkisp3x_isp_stat_buffer *pbuf);
struct rkisp3x_isp_stat_buffer *pbuf, u32 id);
int (*get_rawaf_meas)(struct rkisp_isp_stats_vdev *stats_vdev,
struct rkisp3x_isp_stat_buffer *pbuf);
struct rkisp3x_isp_stat_buffer *pbuf, u32 id);
int (*get_rawae0_meas)(struct rkisp_isp_stats_vdev *stats_vdev,
struct rkisp3x_isp_stat_buffer *pbuf);
struct rkisp3x_isp_stat_buffer *pbuf, u32 id);
int (*get_rawhst0_meas)(struct rkisp_isp_stats_vdev *stats_vdev,
struct rkisp3x_isp_stat_buffer *pbuf);
struct rkisp3x_isp_stat_buffer *pbuf, u32 id);
int (*get_rawae1_meas)(struct rkisp_isp_stats_vdev *stats_vdev,
struct rkisp3x_isp_stat_buffer *pbuf);
struct rkisp3x_isp_stat_buffer *pbuf, u32 id);
int (*get_rawhst1_meas)(struct rkisp_isp_stats_vdev *stats_vdev,
struct rkisp3x_isp_stat_buffer *pbuf);
struct rkisp3x_isp_stat_buffer *pbuf, u32 id);
int (*get_rawae2_meas)(struct rkisp_isp_stats_vdev *stats_vdev,
struct rkisp3x_isp_stat_buffer *pbuf);
struct rkisp3x_isp_stat_buffer *pbuf, u32 id);
int (*get_rawhst2_meas)(struct rkisp_isp_stats_vdev *stats_vdev,
struct rkisp3x_isp_stat_buffer *pbuf);
struct rkisp3x_isp_stat_buffer *pbuf, u32 id);
int (*get_rawae3_meas)(struct rkisp_isp_stats_vdev *stats_vdev,
struct rkisp3x_isp_stat_buffer *pbuf);
struct rkisp3x_isp_stat_buffer *pbuf, u32 id);
int (*get_rawhst3_meas)(struct rkisp_isp_stats_vdev *stats_vdev,
struct rkisp3x_isp_stat_buffer *pbuf);
struct rkisp3x_isp_stat_buffer *pbuf, u32 id);
int (*get_bls_stats)(struct rkisp_isp_stats_vdev *stats_vdev,
struct rkisp3x_isp_stat_buffer *pbuf);
struct rkisp3x_isp_stat_buffer *pbuf, u32 id);
int (*get_dhaz_stats)(struct rkisp_isp_stats_vdev *stats_vdev,
struct rkisp3x_isp_stat_buffer *pbuf);
struct rkisp3x_isp_stat_buffer *pbuf, u32 id);
};
#if IS_ENABLED(CONFIG_VIDEO_ROCKCHIP_ISP_VERSION_V30)

View File

@@ -306,6 +306,251 @@ static void isp30_show(struct rkisp_device *dev, struct seq_file *p)
seq_printf(p, "%-10s %s(0x%x)\n", "RAWHIST3", (val & 1) ? "ON" : "OFF", val);
}
static void isp30_unite_show(struct rkisp_device *dev, struct seq_file *p)
{
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[] = {
"BLACKWHITE",
"NEGATIVE",
"SEPIA",
"COLOR_SEL",
"EMBOSS",
"SKETCH",
"SHARPEN",
"RKSHARPEN"
};
u32 v0, v1;
v0 = rkisp_read(dev, ISP3X_CMSK_CTRL0, false);
v1 = rkisp_next_read(dev, ISP3X_CMSK_CTRL0, false);
seq_printf(p, "%-10s Left %s(0x%x), Right %s(0x%x)\n",
"CMSK",
(v0 & 1) ? "ON" : "OFF",
v0, (v1 & 1) ? "ON" : "OFF", v1);
v0 = rkisp_read(dev, ISP3X_DPCC0_MODE, false);
v1 = rkisp_next_read(dev, ISP3X_DPCC0_MODE, false);
seq_printf(p, "%-10s Left %s(0x%x), Right %s(0x%x)\n",
"DPCC0",
(v0 & 1) ? "ON" : "OFF", v0,
(v1 & 1) ? "ON" : "OFF", v1);
v0 = rkisp_read(dev, ISP3X_DPCC1_MODE, false);
v1 = rkisp_next_read(dev, ISP3X_DPCC1_MODE, false);
seq_printf(p, "%-10s Left %s(0x%x), Right %s(0x%x)\n",
"DPCC1",
(v0 & 1) ? "ON" : "OFF", v0,
(v1 & 1) ? "ON" : "OFF", v1);
v0 = rkisp_read(dev, ISP3X_DPCC2_MODE, false);
v1 = rkisp_next_read(dev, ISP3X_DPCC2_MODE, false);
seq_printf(p, "%-10s Left %s(0x%x), Right %s(0x%x)\n",
"DPCC2",
(v0 & 1) ? "ON" : "OFF", v0,
(v1 & 1) ? "ON" : "OFF", v1);
v0 = rkisp_read(dev, ISP3X_BLS_CTRL, false);
v1 = rkisp_next_read(dev, ISP3X_BLS_CTRL, false);
seq_printf(p, "%-10s Left %s(0x%x), Right %s(0x%x)\n",
"BLS",
(v0 & 1) ? "ON" : "OFF", v0,
(v1 & 1) ? "ON" : "OFF", v1);
v0 = rkisp_read(dev, ISP3X_ISP_CTRL0, false);
v1 = rkisp_next_read(dev, ISP3X_ISP_CTRL0, false);
seq_printf(p, "%-10s Left %s(0x%x), Right %s(0x%x)\n",
"SDG",
(v0 & BIT(6)) ? "ON" : "OFF", v0,
(v1 & BIT(6)) ? "ON" : "OFF", v1);
v0 = rkisp_read(dev, ISP3X_LSC_CTRL, false);
v1 = rkisp_next_read(dev, ISP3X_LSC_CTRL, false);
seq_printf(p, "%-10s Left %s(0x%x), Right %s(0x%x)\n",
"LSC",
(v0 & 1) ? "ON" : "OFF", v0,
(v1 & 1) ? "ON" : "OFF", v1);
v0 = rkisp_read(dev, ISP3X_ISP_CTRL0, false);
v1 = rkisp_next_read(dev, ISP3X_ISP_CTRL0, false);
seq_printf(p, "%-10s Left %s(0x%x) gain:0x%08x 0x%08x, Right %s(0x%x) gain:0x%08x 0x%08x\n",
"AWBGAIN",
(v0 & BIT(7)) ? "ON" : "OFF", v0,
rkisp_read(dev, ISP3X_ISP_AWB_GAIN0_G, false),
rkisp_read(dev, ISP3X_ISP_AWB_GAIN0_RB, false),
(v1 & BIT(7)) ? "ON" : "OFF", v1,
rkisp_next_read(dev, ISP3X_ISP_AWB_GAIN0_G, false),
rkisp_next_read(dev, ISP3X_ISP_AWB_GAIN0_RB, false));
v0 = rkisp_read(dev, ISP3X_DEBAYER_CONTROL, false);
v1 = rkisp_next_read(dev, ISP3X_DEBAYER_CONTROL, false);
seq_printf(p, "%-10s Left %s(0x%x), Right %s(0x%x)\n",
"DEBAYER",
(v0 & 1) ? "ON" : "OFF", v0,
(v1 & 1) ? "ON" : "OFF", v1);
v0 = rkisp_read(dev, ISP3X_CCM_CTRL, false);
v1 = rkisp_next_read(dev, ISP3X_CCM_CTRL, false);
seq_printf(p, "%-10s Left %s(0x%x), Right %s(0x%x)\n",
"CCM",
(v0 & 1) ? "ON" : "OFF", v0,
(v1 & 1) ? "ON" : "OFF", v1);
v0 = rkisp_read(dev, ISP3X_GAMMA_OUT_CTRL, false);
v1 = rkisp_next_read(dev, ISP3X_GAMMA_OUT_CTRL, false);
seq_printf(p, "%-10s Left %s(0x%x), Right %s(0x%x)\n",
"GAMMA_OUT",
(v0 & 1) ? "ON" : "OFF", v0,
(v1 & 1) ? "ON" : "OFF", v1);
v0 = rkisp_read(dev, ISP3X_CPROC_CTRL, false);
v1 = rkisp_next_read(dev, ISP3X_CPROC_CTRL, false);
seq_printf(p, "%-10s Left %s(0x%x), Right %s(0x%x)\n",
"CPROC",
(v0 & 1) ? "ON" : "OFF", v0,
(v1 & 1) ? "ON" : "OFF", v1);
v0 = rkisp_read(dev, ISP3X_IMG_EFF_CTRL, false);
v1 = rkisp_next_read(dev, ISP3X_IMG_EFF_CTRL, false);
seq_printf(p, "%-10s Left %s(0x%x) effect:%s, Right %s(0x%x) effect:%s\n",
"IE",
(v0 & 1) ? "ON" : "OFF", v0,
effect[(v0 & CIF_IMG_EFF_CTRL_MODE_MASK) >> 1],
(v1 & 1) ? "ON" : "OFF", v1,
effect[(v1 & CIF_IMG_EFF_CTRL_MODE_MASK) >> 1]);
v0 = rkisp_read(dev, ISP3X_DRC_CTRL0, false);
v1 = rkisp_next_read(dev, ISP3X_DRC_CTRL0, false);
seq_printf(p, "%-10s Left %s(0x%x), Right %s(0x%x)\n",
"HDRDRC",
(v0 & 1) ? "ON" : "OFF", v0,
(v1 & 1) ? "ON" : "OFF", v1);
v0 = rkisp_read(dev, ISP3X_HDRMGE_CTRL, false);
v1 = rkisp_next_read(dev, ISP3X_HDRMGE_CTRL, false);
seq_printf(p, "%-10s Left %s(0x%x), Right %s(0x%x)\n",
"HDRMGE",
(v0 & 1) ? "ON" : "OFF", v0,
(v1 & 1) ? "ON" : "OFF", v1);
v0 = rkisp_read(dev, ISP3X_BAYNR_CTRL, false);
v1 = rkisp_next_read(dev, ISP3X_BAYNR_CTRL, false);
seq_printf(p, "%-10s Left %s(0x%x), Right %s(0x%x)\n",
"BAYNR",
(v0 & 1) ? "ON" : "OFF", v0,
(v1 & 1) ? "ON" : "OFF", v1);
v0 = rkisp_read(dev, ISP3X_BAY3D_CTRL, false);
v1 = rkisp_next_read(dev, ISP3X_BAY3D_CTRL, false);
seq_printf(p, "%-10s Left %s(0x%x), Right %s(0x%x)\n",
"BAY3D",
(v0 & 1) ? "ON" : "OFF", v0,
(v1 & 1) ? "ON" : "OFF", v1);
v0 = rkisp_read(dev, ISP3X_YNR_GLOBAL_CTRL, false);
v1 = rkisp_next_read(dev, ISP3X_YNR_GLOBAL_CTRL, false);
seq_printf(p, "%-10s Left %s(0x%x), Right %s(0x%x)\n",
"YNR",
(v0 & 1) ? "ON" : "OFF", v0,
(v1 & 1) ? "ON" : "OFF", v1);
v0 = rkisp_read(dev, ISP3X_CNR_CTRL, false);
v1 = rkisp_next_read(dev, ISP3X_CNR_CTRL, false);
seq_printf(p, "%-10s Left %s(0x%x), Right %s(0x%x)\n",
"CNR",
(v0 & 1) ? "ON" : "OFF", v0,
(v1 & 1) ? "ON" : "OFF", v1);
v0 = rkisp_read(dev, ISP3X_SHARP_EN, false);
v1 = rkisp_next_read(dev, ISP3X_SHARP_EN, false);
seq_printf(p, "%-10s Left %s(0x%x), Right %s(0x%x)\n",
"SHARP",
(v0 & 1) ? "ON" : "OFF", v0,
(v1 & 1) ? "ON" : "OFF", v1);
v0 = rkisp_read(dev, ISP3X_GIC_CONTROL, false);
v1 = rkisp_next_read(dev, ISP3X_GIC_CONTROL, false);
seq_printf(p, "%-10s Left %s(0x%x), Right %s(0x%x)\n",
"GIC",
(v0 & 1) ? "ON" : "OFF", v0,
(v1 & 1) ? "ON" : "OFF", v1);
v0 = rkisp_read(dev, ISP3X_DHAZ_CTRL, false);
v1 = rkisp_next_read(dev, ISP3X_DHAZ_CTRL, false);
seq_printf(p, "%-10s Left %s(0x%x), Right %s(0x%x)\n",
"DHAZ",
(v0 & 1) ? "ON" : "OFF", v0,
(v1 & 1) ? "ON" : "OFF", v1);
v0 = rkisp_read(dev, ISP3X_3DLUT_CTRL, false);
v1 = rkisp_next_read(dev, ISP3X_3DLUT_CTRL, false);
seq_printf(p, "%-10s Left %s(0x%x), Right %s(0x%x)\n",
"3DLUT",
(v0 & 1) ? "ON" : "OFF", v0,
(v1 & 1) ? "ON" : "OFF", v1);
v0 = rkisp_read(dev, ISP3X_LDCH_STS, false);
v1 = rkisp_next_read(dev, ISP3X_LDCH_STS, false);
seq_printf(p, "%-10s Left %s(0x%x), Right %s(0x%x)\n",
"LDCH",
(v0 & 1) ? "ON" : "OFF", v0,
(v1 & 1) ? "ON" : "OFF", v1);
v0 = rkisp_read(dev, ISP3X_ISP_CTRL0, false);
v1 = rkisp_next_read(dev, ISP3X_ISP_CTRL0, false);
seq_printf(p, "%-10s Left %s(0x%x), Right %s(0x%x)\n",
"CSM",
(v0 & full_range_flg) ? "FULL" : "LIMIT", v0,
(v1 & full_range_flg) ? "FULL" : "LIMIT", v1);
v0 = rkisp_read(dev, ISP3X_CAC_CTRL, false);
v1 = rkisp_next_read(dev, ISP3X_CAC_CTRL, false);
seq_printf(p, "%-10s Left %s(0x%x), Right %s(0x%x)\n",
"CAC",
(v0 & 1) ? "ON" : "OFF", v0,
(v1 & 1) ? "ON" : "OFF", v1);
v0 = rkisp_read(dev, ISP3X_GAIN_CTRL, false);
v1 = rkisp_next_read(dev, ISP3X_GAIN_CTRL, false);
seq_printf(p, "%-10s Left %s(0x%x), Right %s(0x%x)\n",
"GAIN",
(v0 & 1) ? "ON" : "OFF", v0,
(v1 & 1) ? "ON" : "OFF", v1);
v0 = rkisp_read(dev, ISP3X_RAWAF_CTRL, false);
v1 = rkisp_next_read(dev, ISP3X_RAWAF_CTRL, false);
seq_printf(p, "%-10s Left %s(0x%x), Right %s(0x%x)\n",
"RAWAF",
(v0 & 1) ? "ON" : "OFF", v0,
(v1 & 1) ? "ON" : "OFF", v1);
v0 = rkisp_read(dev, ISP3X_RAWAWB_CTRL, false);
v1 = rkisp_next_read(dev, ISP3X_RAWAWB_CTRL, false);
seq_printf(p, "%-10s Left %s(0x%x), Right %s(0x%x)\n",
"RAWAWB",
(v0 & 1) ? "ON" : "OFF", v0,
(v1 & 1) ? "ON" : "OFF", v1);
v0 = rkisp_read(dev, ISP3X_RAWAE_LITE_CTRL, false);
v1 = rkisp_next_read(dev, ISP3X_RAWAE_LITE_CTRL, false);
seq_printf(p, "%-10s Left %s(0x%x), Right %s(0x%x)\n",
"RAWAE0",
(v0 & 1) ? "ON" : "OFF", v0,
(v1 & 1) ? "ON" : "OFF", v1);
v0 = rkisp_read(dev, ISP3X_RAWAE_BIG2_BASE, false);
v1 = rkisp_next_read(dev, ISP3X_RAWAE_BIG2_BASE, false);
seq_printf(p, "%-10s Left %s(0x%x), Right %s(0x%x)\n",
"RAWAE1",
(v0 & 1) ? "ON" : "OFF", v0,
(v1 & 1) ? "ON" : "OFF", v1);
v0 = rkisp_read(dev, ISP3X_RAWAE_BIG3_BASE, false);
v1 = rkisp_next_read(dev, ISP3X_RAWAE_BIG3_BASE, false);
seq_printf(p, "%-10s Left %s(0x%x), Right %s(0x%x)\n",
"RAWAE2",
(v0 & 1) ? "ON" : "OFF", v0,
(v1 & 1) ? "ON" : "OFF", v1);
v0 = rkisp_read(dev, ISP3X_RAWAE_BIG1_BASE, false);
v1 = rkisp_next_read(dev, ISP3X_RAWAE_BIG1_BASE, false);
seq_printf(p, "%-10s Left %s(0x%x), Right %s(0x%x)\n",
"RAWAE3",
(v0 & 1) ? "ON" : "OFF", v0,
(v1 & 1) ? "ON" : "OFF", v1);
v0 = rkisp_read(dev, ISP3X_RAWHIST_LITE_CTRL, false);
v1 = rkisp_next_read(dev, ISP3X_RAWHIST_LITE_CTRL, false);
seq_printf(p, "%-10s Left %s(0x%x), Right %s(0x%x)\n",
"RAWHIST0",
(v0 & 1) ? "ON" : "OFF", v0,
(v1 & 1) ? "ON" : "OFF", v1);
v0 = rkisp_read(dev, ISP3X_RAWHIST_BIG2_BASE, false);
v1 = rkisp_next_read(dev, ISP3X_RAWHIST_BIG2_BASE, false);
seq_printf(p, "%-10s Left %s(0x%x), Right %s(0x%x)\n",
"RAWHIST1",
(v0 & 1) ? "ON" : "OFF", v0,
(v1 & 1) ? "ON" : "OFF", v1);
v0 = rkisp_read(dev, ISP3X_RAWHIST_BIG3_BASE, false);
v1 = rkisp_next_read(dev, ISP3X_RAWHIST_BIG3_BASE, false);
seq_printf(p, "%-10s Left %s(0x%x), Right %s(0x%x)\n",
"RAWHIST2",
(v0 & 1) ? "ON" : "OFF", v0,
(v1 & 1) ? "ON" : "OFF", v1);
v0 = rkisp_read(dev, ISP3X_RAWHIST_BIG1_BASE, false);
v1 = rkisp_next_read(dev, ISP3X_RAWHIST_BIG1_BASE, false);
seq_printf(p, "%-10s Left %s(0x%x), Right %s(0x%x)\n",
"RAWHIST3",
(v0 & 1) ? "ON" : "OFF", v0,
(v1 & 1) ? "ON" : "OFF", v1);
}
static int isp_show(struct seq_file *p, void *v)
{
struct rkisp_device *dev = p->private;
@@ -399,7 +644,10 @@ static int isp_show(struct seq_file *p, void *v)
isp21_show(dev, p);
break;
case ISP_V30:
isp30_show(dev, p);
if (dev->hw_dev->is_unite)
isp30_unite_show(dev, p);
else
isp30_show(dev, p);
break;
default:
break;

View File

@@ -234,12 +234,14 @@ enum isp2x_mesh_buf_stat {
struct rkisp_meshbuf_info {
u64 module_id;
u32 unite_isp_id;
s32 buf_fd[ISP2X_MESH_BUF_NUM];
u32 buf_size[ISP2X_MESH_BUF_NUM];
} __attribute__ ((packed));
struct rkisp_meshbuf_size {
u64 module_id;
u32 unite_isp_id;
u32 meas_width;
u32 meas_height;
} __attribute__ ((packed));

View File

@@ -134,6 +134,12 @@
#define ISP3X_CAC_STRENGTH_NUM 22
enum isp3x_unite_id {
ISP3_LEFT = 0,
ISP3_RIGHT,
ISP3_UNITE_MAX,
};
struct isp3x_gammaout_cfg {
u8 equ_segm;
u8 finalx4_dense_en;
@@ -142,6 +148,8 @@ struct isp3x_gammaout_cfg {
} __attribute__ ((packed));
struct isp3x_lsc_cfg {
u8 sector_16x16;
u16 r_data_tbl[ISP3X_LSC_DATA_TBL_SIZE];
u16 gr_data_tbl[ISP3X_LSC_DATA_TBL_SIZE];
u16 gb_data_tbl[ISP3X_LSC_DATA_TBL_SIZE];
@@ -218,13 +226,13 @@ struct isp3x_ynr_cfg {
u8 rnr_en;
u8 thumb_mix_cur_en;
u8 global_gain_alpha;
u8 global_gain;
u8 flt1x1_bypass_sel;
u8 sft5x5_bypass;
u8 flt1x1_bypass;
u8 lgft3x3_bypass;
u8 lbft5x5_bypass;
u8 bft3x3_bypass;
u16 global_gain;
u16 rnr_max_r;
u16 local_gainscale;