mirror of
https://github.com/torvalds/linux.git
synced 2026-06-07 14:04:54 +02:00
media: rockchip: isp1: support for isp new version in rk3326
Change-Id: I226cc2d87053d1951252122c44b570030470ba42 Signed-off-by: Hu Kejun <william.hu@rock-chips.com>
This commit is contained in:
parent
ffbd3042bc
commit
2ff670508e
|
|
@ -12,7 +12,7 @@ config VIDEO_ROCKCHIP_ISP1
|
|||
Support for ISP1 on the rockchip SoC.
|
||||
|
||||
config VIDEO_ROCKCHIP_ISP_DPHY_SY
|
||||
tristate "Rockchip Image Signal Processing v1 Unit driver"
|
||||
tristate "Rockchip Image Signal Processing v1 Dphy driver"
|
||||
depends on VIDEO_V4L2 && VIDEO_V4L2_SUBDEV_API
|
||||
depends on ARCH_ROCKCHIP || COMPILE_TEST
|
||||
default n
|
||||
|
|
|
|||
|
|
@ -2,9 +2,9 @@
|
|||
obj-$(CONFIG_VIDEO_ROCKCHIP_ISP1) += video_rkisp1.o
|
||||
obj-$(CONFIG_VIDEO_ROCKCHIP_ISP_DPHY_SY) += mipi_dphy_sy.o
|
||||
|
||||
video_rkisp1-objs += rkisp1.o \
|
||||
dev.o \
|
||||
regs.o \
|
||||
isp_stats.o \
|
||||
isp_params.o \
|
||||
capture.o
|
||||
video_rkisp1-objs += rkisp1.o \
|
||||
dev.o \
|
||||
regs.o \
|
||||
isp_stats.o \
|
||||
isp_params.o \
|
||||
capture.o
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -38,6 +38,62 @@
|
|||
#include <linux/rkisp1-config.h>
|
||||
#include "common.h"
|
||||
|
||||
struct rkisp1_isp_params_vdev;
|
||||
struct rkisp1_isp_params_ops {
|
||||
void (*dpcc_config)(struct rkisp1_isp_params_vdev *params_vdev,
|
||||
const struct cifisp_dpcc_config *arg);
|
||||
void (*bls_config)(struct rkisp1_isp_params_vdev *params_vdev,
|
||||
const struct cifisp_bls_config *arg);
|
||||
void (*lsc_config)(struct rkisp1_isp_params_vdev *params_vdev,
|
||||
const struct cifisp_lsc_config *arg);
|
||||
void (*lsc_matrix_config)(struct rkisp1_isp_params_vdev *params_vdev,
|
||||
const struct cifisp_lsc_config *pconfig);
|
||||
void (*flt_config)(struct rkisp1_isp_params_vdev *params_vdev,
|
||||
const struct cifisp_flt_config *arg);
|
||||
void (*bdm_config)(struct rkisp1_isp_params_vdev *params_vdev,
|
||||
const struct cifisp_bdm_config *arg);
|
||||
void (*sdg_config)(struct rkisp1_isp_params_vdev *params_vdev,
|
||||
const struct cifisp_sdg_config *arg);
|
||||
void (*goc_config)(struct rkisp1_isp_params_vdev *params_vdev,
|
||||
const struct cifisp_goc_config *arg);
|
||||
void (*ctk_config)(struct rkisp1_isp_params_vdev *params_vdev,
|
||||
const struct cifisp_ctk_config *arg);
|
||||
void (*ctk_enable)(struct rkisp1_isp_params_vdev *params_vdev,
|
||||
bool en);
|
||||
void (*awb_meas_config)(struct rkisp1_isp_params_vdev *params_vdev,
|
||||
const struct cifisp_awb_meas_config *arg);
|
||||
void (*awb_meas_enable)(struct rkisp1_isp_params_vdev *params_vdev,
|
||||
const struct cifisp_awb_meas_config *arg,
|
||||
bool en);
|
||||
void (*awb_gain_config)(struct rkisp1_isp_params_vdev *params_vdev,
|
||||
const struct cifisp_awb_gain_config *arg);
|
||||
void (*aec_config)(struct rkisp1_isp_params_vdev *params_vdev,
|
||||
const struct cifisp_aec_config *arg);
|
||||
void (*cproc_config)(struct rkisp1_isp_params_vdev *params_vdev,
|
||||
const struct cifisp_cproc_config *arg);
|
||||
void (*hst_config)(struct rkisp1_isp_params_vdev *params_vdev,
|
||||
const struct cifisp_hst_config *arg);
|
||||
void (*hst_enable)(struct rkisp1_isp_params_vdev *params_vdev,
|
||||
const struct cifisp_hst_config *arg, bool en);
|
||||
void (*afm_config)(struct rkisp1_isp_params_vdev *params_vdev,
|
||||
const struct cifisp_afc_config *arg);
|
||||
void (*ie_config)(struct rkisp1_isp_params_vdev *params_vdev,
|
||||
const struct cifisp_ie_config *arg);
|
||||
void (*ie_enable)(struct rkisp1_isp_params_vdev *params_vdev,
|
||||
bool en);
|
||||
void (*csm_config)(struct rkisp1_isp_params_vdev *params_vdev,
|
||||
bool full_range);
|
||||
void (*dpf_config)(struct rkisp1_isp_params_vdev *params_vdev,
|
||||
const struct cifisp_dpf_config *arg);
|
||||
void (*dpf_strength_config)(struct rkisp1_isp_params_vdev *params_vdev,
|
||||
const struct cifisp_dpf_strength_config *arg);
|
||||
};
|
||||
|
||||
struct rkisp1_isp_params_config {
|
||||
const int gamma_out_max_samples;
|
||||
const int hst_weight_grids_size;
|
||||
};
|
||||
|
||||
/*
|
||||
* struct rkisp1_isp_subdev - ISP input parameters device
|
||||
*
|
||||
|
|
@ -57,6 +113,9 @@ struct rkisp1_isp_params_vdev {
|
|||
|
||||
enum v4l2_quantization quantization;
|
||||
enum rkisp1_fmt_raw_pat_type raw_type;
|
||||
|
||||
struct rkisp1_isp_params_ops *ops;
|
||||
struct rkisp1_isp_params_config *config;
|
||||
};
|
||||
|
||||
/* config params before ISP streaming */
|
||||
|
|
|
|||
|
|
@ -213,16 +213,16 @@ static int rkisp1_stats_init_vb2_queue(struct vb2_queue *q,
|
|||
return vb2_queue_init(q);
|
||||
}
|
||||
|
||||
static void rkisp1_stats_get_awb_meas(struct rkisp1_isp_stats_vdev *stats_vdev,
|
||||
struct rkisp1_stat_buffer *pbuf)
|
||||
static void rkisp1_stats_get_awb_meas_v10(struct rkisp1_isp_stats_vdev *stats_vdev,
|
||||
struct rkisp1_stat_buffer *pbuf)
|
||||
{
|
||||
/* Protect against concurrent access from ISR? */
|
||||
u32 reg_val;
|
||||
|
||||
pbuf->meas_type |= CIFISP_STAT_AWB;
|
||||
reg_val = readl(stats_vdev->dev->base_addr + CIF_ISP_AWB_WHITE_CNT);
|
||||
reg_val = readl(stats_vdev->dev->base_addr + CIF_ISP_AWB_WHITE_CNT_V10);
|
||||
pbuf->params.awb.awb_mean[0].cnt = CIF_ISP_AWB_GET_PIXEL_CNT(reg_val);
|
||||
reg_val = readl(stats_vdev->dev->base_addr + CIF_ISP_AWB_MEAN);
|
||||
reg_val = readl(stats_vdev->dev->base_addr + CIF_ISP_AWB_MEAN_V10);
|
||||
|
||||
pbuf->params.awb.awb_mean[0].mean_cr_or_r =
|
||||
CIF_ISP_AWB_GET_MEAN_CR_R(reg_val);
|
||||
|
|
@ -232,17 +232,55 @@ static void rkisp1_stats_get_awb_meas(struct rkisp1_isp_stats_vdev *stats_vdev,
|
|||
CIF_ISP_AWB_GET_MEAN_Y_G(reg_val);
|
||||
}
|
||||
|
||||
static void rkisp1_stats_get_aec_meas(struct rkisp1_isp_stats_vdev *stats_vdev,
|
||||
struct rkisp1_stat_buffer *pbuf)
|
||||
static void rkisp1_stats_get_awb_meas_v12(struct rkisp1_isp_stats_vdev *stats_vdev,
|
||||
struct rkisp1_stat_buffer *pbuf)
|
||||
{
|
||||
/* Protect against concurrent access from ISR? */
|
||||
u32 reg_val;
|
||||
|
||||
pbuf->meas_type |= CIFISP_STAT_AWB;
|
||||
reg_val = readl(stats_vdev->dev->base_addr + CIF_ISP_AWB_WHITE_CNT_V12);
|
||||
pbuf->params.awb.awb_mean[0].cnt = CIF_ISP_AWB_GET_PIXEL_CNT(reg_val);
|
||||
reg_val = readl(stats_vdev->dev->base_addr + CIF_ISP_AWB_MEAN_V12);
|
||||
|
||||
pbuf->params.awb.awb_mean[0].mean_cr_or_r =
|
||||
CIF_ISP_AWB_GET_MEAN_CR_R(reg_val);
|
||||
pbuf->params.awb.awb_mean[0].mean_cb_or_b =
|
||||
CIF_ISP_AWB_GET_MEAN_CB_B(reg_val);
|
||||
pbuf->params.awb.awb_mean[0].mean_y_or_g =
|
||||
CIF_ISP_AWB_GET_MEAN_Y_G(reg_val);
|
||||
}
|
||||
|
||||
static void rkisp1_stats_get_aec_meas_v10(struct rkisp1_isp_stats_vdev *stats_vdev,
|
||||
struct rkisp1_stat_buffer *pbuf)
|
||||
{
|
||||
unsigned int i;
|
||||
void __iomem *addr = stats_vdev->dev->base_addr + CIF_ISP_EXP_MEAN_00;
|
||||
void __iomem *addr = stats_vdev->dev->base_addr + CIF_ISP_EXP_MEAN_00_V10;
|
||||
|
||||
pbuf->meas_type |= CIFISP_STAT_AUTOEXP;
|
||||
for (i = 0; i < CIFISP_AE_MEAN_MAX; i++)
|
||||
for (i = 0; i < stats_vdev->config->ae_mean_max; i++)
|
||||
pbuf->params.ae.exp_mean[i] = (u8)readl(addr + i * 4);
|
||||
}
|
||||
|
||||
static void rkisp1_stats_get_aec_meas_v12(struct rkisp1_isp_stats_vdev *stats_vdev,
|
||||
struct rkisp1_stat_buffer *pbuf)
|
||||
{
|
||||
int i;
|
||||
void __iomem *addr = stats_vdev->dev->base_addr + CIF_ISP_EXP_MEAN_V12;
|
||||
u32 value;
|
||||
|
||||
pbuf->meas_type |= CIFISP_STAT_AUTOEXP;
|
||||
for (i = 0; i < stats_vdev->config->ae_mean_max / 4; i++) {
|
||||
value = readl(addr + i * 4);
|
||||
pbuf->params.ae.exp_mean[4 * i + 0] = CIF_ISP_EXP_GET_MEAN_xy0_V12(value);
|
||||
pbuf->params.ae.exp_mean[4 * i + 1] = CIF_ISP_EXP_GET_MEAN_xy1_V12(value);
|
||||
pbuf->params.ae.exp_mean[4 * i + 2] = CIF_ISP_EXP_GET_MEAN_xy2_V12(value);
|
||||
pbuf->params.ae.exp_mean[4 * i + 3] = CIF_ISP_EXP_GET_MEAN_xy3_V12(value);
|
||||
}
|
||||
value = readl(addr + i * 4);
|
||||
pbuf->params.ae.exp_mean[4 * i + 0] = CIF_ISP_EXP_GET_MEAN_xy0_V12(value);
|
||||
}
|
||||
|
||||
static void rkisp1_stats_get_afc_meas(struct rkisp1_isp_stats_vdev *stats_vdev,
|
||||
struct rkisp1_stat_buffer *pbuf)
|
||||
{
|
||||
|
|
@ -261,17 +299,32 @@ static void rkisp1_stats_get_afc_meas(struct rkisp1_isp_stats_vdev *stats_vdev,
|
|||
af->window[2].lum = readl(base_addr + CIF_ISP_AFM_LUM_C);
|
||||
}
|
||||
|
||||
static void rkisp1_stats_get_hst_meas(struct rkisp1_isp_stats_vdev *stats_vdev,
|
||||
struct rkisp1_stat_buffer *pbuf)
|
||||
static void rkisp1_stats_get_hst_meas_v10(struct rkisp1_isp_stats_vdev *stats_vdev,
|
||||
struct rkisp1_stat_buffer *pbuf)
|
||||
{
|
||||
int i;
|
||||
void __iomem *addr = stats_vdev->dev->base_addr + CIF_ISP_HIST_BIN_0;
|
||||
void __iomem *addr = stats_vdev->dev->base_addr + CIF_ISP_HIST_BIN_0_V10;
|
||||
|
||||
pbuf->meas_type |= CIFISP_STAT_HIST;
|
||||
for (i = 0; i < CIFISP_HIST_BIN_N_MAX; i++)
|
||||
for (i = 0; i < stats_vdev->config->hist_bin_n_max; i++)
|
||||
pbuf->params.hist.hist_bins[i] = readl(addr + (i * 4));
|
||||
}
|
||||
|
||||
static void rkisp1_stats_get_hst_meas_v12(struct rkisp1_isp_stats_vdev *stats_vdev,
|
||||
struct rkisp1_stat_buffer *pbuf)
|
||||
{
|
||||
int i;
|
||||
void __iomem *addr = stats_vdev->dev->base_addr + CIF_ISP_HIST_BIN_V12;
|
||||
u32 value;
|
||||
|
||||
pbuf->meas_type |= CIFISP_STAT_HIST;
|
||||
for (i = 0; i < stats_vdev->config->hist_bin_n_max / 2; i++) {
|
||||
value = readl(addr + (i * 4));
|
||||
pbuf->params.hist.hist_bins[2 * i] = CIF_ISP_HIST_GET_BIN0_V12(value);
|
||||
pbuf->params.hist.hist_bins[2 * i + 1] = CIF_ISP_HIST_GET_BIN1_V12(value);
|
||||
}
|
||||
}
|
||||
|
||||
static void rkisp1_stats_get_bls_meas(struct rkisp1_isp_stats_vdev *stats_vdev,
|
||||
struct rkisp1_stat_buffer *pbuf)
|
||||
{
|
||||
|
|
@ -305,6 +358,32 @@ static void rkisp1_stats_get_bls_meas(struct rkisp1_isp_stats_vdev *stats_vdev,
|
|||
}
|
||||
}
|
||||
|
||||
static struct rkisp1_stats_ops rkisp1_v10_stats_ops = {
|
||||
.get_awb_meas = rkisp1_stats_get_awb_meas_v10,
|
||||
.get_aec_meas = rkisp1_stats_get_aec_meas_v10,
|
||||
.get_afc_meas = rkisp1_stats_get_afc_meas,
|
||||
.get_hst_meas = rkisp1_stats_get_hst_meas_v10,
|
||||
.get_bls_meas = rkisp1_stats_get_bls_meas,
|
||||
};
|
||||
|
||||
static struct rkisp1_stats_ops rkisp1_v12_stats_ops = {
|
||||
.get_awb_meas = rkisp1_stats_get_awb_meas_v12,
|
||||
.get_aec_meas = rkisp1_stats_get_aec_meas_v12,
|
||||
.get_afc_meas = rkisp1_stats_get_afc_meas,
|
||||
.get_hst_meas = rkisp1_stats_get_hst_meas_v12,
|
||||
.get_bls_meas = rkisp1_stats_get_bls_meas,
|
||||
};
|
||||
|
||||
static struct rkisp1_stats_config rkisp1_v10_stats_config = {
|
||||
.ae_mean_max = 25,
|
||||
.hist_bin_n_max = 16,
|
||||
};
|
||||
|
||||
static struct rkisp1_stats_config rkisp1_v12_stats_config = {
|
||||
.ae_mean_max = 81,
|
||||
.hist_bin_n_max = 32,
|
||||
};
|
||||
|
||||
static void
|
||||
rkisp1_stats_send_measurement(struct rkisp1_isp_stats_vdev *stats_vdev,
|
||||
struct rkisp1_isp_readout_work *meas_work)
|
||||
|
|
@ -312,6 +391,7 @@ rkisp1_stats_send_measurement(struct rkisp1_isp_stats_vdev *stats_vdev,
|
|||
unsigned int cur_frame_id = -1;
|
||||
struct rkisp1_stat_buffer *cur_stat_buf;
|
||||
struct rkisp1_buffer *cur_buf = NULL;
|
||||
struct rkisp1_stats_ops *ops = stats_vdev->ops;
|
||||
|
||||
cur_frame_id = atomic_read(&stats_vdev->dev->isp_sdev.frm_sync_seq) - 1;
|
||||
if (cur_frame_id != meas_work->frame_id) {
|
||||
|
|
@ -337,23 +417,23 @@ rkisp1_stats_send_measurement(struct rkisp1_isp_stats_vdev *stats_vdev,
|
|||
(struct rkisp1_stat_buffer *)(cur_buf->vaddr[0]);
|
||||
|
||||
if (meas_work->isp_ris & CIF_ISP_AWB_DONE) {
|
||||
rkisp1_stats_get_awb_meas(stats_vdev, cur_stat_buf);
|
||||
ops->get_awb_meas(stats_vdev, cur_stat_buf);
|
||||
cur_stat_buf->meas_type |= CIFISP_STAT_AWB;
|
||||
}
|
||||
|
||||
if (meas_work->isp_ris & CIF_ISP_AFM_FIN) {
|
||||
rkisp1_stats_get_afc_meas(stats_vdev, cur_stat_buf);
|
||||
ops->get_afc_meas(stats_vdev, cur_stat_buf);
|
||||
cur_stat_buf->meas_type |= CIFISP_STAT_AFM_FIN;
|
||||
}
|
||||
|
||||
if (meas_work->isp_ris & CIF_ISP_EXP_END) {
|
||||
rkisp1_stats_get_aec_meas(stats_vdev, cur_stat_buf);
|
||||
rkisp1_stats_get_bls_meas(stats_vdev, cur_stat_buf);
|
||||
ops->get_aec_meas(stats_vdev, cur_stat_buf);
|
||||
ops->get_bls_meas(stats_vdev, cur_stat_buf);
|
||||
cur_stat_buf->meas_type |= CIFISP_STAT_AUTOEXP;
|
||||
}
|
||||
|
||||
if (meas_work->isp_ris & CIF_ISP_HIST_MEASURE_RDY) {
|
||||
rkisp1_stats_get_hst_meas(stats_vdev, cur_stat_buf);
|
||||
ops->get_hst_meas(stats_vdev, cur_stat_buf);
|
||||
cur_stat_buf->meas_type |= CIFISP_STAT_HIST;
|
||||
}
|
||||
|
||||
|
|
@ -449,6 +529,14 @@ static void rkisp1_init_stats_vdev(struct rkisp1_isp_stats_vdev *stats_vdev)
|
|||
V4L2_META_FMT_RK_ISP1_STAT_3A;
|
||||
stats_vdev->vdev_fmt.fmt.meta.buffersize =
|
||||
sizeof(struct rkisp1_stat_buffer);
|
||||
|
||||
if (stats_vdev->dev->isp_ver == ISP_V12) {
|
||||
stats_vdev->ops = &rkisp1_v12_stats_ops;
|
||||
stats_vdev->config = &rkisp1_v12_stats_config;
|
||||
} else {
|
||||
stats_vdev->ops = &rkisp1_v10_stats_ops;
|
||||
stats_vdev->config = &rkisp1_v10_stats_config;
|
||||
}
|
||||
}
|
||||
|
||||
int rkisp1_register_stats_vdev(struct rkisp1_isp_stats_vdev *stats_vdev,
|
||||
|
|
|
|||
|
|
@ -55,6 +55,24 @@ struct rkisp1_isp_readout_work {
|
|||
struct vb2_buffer *vb;
|
||||
};
|
||||
|
||||
struct rkisp1_stats_ops {
|
||||
void (*get_awb_meas)(struct rkisp1_isp_stats_vdev *stats_vdev,
|
||||
struct rkisp1_stat_buffer *pbuf);
|
||||
void (*get_aec_meas)(struct rkisp1_isp_stats_vdev *stats_vdev,
|
||||
struct rkisp1_stat_buffer *pbuf);
|
||||
void (*get_afc_meas)(struct rkisp1_isp_stats_vdev *stats_vdev,
|
||||
struct rkisp1_stat_buffer *pbuf);
|
||||
void (*get_hst_meas)(struct rkisp1_isp_stats_vdev *stats_vdev,
|
||||
struct rkisp1_stat_buffer *pbuf);
|
||||
void (*get_bls_meas)(struct rkisp1_isp_stats_vdev *stats_vdev,
|
||||
struct rkisp1_stat_buffer *pbuf);
|
||||
};
|
||||
|
||||
struct rkisp1_stats_config {
|
||||
const int ae_mean_max;
|
||||
const int hist_bin_n_max;
|
||||
};
|
||||
|
||||
/*
|
||||
* struct rkisp1_isp_stats_vdev - ISP Statistics device
|
||||
*
|
||||
|
|
@ -73,6 +91,9 @@ struct rkisp1_isp_stats_vdev {
|
|||
|
||||
struct workqueue_struct *readout_wq;
|
||||
struct mutex wq_lock;
|
||||
|
||||
struct rkisp1_stats_ops *ops;
|
||||
struct rkisp1_stats_config *config;
|
||||
};
|
||||
|
||||
int rkisp1_stats_isr(struct rkisp1_isp_stats_vdev *stats_vdev, u32 isp_ris);
|
||||
|
|
|
|||
|
|
@ -374,25 +374,57 @@
|
|||
#define CIF_SUPER_IMP_CTRL_TRANSP_DIS BIT(2)
|
||||
|
||||
/* ISP HISTOGRAM CALCULATION : ISP_HIST_PROP */
|
||||
#define CIF_ISP_HIST_PROP_MODE_DIS (0 << 0)
|
||||
#define CIF_ISP_HIST_PROP_MODE_RGB (1 << 0)
|
||||
#define CIF_ISP_HIST_PROP_MODE_RED (2 << 0)
|
||||
#define CIF_ISP_HIST_PROP_MODE_GREEN (3 << 0)
|
||||
#define CIF_ISP_HIST_PROP_MODE_BLUE (4 << 0)
|
||||
#define CIF_ISP_HIST_PROP_MODE_LUM (5 << 0)
|
||||
#define CIF_ISP_HIST_PROP_MODE_MASK 0x7
|
||||
#define CIF_ISP_HIST_PREDIV_SET(x) (((x) & 0x7F) << 3)
|
||||
#define CIF_ISP_HIST_WEIGHT_SET(v0, v1, v2, v3) \
|
||||
#define CIF_ISP_HIST_PROP_MODE_DIS_V10 (0 << 0)
|
||||
#define CIF_ISP_HIST_PROP_MODE_RGB_V10 (1 << 0)
|
||||
#define CIF_ISP_HIST_PROP_MODE_RED_V10 (2 << 0)
|
||||
#define CIF_ISP_HIST_PROP_MODE_GREEN_V10 (3 << 0)
|
||||
#define CIF_ISP_HIST_PROP_MODE_BLUE_V10 (4 << 0)
|
||||
#define CIF_ISP_HIST_PROP_MODE_LUM_V10 (5 << 0)
|
||||
#define CIF_ISP_HIST_PROP_MODE_MASK_V10 0x7
|
||||
#define CIF_ISP_HIST_PREDIV_SET_V10(x) (((x) & 0x7F) << 3)
|
||||
#define CIF_ISP_HIST_WEIGHT_SET_V10(v0, v1, v2, v3) \
|
||||
(((v0) & 0x1F) | (((v1) & 0x1F) << 8) |\
|
||||
(((v2) & 0x1F) << 16) | \
|
||||
(((v3) & 0x1F) << 24))
|
||||
|
||||
#define CIF_ISP_HIST_WINDOW_OFFSET_RESERVED 0xFFFFF000
|
||||
#define CIF_ISP_HIST_WINDOW_SIZE_RESERVED 0xFFFFF800
|
||||
#define CIF_ISP_HIST_WEIGHT_RESERVED 0xE0E0E0E0
|
||||
#define CIF_ISP_MAX_HIST_PREDIVIDER 0x0000007F
|
||||
#define CIF_ISP_HIST_ROW_NUM 5
|
||||
#define CIF_ISP_HIST_COLUMN_NUM 5
|
||||
#define CIF_ISP_HIST_WINDOW_OFFSET_RESERVED_V10 0xFFFFF000
|
||||
#define CIF_ISP_HIST_WINDOW_SIZE_RESERVED_V10 0xFFFFF800
|
||||
#define CIF_ISP_HIST_WEIGHT_RESERVED_V10 0xE0E0E0E0
|
||||
#define CIF_ISP_MAX_HIST_PREDIVIDER_V10 0x0000007F
|
||||
#define CIF_ISP_HIST_ROW_NUM_V10 5
|
||||
#define CIF_ISP_HIST_COLUMN_NUM_V10 5
|
||||
|
||||
/* ISP HISTOGRAM CALCULATION : CIF_ISP_HIST */
|
||||
#define CIF_ISP_HIST_CTRL_EN_SET_V12(x) (((x) & 0x01) << 0)
|
||||
#define CIF_ISP_HIST_CTRL_EN_MASK_V12 CIF_ISP_HIST_CTRL_EN_SET_V12(0x01)
|
||||
#define CIF_ISP_HIST_CTRL_STEPSIZE_SET_V12(x) (((x) & 0x7F) << 1)
|
||||
#define CIF_ISP_HIST_CTRL_MODE_SET_V12(x) (((x) & 0x07) << 8)
|
||||
#define CIF_ISP_HIST_CTRL_MODE_MASK_V12 CIF_ISP_HIST_CTRL_MODE_SET_V12(0x07)
|
||||
#define CIF_ISP_HIST_CTRL_AUTOSTOP_SET_V12(x) (((x) & 0x01) << 11)
|
||||
#define CIF_ISP_HIST_CTRL_WATERLINE_SET_V12(x) (((x) & 0xFFF) << 12)
|
||||
#define CIF_ISP_HIST_CTRL_DATASEL_SET_V12(x) (((x) & 0x07) << 24)
|
||||
#define CIF_ISP_HIST_CTRL_INTRSEL_SET_V12(x) (((x) & 0x01) << 27)
|
||||
#define CIF_ISP_HIST_CTRL_WNDNUM_SET_V12(x) (((x) & 0x03) << 28)
|
||||
#define CIF_ISP_HIST_CTRL_DBGEN_SET_V12(x) (((x) & 0x01) << 30)
|
||||
#define CIF_ISP_HIST_ROW_NUM_V12 15
|
||||
#define CIF_ISP_HIST_COLUMN_NUM_V12 15
|
||||
#define CIF_ISP_HIST_WEIGHT_REG_SIZE_V12 \
|
||||
(CIF_ISP_HIST_ROW_NUM_V12 * CIF_ISP_HIST_COLUMN_NUM_V12)
|
||||
|
||||
#define CIF_ISP_HIST_WEIGHT_SET_V12(v0, v1, v2, v3) \
|
||||
(((v0) & 0x3F) | (((v1) & 0x3F) << 8) |\
|
||||
(((v2) & 0x3F) << 16) |\
|
||||
(((v3) & 0x3F) << 24))
|
||||
|
||||
#define CIF_ISP_HIST_OFFS_SET_V12(v0, v1) \
|
||||
(((v0) & 0x1FFF) | (((v1) & 0x1FFF) << 16))
|
||||
#define CIF_ISP_HIST_SIZE_SET_V12(v0, v1) \
|
||||
(((v0) & 0x7FF) | (((v1) & 0x7FF) << 16))
|
||||
|
||||
#define CIF_ISP_HIST_GET_BIN0_V12(x) \
|
||||
((x) & 0xFFFF)
|
||||
#define CIF_ISP_HIST_GET_BIN1_V12(x) \
|
||||
(((x) >> 16) & 0xFFFF)
|
||||
|
||||
/* AUTO FOCUS MEASUREMENT: ISP_AFM_CTRL */
|
||||
#define ISP_AFM_CTRL_ENABLE BIT(0)
|
||||
|
|
@ -423,17 +455,18 @@
|
|||
/* AWB */
|
||||
/* ISP_AWB_PROP */
|
||||
#define CIF_ISP_AWB_YMAX_CMP_EN BIT(2)
|
||||
#define CIFISP_AWB_YMAX_READ(x) (((x) >> 2) & 1)
|
||||
#define CIF_ISP_AWB_YMAX_READ(x) (((x) >> 2) & 1)
|
||||
#define CIF_ISP_AWB_MODE_RGB_EN ((1 << 31) | (0x2 << 0))
|
||||
#define CIF_ISP_AWB_MODE_YCBCR_EN ((0 << 31) | (0x2 << 0))
|
||||
#define CIF_ISP_AWB_MODE_YCBCR_EN ((0 << 31) | (0x2 << 0))
|
||||
#define CIF_ISP_AWB_MODE_MASK_NONE 0xFFFFFFFC
|
||||
#define CIF_ISP_AWB_MODE_READ(x) ((x) & 3)
|
||||
#define CIF_ISP_AWB_SET_FRAMES_V12(x) (((x) & 0x07) << 28)
|
||||
#define CIF_ISP_AWB_SET_FRAMES_MASK_V12 CIF_ISP_AWB_SET_FRAMES_V12(0x07)
|
||||
/* ISP_AWB_GAIN_RB, ISP_AWB_GAIN_G */
|
||||
#define CIF_ISP_AWB_GAIN_R_SET(x) (((x) & 0x3FF) << 16)
|
||||
#define CIF_ISP_AWB_GAIN_R_READ(x) (((x) >> 16) & 0x3FF)
|
||||
#define CIF_ISP_AWB_GAIN_B_SET(x) ((x) & 0x3FFF)
|
||||
#define CIF_ISP_AWB_GAIN_B_READ(x) ((x) & 0x3FFF)
|
||||
#define CIF_ISP_AWB_GAIN_B_SET(x) ((x) & 0x3FF)
|
||||
#define CIF_ISP_AWB_GAIN_B_READ(x) ((x) & 0x3FF)
|
||||
/* ISP_AWB_REF */
|
||||
#define CIF_ISP_AWB_REF_CR_SET(x) (((x) & 0xFF) << 8)
|
||||
#define CIF_ISP_AWB_REF_CR_READ(x) (((x) >> 8) & 0xFF)
|
||||
|
|
@ -463,6 +496,7 @@
|
|||
/* ISP_EXP_CTRL */
|
||||
#define CIF_ISP_EXP_ENA BIT(0)
|
||||
#define CIF_ISP_EXP_CTRL_AUTOSTOP BIT(1)
|
||||
#define CIF_ISP_EXP_CTRL_WNDNUM_SET_V12(x) (((x) & 0x03) << 2)
|
||||
/*
|
||||
*'1' luminance calculation according to Y=(R+G+B) x 0.332 (85/256)
|
||||
*'0' luminance calculation according to Y=16+0.25R+0.5G+0.1094B
|
||||
|
|
@ -470,43 +504,82 @@
|
|||
#define CIF_ISP_EXP_CTRL_MEASMODE_1 BIT(31)
|
||||
|
||||
/* ISP_EXP_H_SIZE */
|
||||
#define CIF_ISP_EXP_H_SIZE_SET(x) ((x) & 0x7FF)
|
||||
#define CIF_ISP_EXP_HEIGHT_MASK 0x000007FF
|
||||
#define CIF_ISP_EXP_H_SIZE_SET_V10(x) ((x) & 0x7FF)
|
||||
#define CIF_ISP_EXP_HEIGHT_MASK_V10 0x000007FF
|
||||
/* ISP_EXP_V_SIZE : vertical size must be a multiple of 2). */
|
||||
#define CIF_ISP_EXP_V_SIZE_SET(x) ((x) & 0x7FE)
|
||||
#define CIF_ISP_EXP_V_SIZE_SET_V10(x) ((x) & 0x7FE)
|
||||
|
||||
/* ISP_EXP_H_OFFSET */
|
||||
#define CIF_ISP_EXP_H_OFFSET_SET(x) ((x) & 0x1FFF)
|
||||
#define CIF_ISP_EXP_MAX_HOFFS 2424
|
||||
#define CIF_ISP_EXP_H_OFFSET_SET_V10(x) ((x) & 0x1FFF)
|
||||
#define CIF_ISP_EXP_MAX_HOFFS_V10 2424
|
||||
/* ISP_EXP_V_OFFSET */
|
||||
#define CIF_ISP_EXP_V_OFFSET_SET(x) ((x) & 0x1FFF)
|
||||
#define CIF_ISP_EXP_MAX_VOFFS 1806
|
||||
#define CIF_ISP_EXP_V_OFFSET_SET_V10(x) ((x) & 0x1FFF)
|
||||
#define CIF_ISP_EXP_MAX_VOFFS_V10 1806
|
||||
|
||||
#define CIF_ISP_EXP_ROW_NUM 5
|
||||
#define CIF_ISP_EXP_COLUMN_NUM 5
|
||||
#define CIF_ISP_EXP_NUM_LUMA_REGS \
|
||||
(CIF_ISP_EXP_ROW_NUM * CIF_ISP_EXP_COLUMN_NUM)
|
||||
#define CIF_ISP_EXP_BLOCK_MAX_HSIZE 516
|
||||
#define CIF_ISP_EXP_BLOCK_MIN_HSIZE 35
|
||||
#define CIF_ISP_EXP_BLOCK_MAX_VSIZE 390
|
||||
#define CIF_ISP_EXP_BLOCK_MIN_VSIZE 28
|
||||
#define CIF_ISP_EXP_MAX_HSIZE \
|
||||
(CIF_ISP_EXP_BLOCK_MAX_HSIZE * CIF_ISP_EXP_COLUMN_NUM + 1)
|
||||
#define CIF_ISP_EXP_MIN_HSIZE \
|
||||
(CIF_ISP_EXP_BLOCK_MIN_HSIZE * CIF_ISP_EXP_COLUMN_NUM + 1)
|
||||
#define CIF_ISP_EXP_MAX_VSIZE \
|
||||
(CIF_ISP_EXP_BLOCK_MAX_VSIZE * CIF_ISP_EXP_ROW_NUM + 1)
|
||||
#define CIF_ISP_EXP_MIN_VSIZE \
|
||||
(CIF_ISP_EXP_BLOCK_MIN_VSIZE * CIF_ISP_EXP_ROW_NUM + 1)
|
||||
#define CIF_ISP_EXP_ROW_NUM_V10 5
|
||||
#define CIF_ISP_EXP_COLUMN_NUM_V10 5
|
||||
#define CIF_ISP_EXP_NUM_LUMA_REGS_V10 \
|
||||
(CIF_ISP_EXP_ROW_NUM_V10 * CIF_ISP_EXP_COLUMN_NUM_V10)
|
||||
#define CIF_ISP_EXP_BLOCK_MAX_HSIZE_V10 516
|
||||
#define CIF_ISP_EXP_BLOCK_MIN_HSIZE_V10 35
|
||||
#define CIF_ISP_EXP_BLOCK_MAX_VSIZE_V10 390
|
||||
#define CIF_ISP_EXP_BLOCK_MIN_VSIZE_V10 28
|
||||
#define CIF_ISP_EXP_MAX_HSIZE_V10 \
|
||||
(CIF_ISP_EXP_BLOCK_MAX_HSIZE_V10 * CIF_ISP_EXP_COLUMN_NUM_V10 + 1)
|
||||
#define CIF_ISP_EXP_MIN_HSIZE_V10 \
|
||||
(CIF_ISP_EXP_BLOCK_MIN_HSIZE_V10 * CIF_ISP_EXP_COLUMN_NUM_V10 + 1)
|
||||
#define CIF_ISP_EXP_MAX_VSIZE_V10 \
|
||||
(CIF_ISP_EXP_BLOCK_MAX_VSIZE_V10 * CIF_ISP_EXP_ROW_NUM_V10 + 1)
|
||||
#define CIF_ISP_EXP_MIN_VSIZE_V10 \
|
||||
(CIF_ISP_EXP_BLOCK_MIN_VSIZE_V10 * CIF_ISP_EXP_ROW_NUM_V10 + 1)
|
||||
|
||||
/* ISP_EXP_H_SIZE */
|
||||
#define CIF_ISP_EXP_H_SIZE_SET_V12(x) ((x) & 0x7FF)
|
||||
#define CIF_ISP_EXP_HEIGHT_MASK_V12 0x000007FF
|
||||
/* ISP_EXP_V_SIZE : vertical size must be a multiple of 2). */
|
||||
#define CIF_ISP_EXP_V_SIZE_SET_V12(x) (((x) & 0x7FE) << 16)
|
||||
|
||||
/* ISP_EXP_H_OFFSET */
|
||||
#define CIF_ISP_EXP_H_OFFSET_SET_V12(x) ((x) & 0x1FFF)
|
||||
#define CIF_ISP_EXP_MAX_HOFFS_V12 0x1FFF
|
||||
/* ISP_EXP_V_OFFSET */
|
||||
#define CIF_ISP_EXP_V_OFFSET_SET_V12(x) (((x) & 0x1FFF) << 16)
|
||||
#define CIF_ISP_EXP_MAX_VOFFS_V12 0x1FFF
|
||||
|
||||
#define CIF_ISP_EXP_ROW_NUM_V12 15
|
||||
#define CIF_ISP_EXP_COLUMN_NUM_V12 15
|
||||
#define CIF_ISP_EXP_NUM_LUMA_REGS_V12 \
|
||||
(CIF_ISP_EXP_ROW_NUM_V12 * CIF_ISP_EXP_COLUMN_NUM_V12)
|
||||
#define CIF_ISP_EXP_BLOCK_MAX_HSIZE_V12 0x7FF
|
||||
#define CIF_ISP_EXP_BLOCK_MIN_HSIZE_V12 0xE
|
||||
#define CIF_ISP_EXP_BLOCK_MAX_VSIZE_V12 0x7FE
|
||||
#define CIF_ISP_EXP_BLOCK_MIN_VSIZE_V12 0xE
|
||||
#define CIF_ISP_EXP_MAX_HSIZE_V12 \
|
||||
(CIF_ISP_EXP_BLOCK_MAX_HSIZE_V12 * CIF_ISP_EXP_COLUMN_NUM_V12 + 1)
|
||||
#define CIF_ISP_EXP_MIN_HSIZE_V12 \
|
||||
(CIF_ISP_EXP_BLOCK_MIN_HSIZE_V12 * CIF_ISP_EXP_COLUMN_NUM_V12 + 1)
|
||||
#define CIF_ISP_EXP_MAX_VSIZE_V12 \
|
||||
(CIF_ISP_EXP_BLOCK_MAX_VSIZE_V12 * CIF_ISP_EXP_ROW_NUM_V12 + 1)
|
||||
#define CIF_ISP_EXP_MIN_VSIZE_V12 \
|
||||
(CIF_ISP_EXP_BLOCK_MIN_VSIZE_V12 * CIF_ISP_EXP_ROW_NUM_V12 + 1)
|
||||
|
||||
#define CIF_ISP_EXP_GET_MEAN_xy0_V12(x) ((x) & 0xFF)
|
||||
#define CIF_ISP_EXP_GET_MEAN_xy1_V12(x) (((x) >> 8) & 0xFF)
|
||||
#define CIF_ISP_EXP_GET_MEAN_xy2_V12(x) (((x) >> 16) & 0xFF)
|
||||
#define CIF_ISP_EXP_GET_MEAN_xy3_V12(x) (((x) >> 24) & 0xFF)
|
||||
|
||||
/* LSC: ISP_LSC_CTRL */
|
||||
#define CIF_ISP_LSC_CTRL_ENA BIT(0)
|
||||
#define CIF_ISP_LSC_SECT_SIZE_RESERVED 0xFC00FC00
|
||||
#define CIF_ISP_LSC_GRAD_RESERVED 0xF000F000
|
||||
#define CIF_ISP_LSC_SAMPLE_RESERVED 0xF000F000
|
||||
#define CIF_ISP_LSC_GRAD_RESERVED_V10 0xF000F000
|
||||
#define CIF_ISP_LSC_SAMPLE_RESERVED_V10 0xF000F000
|
||||
#define CIF_ISP_LSC_GRAD_RESERVED_V12 0xE000E000
|
||||
#define CIF_ISP_LSC_SAMPLE_RESERVED_V12 0xE000E000
|
||||
#define CIF_ISP_LSC_SECTORS_MAX 17
|
||||
#define CIF_ISP_LSC_TABLE_DATA(v0, v1) \
|
||||
#define CIF_ISP_LSC_TABLE_DATA_V10(v0, v1) \
|
||||
(((v0) & 0xFFF) | (((v1) & 0xFFF) << 12))
|
||||
#define CIF_ISP_LSC_TABLE_DATA_V12(v0, v1) \
|
||||
(((v0) & 0x1FFF) | (((v1) & 0x1FFF) << 13))
|
||||
#define CIF_ISP_LSC_SECT_SIZE(v0, v1) \
|
||||
(((v0) & 0xFFF) | (((v1) & 0xFFF) << 16))
|
||||
#define CIF_ISP_LSC_GRAD_SIZE(v0, v1) \
|
||||
|
|
@ -579,6 +652,10 @@
|
|||
(1 << 15) | (1 << 11) | (1 << 7) | (1 << 3))
|
||||
#define CIFISP_DEGAMMA_Y_RESERVED 0xFFFFF000
|
||||
|
||||
/* GAMMA-OUT */
|
||||
#define CIF_ISP_GAMMA_REG_VALUE_V12(x, y) \
|
||||
(((x) & 0xFFF) << 16 | ((y) & 0xFFF) << 0)
|
||||
|
||||
/* AFM */
|
||||
#define CIF_ISP_AFM_ENA BIT(0)
|
||||
#define CIF_ISP_AFM_THRES_RESERVED 0xFFFF0000
|
||||
|
|
@ -589,6 +666,11 @@
|
|||
#define CIF_ISP_AFM_WINDOW_Y_MIN 0x2
|
||||
#define CIF_ISP_AFM_WINDOW_X(x) (((x) & 0x1FFF) << 16)
|
||||
#define CIF_ISP_AFM_WINDOW_Y(x) ((x) & 0x1FFF)
|
||||
#define CIF_ISP_AFM_SET_SHIFT_a_V12(x, y) (((x) & 0x7) << 16 | ((y) & 0x7) << 0)
|
||||
#define CIF_ISP_AFM_SET_SHIFT_b_V12(x, y) (((x) & 0x7) << 20 | ((y) & 0x7) << 4)
|
||||
#define CIF_ISP_AFM_SET_SHIFT_c_V12(x, y) (((x) & 0x7) << 24 | ((y) & 0x7) << 8)
|
||||
#define CIF_ISP_AFM_GET_LUM_SHIFT_a_V12(x) (((x) & 0x70000) >> 16)
|
||||
#define CIF_ISP_AFM_GET_AFM_SHIFT_a_V12(x) ((x) & 0x7)
|
||||
|
||||
/* DPF */
|
||||
#define CIF_ISP_DPF_MODE_EN BIT(0)
|
||||
|
|
@ -696,18 +778,38 @@
|
|||
#define CIF_ISP_GAMMA_B_Y14 (CIF_ISP_BASE + 0x000000E4)
|
||||
#define CIF_ISP_GAMMA_B_Y15 (CIF_ISP_BASE + 0x000000E8)
|
||||
#define CIF_ISP_GAMMA_B_Y16 (CIF_ISP_BASE + 0x000000EC)
|
||||
#define CIF_ISP_AWB_PROP (CIF_ISP_BASE + 0x00000110)
|
||||
#define CIF_ISP_AWB_WND_H_OFFS (CIF_ISP_BASE + 0x00000114)
|
||||
#define CIF_ISP_AWB_WND_V_OFFS (CIF_ISP_BASE + 0x00000118)
|
||||
#define CIF_ISP_AWB_WND_H_SIZE (CIF_ISP_BASE + 0x0000011C)
|
||||
#define CIF_ISP_AWB_WND_V_SIZE (CIF_ISP_BASE + 0x00000120)
|
||||
#define CIF_ISP_AWB_FRAMES (CIF_ISP_BASE + 0x00000124)
|
||||
#define CIF_ISP_AWB_REF (CIF_ISP_BASE + 0x00000128)
|
||||
#define CIF_ISP_AWB_THRESH (CIF_ISP_BASE + 0x0000012C)
|
||||
#define CIF_ISP_AWB_GAIN_G (CIF_ISP_BASE + 0x00000138)
|
||||
#define CIF_ISP_AWB_GAIN_RB (CIF_ISP_BASE + 0x0000013C)
|
||||
#define CIF_ISP_AWB_WHITE_CNT (CIF_ISP_BASE + 0x00000140)
|
||||
#define CIF_ISP_AWB_MEAN (CIF_ISP_BASE + 0x00000144)
|
||||
|
||||
#define CIF_ISP_AWB_PROP_V10 (CIF_ISP_BASE + 0x00000110)
|
||||
#define CIF_ISP_AWB_WND_H_OFFS_V10 (CIF_ISP_BASE + 0x00000114)
|
||||
#define CIF_ISP_AWB_WND_V_OFFS_V10 (CIF_ISP_BASE + 0x00000118)
|
||||
#define CIF_ISP_AWB_WND_H_SIZE_V10 (CIF_ISP_BASE + 0x0000011C)
|
||||
#define CIF_ISP_AWB_WND_V_SIZE_V10 (CIF_ISP_BASE + 0x00000120)
|
||||
#define CIF_ISP_AWB_FRAMES_V10 (CIF_ISP_BASE + 0x00000124)
|
||||
#define CIF_ISP_AWB_REF_V10 (CIF_ISP_BASE + 0x00000128)
|
||||
#define CIF_ISP_AWB_THRESH_V10 (CIF_ISP_BASE + 0x0000012C)
|
||||
#define CIF_ISP_AWB_GAIN_G_V10 (CIF_ISP_BASE + 0x00000138)
|
||||
#define CIF_ISP_AWB_GAIN_RB_V10 (CIF_ISP_BASE + 0x0000013C)
|
||||
#define CIF_ISP_AWB_WHITE_CNT_V10 (CIF_ISP_BASE + 0x00000140)
|
||||
#define CIF_ISP_AWB_MEAN_V10 (CIF_ISP_BASE + 0x00000144)
|
||||
|
||||
#define CIF_ISP_AWB_PROP_V12 (CIF_ISP_BASE + 0x00000110)
|
||||
#define CIF_ISP_AWB_SIZE_V12 (CIF_ISP_BASE + 0x00000114)
|
||||
#define CIF_ISP_AWB_OFFS_V12 (CIF_ISP_BASE + 0x00000118)
|
||||
#define CIF_ISP_AWB_REF_V12 (CIF_ISP_BASE + 0x0000011C)
|
||||
#define CIF_ISP_AWB_THRESH_V12 (CIF_ISP_BASE + 0x00000120)
|
||||
#define CIF_ISP_X_COOR12_V12 (CIF_ISP_BASE + 0x00000124)
|
||||
#define CIF_ISP_X_COOR34_V12 (CIF_ISP_BASE + 0x00000128)
|
||||
#define CIF_ISP_AWB_WHITE_CNT_V12 (CIF_ISP_BASE + 0x0000012C)
|
||||
#define CIF_ISP_AWB_MEAN_V12 (CIF_ISP_BASE + 0x00000130)
|
||||
#define CIF_ISP_DEGAIN_V12 (CIF_ISP_BASE + 0x00000134)
|
||||
#define CIF_ISP_AWB_GAIN_G_V12 (CIF_ISP_BASE + 0x00000138)
|
||||
#define CIF_ISP_AWB_GAIN_RB_V12 (CIF_ISP_BASE + 0x0000013C)
|
||||
#define CIF_ISP_REGION_LINE_V12 (CIF_ISP_BASE + 0x00000140)
|
||||
#define CIF_ISP_WP_CNT_REGION0_V12 (CIF_ISP_BASE + 0x00000160)
|
||||
#define CIF_ISP_WP_CNT_REGION1_V12 (CIF_ISP_BASE + 0x00000164)
|
||||
#define CIF_ISP_WP_CNT_REGION2_V12 (CIF_ISP_BASE + 0x00000168)
|
||||
#define CIF_ISP_WP_CNT_REGION3_V12 (CIF_ISP_BASE + 0x0000016C)
|
||||
|
||||
#define CIF_ISP_CC_COEFF_0 (CIF_ISP_BASE + 0x00000170)
|
||||
#define CIF_ISP_CC_COEFF_1 (CIF_ISP_BASE + 0x00000174)
|
||||
#define CIF_ISP_CC_COEFF_2 (CIF_ISP_BASE + 0x00000178)
|
||||
|
|
@ -741,30 +843,32 @@
|
|||
#define CIF_ISP_CT_COEFF_6 (CIF_ISP_BASE + 0x000001E8)
|
||||
#define CIF_ISP_CT_COEFF_7 (CIF_ISP_BASE + 0x000001EC)
|
||||
#define CIF_ISP_CT_COEFF_8 (CIF_ISP_BASE + 0x000001F0)
|
||||
#define CIF_ISP_GAMMA_OUT_MODE (CIF_ISP_BASE + 0x000001F4)
|
||||
#define CIF_ISP_GAMMA_OUT_Y_0 (CIF_ISP_BASE + 0x000001F8)
|
||||
#define CIF_ISP_GAMMA_OUT_Y_1 (CIF_ISP_BASE + 0x000001FC)
|
||||
#define CIF_ISP_GAMMA_OUT_Y_2 (CIF_ISP_BASE + 0x00000200)
|
||||
#define CIF_ISP_GAMMA_OUT_Y_3 (CIF_ISP_BASE + 0x00000204)
|
||||
#define CIF_ISP_GAMMA_OUT_Y_4 (CIF_ISP_BASE + 0x00000208)
|
||||
#define CIF_ISP_GAMMA_OUT_Y_5 (CIF_ISP_BASE + 0x0000020C)
|
||||
#define CIF_ISP_GAMMA_OUT_Y_6 (CIF_ISP_BASE + 0x00000210)
|
||||
#define CIF_ISP_GAMMA_OUT_Y_7 (CIF_ISP_BASE + 0x00000214)
|
||||
#define CIF_ISP_GAMMA_OUT_Y_8 (CIF_ISP_BASE + 0x00000218)
|
||||
#define CIF_ISP_GAMMA_OUT_Y_9 (CIF_ISP_BASE + 0x0000021C)
|
||||
#define CIF_ISP_GAMMA_OUT_Y_10 (CIF_ISP_BASE + 0x00000220)
|
||||
#define CIF_ISP_GAMMA_OUT_Y_11 (CIF_ISP_BASE + 0x00000224)
|
||||
#define CIF_ISP_GAMMA_OUT_Y_12 (CIF_ISP_BASE + 0x00000228)
|
||||
#define CIF_ISP_GAMMA_OUT_Y_13 (CIF_ISP_BASE + 0x0000022C)
|
||||
#define CIF_ISP_GAMMA_OUT_Y_14 (CIF_ISP_BASE + 0x00000230)
|
||||
#define CIF_ISP_GAMMA_OUT_Y_15 (CIF_ISP_BASE + 0x00000234)
|
||||
#define CIF_ISP_GAMMA_OUT_Y_16 (CIF_ISP_BASE + 0x00000238)
|
||||
#define CIF_ISP_GAMMA_OUT_MODE_V10 (CIF_ISP_BASE + 0x000001F4)
|
||||
#define CIF_ISP_GAMMA_OUT_Y_0_V10 (CIF_ISP_BASE + 0x000001F8)
|
||||
#define CIF_ISP_GAMMA_OUT_Y_1_V10 (CIF_ISP_BASE + 0x000001FC)
|
||||
#define CIF_ISP_GAMMA_OUT_Y_2_V10 (CIF_ISP_BASE + 0x00000200)
|
||||
#define CIF_ISP_GAMMA_OUT_Y_3_V10 (CIF_ISP_BASE + 0x00000204)
|
||||
#define CIF_ISP_GAMMA_OUT_Y_4_V10 (CIF_ISP_BASE + 0x00000208)
|
||||
#define CIF_ISP_GAMMA_OUT_Y_5_V10 (CIF_ISP_BASE + 0x0000020C)
|
||||
#define CIF_ISP_GAMMA_OUT_Y_6_V10 (CIF_ISP_BASE + 0x00000210)
|
||||
#define CIF_ISP_GAMMA_OUT_Y_7_V10 (CIF_ISP_BASE + 0x00000214)
|
||||
#define CIF_ISP_GAMMA_OUT_Y_8_V10 (CIF_ISP_BASE + 0x00000218)
|
||||
#define CIF_ISP_GAMMA_OUT_Y_9_V10 (CIF_ISP_BASE + 0x0000021C)
|
||||
#define CIF_ISP_GAMMA_OUT_Y_10_V10 (CIF_ISP_BASE + 0x00000220)
|
||||
#define CIF_ISP_GAMMA_OUT_Y_11_V10 (CIF_ISP_BASE + 0x00000224)
|
||||
#define CIF_ISP_GAMMA_OUT_Y_12_V10 (CIF_ISP_BASE + 0x00000228)
|
||||
#define CIF_ISP_GAMMA_OUT_Y_13_V10 (CIF_ISP_BASE + 0x0000022C)
|
||||
#define CIF_ISP_GAMMA_OUT_Y_14_V10 (CIF_ISP_BASE + 0x00000230)
|
||||
#define CIF_ISP_GAMMA_OUT_Y_15_V10 (CIF_ISP_BASE + 0x00000234)
|
||||
#define CIF_ISP_GAMMA_OUT_Y_16_V10 (CIF_ISP_BASE + 0x00000238)
|
||||
#define CIF_ISP_ERR (CIF_ISP_BASE + 0x0000023C)
|
||||
#define CIF_ISP_ERR_CLR (CIF_ISP_BASE + 0x00000240)
|
||||
#define CIF_ISP_FRAME_COUNT (CIF_ISP_BASE + 0x00000244)
|
||||
#define CIF_ISP_CT_OFFSET_R (CIF_ISP_BASE + 0x00000248)
|
||||
#define CIF_ISP_CT_OFFSET_G (CIF_ISP_BASE + 0x0000024C)
|
||||
#define CIF_ISP_CT_OFFSET_B (CIF_ISP_BASE + 0x00000250)
|
||||
#define CIF_ISP_GAMMA_OUT_MODE_V12 (CIF_ISP_BASE + 0x00000300)
|
||||
#define CIF_ISP_GAMMA_OUT_Y_0_V12 (CIF_ISP_BASE + 0x00000304)
|
||||
|
||||
#define CIF_ISP_FLASH_BASE 0x00000660
|
||||
#define CIF_ISP_FLASH_CMD (CIF_ISP_FLASH_BASE + 0x00000000)
|
||||
|
|
@ -1034,36 +1138,35 @@
|
|||
#define CIF_ISP_IS_H_SIZE_SHD (CIF_ISP_IS_BASE + 0x0000002C)
|
||||
#define CIF_ISP_IS_V_SIZE_SHD (CIF_ISP_IS_BASE + 0x00000030)
|
||||
|
||||
#define CIF_ISP_HIST_BASE 0x00002400
|
||||
|
||||
#define CIF_ISP_HIST_PROP (CIF_ISP_HIST_BASE + 0x00000000)
|
||||
#define CIF_ISP_HIST_H_OFFS (CIF_ISP_HIST_BASE + 0x00000004)
|
||||
#define CIF_ISP_HIST_V_OFFS (CIF_ISP_HIST_BASE + 0x00000008)
|
||||
#define CIF_ISP_HIST_H_SIZE (CIF_ISP_HIST_BASE + 0x0000000C)
|
||||
#define CIF_ISP_HIST_V_SIZE (CIF_ISP_HIST_BASE + 0x00000010)
|
||||
#define CIF_ISP_HIST_BIN_0 (CIF_ISP_HIST_BASE + 0x00000014)
|
||||
#define CIF_ISP_HIST_BIN_1 (CIF_ISP_HIST_BASE + 0x00000018)
|
||||
#define CIF_ISP_HIST_BIN_2 (CIF_ISP_HIST_BASE + 0x0000001C)
|
||||
#define CIF_ISP_HIST_BIN_3 (CIF_ISP_HIST_BASE + 0x00000020)
|
||||
#define CIF_ISP_HIST_BIN_4 (CIF_ISP_HIST_BASE + 0x00000024)
|
||||
#define CIF_ISP_HIST_BIN_5 (CIF_ISP_HIST_BASE + 0x00000028)
|
||||
#define CIF_ISP_HIST_BIN_6 (CIF_ISP_HIST_BASE + 0x0000002C)
|
||||
#define CIF_ISP_HIST_BIN_7 (CIF_ISP_HIST_BASE + 0x00000030)
|
||||
#define CIF_ISP_HIST_BIN_8 (CIF_ISP_HIST_BASE + 0x00000034)
|
||||
#define CIF_ISP_HIST_BIN_9 (CIF_ISP_HIST_BASE + 0x00000038)
|
||||
#define CIF_ISP_HIST_BIN_10 (CIF_ISP_HIST_BASE + 0x0000003C)
|
||||
#define CIF_ISP_HIST_BIN_11 (CIF_ISP_HIST_BASE + 0x00000040)
|
||||
#define CIF_ISP_HIST_BIN_12 (CIF_ISP_HIST_BASE + 0x00000044)
|
||||
#define CIF_ISP_HIST_BIN_13 (CIF_ISP_HIST_BASE + 0x00000048)
|
||||
#define CIF_ISP_HIST_BIN_14 (CIF_ISP_HIST_BASE + 0x0000004C)
|
||||
#define CIF_ISP_HIST_BIN_15 (CIF_ISP_HIST_BASE + 0x00000050)
|
||||
#define CIF_ISP_HIST_WEIGHT_00TO30 (CIF_ISP_HIST_BASE + 0x00000054)
|
||||
#define CIF_ISP_HIST_WEIGHT_40TO21 (CIF_ISP_HIST_BASE + 0x00000058)
|
||||
#define CIF_ISP_HIST_WEIGHT_31TO12 (CIF_ISP_HIST_BASE + 0x0000005C)
|
||||
#define CIF_ISP_HIST_WEIGHT_22TO03 (CIF_ISP_HIST_BASE + 0x00000060)
|
||||
#define CIF_ISP_HIST_WEIGHT_13TO43 (CIF_ISP_HIST_BASE + 0x00000064)
|
||||
#define CIF_ISP_HIST_WEIGHT_04TO34 (CIF_ISP_HIST_BASE + 0x00000068)
|
||||
#define CIF_ISP_HIST_WEIGHT_44 (CIF_ISP_HIST_BASE + 0x0000006C)
|
||||
#define CIF_ISP_HIST_BASE_V10 0x00002400
|
||||
#define CIF_ISP_HIST_PROP_V10 (CIF_ISP_HIST_BASE_V10 + 0x00000000)
|
||||
#define CIF_ISP_HIST_H_OFFS_V10 (CIF_ISP_HIST_BASE_V10 + 0x00000004)
|
||||
#define CIF_ISP_HIST_V_OFFS_V10 (CIF_ISP_HIST_BASE_V10 + 0x00000008)
|
||||
#define CIF_ISP_HIST_H_SIZE_V10 (CIF_ISP_HIST_BASE_V10 + 0x0000000C)
|
||||
#define CIF_ISP_HIST_V_SIZE_V10 (CIF_ISP_HIST_BASE_V10 + 0x00000010)
|
||||
#define CIF_ISP_HIST_BIN_0_V10 (CIF_ISP_HIST_BASE_V10 + 0x00000014)
|
||||
#define CIF_ISP_HIST_BIN_1_V10 (CIF_ISP_HIST_BASE_V10 + 0x00000018)
|
||||
#define CIF_ISP_HIST_BIN_2_V10 (CIF_ISP_HIST_BASE_V10 + 0x0000001C)
|
||||
#define CIF_ISP_HIST_BIN_3_V10 (CIF_ISP_HIST_BASE_V10 + 0x00000020)
|
||||
#define CIF_ISP_HIST_BIN_4_V10 (CIF_ISP_HIST_BASE_V10 + 0x00000024)
|
||||
#define CIF_ISP_HIST_BIN_5_V10 (CIF_ISP_HIST_BASE_V10 + 0x00000028)
|
||||
#define CIF_ISP_HIST_BIN_6_V10 (CIF_ISP_HIST_BASE_V10 + 0x0000002C)
|
||||
#define CIF_ISP_HIST_BIN_7_V10 (CIF_ISP_HIST_BASE_V10 + 0x00000030)
|
||||
#define CIF_ISP_HIST_BIN_8_V10 (CIF_ISP_HIST_BASE_V10 + 0x00000034)
|
||||
#define CIF_ISP_HIST_BIN_9_V10 (CIF_ISP_HIST_BASE_V10 + 0x00000038)
|
||||
#define CIF_ISP_HIST_BIN_10_V10 (CIF_ISP_HIST_BASE_V10 + 0x0000003C)
|
||||
#define CIF_ISP_HIST_BIN_11_V10 (CIF_ISP_HIST_BASE_V10 + 0x00000040)
|
||||
#define CIF_ISP_HIST_BIN_12_V10 (CIF_ISP_HIST_BASE_V10 + 0x00000044)
|
||||
#define CIF_ISP_HIST_BIN_13_V10 (CIF_ISP_HIST_BASE_V10 + 0x00000048)
|
||||
#define CIF_ISP_HIST_BIN_14_V10 (CIF_ISP_HIST_BASE_V10 + 0x0000004C)
|
||||
#define CIF_ISP_HIST_BIN_15_V10 (CIF_ISP_HIST_BASE_V10 + 0x00000050)
|
||||
#define CIF_ISP_HIST_WEIGHT_00TO30_V10 (CIF_ISP_HIST_BASE_V10 + 0x00000054)
|
||||
#define CIF_ISP_HIST_WEIGHT_40TO21_V10 (CIF_ISP_HIST_BASE_V10 + 0x00000058)
|
||||
#define CIF_ISP_HIST_WEIGHT_31TO12_V10 (CIF_ISP_HIST_BASE_V10 + 0x0000005C)
|
||||
#define CIF_ISP_HIST_WEIGHT_22TO03_V10 (CIF_ISP_HIST_BASE_V10 + 0x00000060)
|
||||
#define CIF_ISP_HIST_WEIGHT_13TO43_V10 (CIF_ISP_HIST_BASE_V10 + 0x00000064)
|
||||
#define CIF_ISP_HIST_WEIGHT_04TO34_V10 (CIF_ISP_HIST_BASE_V10 + 0x00000068)
|
||||
#define CIF_ISP_HIST_WEIGHT_44_V10 (CIF_ISP_HIST_BASE_V10 + 0x0000006C)
|
||||
|
||||
#define CIF_ISP_FILT_BASE 0x00002500
|
||||
#define CIF_ISP_FILT_MODE (CIF_ISP_FILT_BASE + 0x00000000)
|
||||
|
|
@ -1089,35 +1192,38 @@
|
|||
|
||||
#define CIF_ISP_EXP_BASE 0x00002600
|
||||
#define CIF_ISP_EXP_CTRL (CIF_ISP_EXP_BASE + 0x00000000)
|
||||
#define CIF_ISP_EXP_H_OFFSET (CIF_ISP_EXP_BASE + 0x00000004)
|
||||
#define CIF_ISP_EXP_V_OFFSET (CIF_ISP_EXP_BASE + 0x00000008)
|
||||
#define CIF_ISP_EXP_H_SIZE (CIF_ISP_EXP_BASE + 0x0000000C)
|
||||
#define CIF_ISP_EXP_V_SIZE (CIF_ISP_EXP_BASE + 0x00000010)
|
||||
#define CIF_ISP_EXP_MEAN_00 (CIF_ISP_EXP_BASE + 0x00000014)
|
||||
#define CIF_ISP_EXP_MEAN_10 (CIF_ISP_EXP_BASE + 0x00000018)
|
||||
#define CIF_ISP_EXP_MEAN_20 (CIF_ISP_EXP_BASE + 0x0000001c)
|
||||
#define CIF_ISP_EXP_MEAN_30 (CIF_ISP_EXP_BASE + 0x00000020)
|
||||
#define CIF_ISP_EXP_MEAN_40 (CIF_ISP_EXP_BASE + 0x00000024)
|
||||
#define CIF_ISP_EXP_MEAN_01 (CIF_ISP_EXP_BASE + 0x00000028)
|
||||
#define CIF_ISP_EXP_MEAN_11 (CIF_ISP_EXP_BASE + 0x0000002c)
|
||||
#define CIF_ISP_EXP_MEAN_21 (CIF_ISP_EXP_BASE + 0x00000030)
|
||||
#define CIF_ISP_EXP_MEAN_31 (CIF_ISP_EXP_BASE + 0x00000034)
|
||||
#define CIF_ISP_EXP_MEAN_41 (CIF_ISP_EXP_BASE + 0x00000038)
|
||||
#define CIF_ISP_EXP_MEAN_02 (CIF_ISP_EXP_BASE + 0x0000003c)
|
||||
#define CIF_ISP_EXP_MEAN_12 (CIF_ISP_EXP_BASE + 0x00000040)
|
||||
#define CIF_ISP_EXP_MEAN_22 (CIF_ISP_EXP_BASE + 0x00000044)
|
||||
#define CIF_ISP_EXP_MEAN_32 (CIF_ISP_EXP_BASE + 0x00000048)
|
||||
#define CIF_ISP_EXP_MEAN_42 (CIF_ISP_EXP_BASE + 0x0000004c)
|
||||
#define CIF_ISP_EXP_MEAN_03 (CIF_ISP_EXP_BASE + 0x00000050)
|
||||
#define CIF_ISP_EXP_MEAN_13 (CIF_ISP_EXP_BASE + 0x00000054)
|
||||
#define CIF_ISP_EXP_MEAN_23 (CIF_ISP_EXP_BASE + 0x00000058)
|
||||
#define CIF_ISP_EXP_MEAN_33 (CIF_ISP_EXP_BASE + 0x0000005c)
|
||||
#define CIF_ISP_EXP_MEAN_43 (CIF_ISP_EXP_BASE + 0x00000060)
|
||||
#define CIF_ISP_EXP_MEAN_04 (CIF_ISP_EXP_BASE + 0x00000064)
|
||||
#define CIF_ISP_EXP_MEAN_14 (CIF_ISP_EXP_BASE + 0x00000068)
|
||||
#define CIF_ISP_EXP_MEAN_24 (CIF_ISP_EXP_BASE + 0x0000006c)
|
||||
#define CIF_ISP_EXP_MEAN_34 (CIF_ISP_EXP_BASE + 0x00000070)
|
||||
#define CIF_ISP_EXP_MEAN_44 (CIF_ISP_EXP_BASE + 0x00000074)
|
||||
#define CIF_ISP_EXP_H_OFFSET_V10 (CIF_ISP_EXP_BASE + 0x00000004)
|
||||
#define CIF_ISP_EXP_V_OFFSET_V10 (CIF_ISP_EXP_BASE + 0x00000008)
|
||||
#define CIF_ISP_EXP_H_SIZE_V10 (CIF_ISP_EXP_BASE + 0x0000000C)
|
||||
#define CIF_ISP_EXP_V_SIZE_V10 (CIF_ISP_EXP_BASE + 0x00000010)
|
||||
#define CIF_ISP_EXP_SIZE_V12 (CIF_ISP_EXP_BASE + 0x00000004)
|
||||
#define CIF_ISP_EXP_OFFS_V12 (CIF_ISP_EXP_BASE + 0x00000008)
|
||||
#define CIF_ISP_EXP_MEAN_V12 (CIF_ISP_EXP_BASE + 0x0000000c)
|
||||
#define CIF_ISP_EXP_MEAN_00_V10 (CIF_ISP_EXP_BASE + 0x00000014)
|
||||
#define CIF_ISP_EXP_MEAN_10_V10 (CIF_ISP_EXP_BASE + 0x00000018)
|
||||
#define CIF_ISP_EXP_MEAN_20_V10 (CIF_ISP_EXP_BASE + 0x0000001c)
|
||||
#define CIF_ISP_EXP_MEAN_30_V10 (CIF_ISP_EXP_BASE + 0x00000020)
|
||||
#define CIF_ISP_EXP_MEAN_40_V10 (CIF_ISP_EXP_BASE + 0x00000024)
|
||||
#define CIF_ISP_EXP_MEAN_01_V10 (CIF_ISP_EXP_BASE + 0x00000028)
|
||||
#define CIF_ISP_EXP_MEAN_11_V10 (CIF_ISP_EXP_BASE + 0x0000002c)
|
||||
#define CIF_ISP_EXP_MEAN_21_V10 (CIF_ISP_EXP_BASE + 0x00000030)
|
||||
#define CIF_ISP_EXP_MEAN_31_V10 (CIF_ISP_EXP_BASE + 0x00000034)
|
||||
#define CIF_ISP_EXP_MEAN_41_V10 (CIF_ISP_EXP_BASE + 0x00000038)
|
||||
#define CIF_ISP_EXP_MEAN_02_V10 (CIF_ISP_EXP_BASE + 0x0000003c)
|
||||
#define CIF_ISP_EXP_MEAN_12_V10 (CIF_ISP_EXP_BASE + 0x00000040)
|
||||
#define CIF_ISP_EXP_MEAN_22_V10 (CIF_ISP_EXP_BASE + 0x00000044)
|
||||
#define CIF_ISP_EXP_MEAN_32_V10 (CIF_ISP_EXP_BASE + 0x00000048)
|
||||
#define CIF_ISP_EXP_MEAN_42_V10 (CIF_ISP_EXP_BASE + 0x0000004c)
|
||||
#define CIF_ISP_EXP_MEAN_03_V10 (CIF_ISP_EXP_BASE + 0x00000050)
|
||||
#define CIF_ISP_EXP_MEAN_13_V10 (CIF_ISP_EXP_BASE + 0x00000054)
|
||||
#define CIF_ISP_EXP_MEAN_23_V10 (CIF_ISP_EXP_BASE + 0x00000058)
|
||||
#define CIF_ISP_EXP_MEAN_33_V10 (CIF_ISP_EXP_BASE + 0x0000005c)
|
||||
#define CIF_ISP_EXP_MEAN_43_V10 (CIF_ISP_EXP_BASE + 0x00000060)
|
||||
#define CIF_ISP_EXP_MEAN_04_V10 (CIF_ISP_EXP_BASE + 0x00000064)
|
||||
#define CIF_ISP_EXP_MEAN_14_V10 (CIF_ISP_EXP_BASE + 0x00000068)
|
||||
#define CIF_ISP_EXP_MEAN_24_V10 (CIF_ISP_EXP_BASE + 0x0000006c)
|
||||
#define CIF_ISP_EXP_MEAN_34_V10 (CIF_ISP_EXP_BASE + 0x00000070)
|
||||
#define CIF_ISP_EXP_MEAN_44_V10 (CIF_ISP_EXP_BASE + 0x00000074)
|
||||
|
||||
#define CIF_ISP_BLS_BASE 0x00002700
|
||||
#define CIF_ISP_BLS_CTRL (CIF_ISP_BLS_BASE + 0x00000000)
|
||||
|
|
@ -1278,6 +1384,16 @@
|
|||
#define CIF_ISP_WDR_TONECURVE_YM_31_SHD (CIF_ISP_WDR_BASE + 0x0000012C)
|
||||
#define CIF_ISP_WDR_TONECURVE_YM_32_SHD (CIF_ISP_WDR_BASE + 0x00000130)
|
||||
|
||||
#define CIF_ISP_HIST_BASE_V12 0x00002C00
|
||||
#define CIF_ISP_HIST_CTRL_V12 (CIF_ISP_HIST_BASE_V12 + 0x00000000)
|
||||
#define CIF_ISP_HIST_SIZE_V12 (CIF_ISP_HIST_BASE_V12 + 0x00000004)
|
||||
#define CIF_ISP_HIST_OFFS_V12 (CIF_ISP_HIST_BASE_V12 + 0x00000008)
|
||||
#define CIF_ISP_HIST_DBG1_V12 (CIF_ISP_HIST_BASE_V12 + 0x0000000C)
|
||||
#define CIF_ISP_HIST_DBG2_V12 (CIF_ISP_HIST_BASE_V12 + 0x0000001C)
|
||||
#define CIF_ISP_HIST_DBG3_V12 (CIF_ISP_HIST_BASE_V12 + 0x0000002C)
|
||||
#define CIF_ISP_HIST_WEIGHT_V12 (CIF_ISP_HIST_BASE_V12 + 0x0000003C)
|
||||
#define CIF_ISP_HIST_BIN_V12 (CIF_ISP_HIST_BASE_V12 + 0x00000120)
|
||||
|
||||
#define CIF_ISP_VSM_BASE 0x00002F00
|
||||
#define CIF_ISP_VSM_MODE (CIF_ISP_VSM_BASE + 0x00000000)
|
||||
#define CIF_ISP_VSM_H_OFFS (CIF_ISP_VSM_BASE + 0x00000004)
|
||||
|
|
|
|||
|
|
@ -32,8 +32,8 @@
|
|||
#define CIFISP_CTK_COEFF_MAX 0x100
|
||||
#define CIFISP_CTK_OFFSET_MAX 0x800
|
||||
|
||||
#define CIFISP_AE_MEAN_MAX 25
|
||||
#define CIFISP_HIST_BIN_N_MAX 16
|
||||
#define CIFISP_AE_MEAN_MAX 81
|
||||
#define CIFISP_HIST_BIN_N_MAX 32
|
||||
#define CIFISP_AFM_MAX_WINDOWS 3
|
||||
#define CIFISP_DEGAMMA_CURVE_SIZE 17
|
||||
|
||||
|
|
@ -69,7 +69,7 @@
|
|||
* Gamma out
|
||||
*/
|
||||
/* Maximum number of color samples supported */
|
||||
#define CIFISP_GAMMA_OUT_MAX_SAMPLES 17
|
||||
#define CIFISP_GAMMA_OUT_MAX_SAMPLES 34
|
||||
|
||||
/*
|
||||
* Lens shade correction
|
||||
|
|
@ -87,7 +87,7 @@
|
|||
* Histogram calculation
|
||||
*/
|
||||
/* Last 3 values unused. */
|
||||
#define CIFISP_HISTOGRAM_WEIGHT_GRIDS_SIZE 28
|
||||
#define CIFISP_HISTOGRAM_WEIGHT_GRIDS_SIZE 81
|
||||
|
||||
/*
|
||||
* Defect Pixel Cluster Correction
|
||||
|
|
@ -723,7 +723,7 @@ struct cifisp_af_stat {
|
|||
* with ISP_HIST_XXX
|
||||
*/
|
||||
struct cifisp_hist_stat {
|
||||
unsigned short hist_bins[CIFISP_HIST_BIN_N_MAX];
|
||||
unsigned int hist_bins[CIFISP_HIST_BIN_N_MAX];
|
||||
} __attribute__ ((packed));
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user