Commit f718f6c8 authored by Dafna Hirschfeld's avatar Dafna Hirschfeld Committed by Mauro Carvalho Chehab

media: staging: rkisp1: set "*_data_tbl" fields in rkisp1_cif_isp_lsc_config as 2D arrays

Currently the fields '*_data_tbl' in the struct
'rkisp1_cif_isp_lsc_config' are one dimensional arrays
of size 290. The entries are accessed in a nested
loop by summing two indexes for the rows and columns.
Therefore it fits better to define the arrays as two
dimensional arrays of size 17x17.
Signed-off-by: default avatarDafna Hirschfeld <dafna.hirschfeld@collabora.com>
Acked-by: default avatarHelen Koike <helen.koike@collabora.com>
Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
parent 47ad02d1
...@@ -206,47 +206,45 @@ rkisp1_lsc_correct_matrix_config(struct rkisp1_params *params, ...@@ -206,47 +206,45 @@ rkisp1_lsc_correct_matrix_config(struct rkisp1_params *params,
RKISP1_CIF_ISP_LSC_B_TABLE_ADDR); RKISP1_CIF_ISP_LSC_B_TABLE_ADDR);
/* program data tables (table size is 9 * 17 = 153) */ /* program data tables (table size is 9 * 17 = 153) */
for (i = 0; for (i = 0; i < RKISP1_CIF_ISP_LSC_SAMPLES_MAX; i++) {
i < RKISP1_CIF_ISP_LSC_SECTORS_MAX * RKISP1_CIF_ISP_LSC_SECTORS_MAX;
i += RKISP1_CIF_ISP_LSC_SECTORS_MAX) {
/* /*
* 17 sectors with 2 values in one DWORD = 9 * 17 sectors with 2 values in one DWORD = 9
* DWORDs (2nd value of last DWORD unused) * DWORDs (2nd value of last DWORD unused)
*/ */
for (j = 0; j < RKISP1_CIF_ISP_LSC_SECTORS_MAX - 1; j += 2) { for (j = 0; j < RKISP1_CIF_ISP_LSC_SAMPLES_MAX - 1; j += 2) {
data = RKISP1_CIF_ISP_LSC_TABLE_DATA(pconfig->r_data_tbl[i + j], data = RKISP1_CIF_ISP_LSC_TABLE_DATA(pconfig->r_data_tbl[i][j],
pconfig->r_data_tbl[i + j + 1]); pconfig->r_data_tbl[i][j + 1]);
rkisp1_write(params->rkisp1, data, rkisp1_write(params->rkisp1, data,
RKISP1_CIF_ISP_LSC_R_TABLE_DATA); RKISP1_CIF_ISP_LSC_R_TABLE_DATA);
data = RKISP1_CIF_ISP_LSC_TABLE_DATA(pconfig->gr_data_tbl[i + j], data = RKISP1_CIF_ISP_LSC_TABLE_DATA(pconfig->gr_data_tbl[i][j],
pconfig->gr_data_tbl[i + j + 1]); pconfig->gr_data_tbl[i][j + 1]);
rkisp1_write(params->rkisp1, data, rkisp1_write(params->rkisp1, data,
RKISP1_CIF_ISP_LSC_GR_TABLE_DATA); RKISP1_CIF_ISP_LSC_GR_TABLE_DATA);
data = RKISP1_CIF_ISP_LSC_TABLE_DATA(pconfig->gb_data_tbl[i + j], data = RKISP1_CIF_ISP_LSC_TABLE_DATA(pconfig->gb_data_tbl[i][j],
pconfig->gb_data_tbl[i + j + 1]); pconfig->gb_data_tbl[i][j + 1]);
rkisp1_write(params->rkisp1, data, rkisp1_write(params->rkisp1, data,
RKISP1_CIF_ISP_LSC_GB_TABLE_DATA); RKISP1_CIF_ISP_LSC_GB_TABLE_DATA);
data = RKISP1_CIF_ISP_LSC_TABLE_DATA(pconfig->b_data_tbl[i + j], data = RKISP1_CIF_ISP_LSC_TABLE_DATA(pconfig->b_data_tbl[i][j],
pconfig->b_data_tbl[i + j + 1]); pconfig->b_data_tbl[i][j + 1]);
rkisp1_write(params->rkisp1, data, rkisp1_write(params->rkisp1, data,
RKISP1_CIF_ISP_LSC_B_TABLE_DATA); RKISP1_CIF_ISP_LSC_B_TABLE_DATA);
} }
data = RKISP1_CIF_ISP_LSC_TABLE_DATA(pconfig->r_data_tbl[i + j], 0); data = RKISP1_CIF_ISP_LSC_TABLE_DATA(pconfig->r_data_tbl[i][j], 0);
rkisp1_write(params->rkisp1, data, rkisp1_write(params->rkisp1, data,
RKISP1_CIF_ISP_LSC_R_TABLE_DATA); RKISP1_CIF_ISP_LSC_R_TABLE_DATA);
data = RKISP1_CIF_ISP_LSC_TABLE_DATA(pconfig->gr_data_tbl[i + j], 0); data = RKISP1_CIF_ISP_LSC_TABLE_DATA(pconfig->gr_data_tbl[i][j], 0);
rkisp1_write(params->rkisp1, data, rkisp1_write(params->rkisp1, data,
RKISP1_CIF_ISP_LSC_GR_TABLE_DATA); RKISP1_CIF_ISP_LSC_GR_TABLE_DATA);
data = RKISP1_CIF_ISP_LSC_TABLE_DATA(pconfig->gb_data_tbl[i + j], 0); data = RKISP1_CIF_ISP_LSC_TABLE_DATA(pconfig->gb_data_tbl[i][j], 0);
rkisp1_write(params->rkisp1, data, rkisp1_write(params->rkisp1, data,
RKISP1_CIF_ISP_LSC_GB_TABLE_DATA); RKISP1_CIF_ISP_LSC_GB_TABLE_DATA);
data = RKISP1_CIF_ISP_LSC_TABLE_DATA(pconfig->b_data_tbl[i + j], 0); data = RKISP1_CIF_ISP_LSC_TABLE_DATA(pconfig->b_data_tbl[i][j], 0);
rkisp1_write(params->rkisp1, data, rkisp1_write(params->rkisp1, data,
RKISP1_CIF_ISP_LSC_B_TABLE_DATA); RKISP1_CIF_ISP_LSC_B_TABLE_DATA);
} }
......
...@@ -475,7 +475,6 @@ ...@@ -475,7 +475,6 @@
#define RKISP1_CIF_ISP_LSC_SECT_SIZE_RESERVED 0xFC00FC00 #define RKISP1_CIF_ISP_LSC_SECT_SIZE_RESERVED 0xFC00FC00
#define RKISP1_CIF_ISP_LSC_GRAD_RESERVED 0xF000F000 #define RKISP1_CIF_ISP_LSC_GRAD_RESERVED 0xF000F000
#define RKISP1_CIF_ISP_LSC_SAMPLE_RESERVED 0xF000F000 #define RKISP1_CIF_ISP_LSC_SAMPLE_RESERVED 0xF000F000
#define RKISP1_CIF_ISP_LSC_SECTORS_MAX 17
#define RKISP1_CIF_ISP_LSC_TABLE_DATA(v0, v1) \ #define RKISP1_CIF_ISP_LSC_TABLE_DATA(v0, v1) \
(((v0) & 0xFFF) | (((v1) & 0xFFF) << 12)) (((v0) & 0xFFF) | (((v1) & 0xFFF) << 12))
#define RKISP1_CIF_ISP_LSC_SECT_SIZE(v0, v1) \ #define RKISP1_CIF_ISP_LSC_SECT_SIZE(v0, v1) \
......
...@@ -101,9 +101,8 @@ ...@@ -101,9 +101,8 @@
/* /*
* The following matches the tuning process, * The following matches the tuning process,
* not the max capabilities of the chip. * not the max capabilities of the chip.
* Last value unused.
*/ */
#define RKISP1_CIF_ISP_LSC_DATA_TBL_SIZE 290 #define RKISP1_CIF_ISP_LSC_SAMPLES_MAX 17
/* /*
* Histogram calculation * Histogram calculation
...@@ -330,10 +329,10 @@ struct rkisp1_cif_isp_sdg_config { ...@@ -330,10 +329,10 @@ struct rkisp1_cif_isp_sdg_config {
* @config_height: not used at the moment * @config_height: not used at the moment
*/ */
struct rkisp1_cif_isp_lsc_config { struct rkisp1_cif_isp_lsc_config {
__u32 r_data_tbl[RKISP1_CIF_ISP_LSC_DATA_TBL_SIZE]; __u32 r_data_tbl[RKISP1_CIF_ISP_LSC_SAMPLES_MAX][RKISP1_CIF_ISP_LSC_SAMPLES_MAX];
__u32 gr_data_tbl[RKISP1_CIF_ISP_LSC_DATA_TBL_SIZE]; __u32 gr_data_tbl[RKISP1_CIF_ISP_LSC_SAMPLES_MAX][RKISP1_CIF_ISP_LSC_SAMPLES_MAX];
__u32 gb_data_tbl[RKISP1_CIF_ISP_LSC_DATA_TBL_SIZE]; __u32 gb_data_tbl[RKISP1_CIF_ISP_LSC_SAMPLES_MAX][RKISP1_CIF_ISP_LSC_SAMPLES_MAX];
__u32 b_data_tbl[RKISP1_CIF_ISP_LSC_DATA_TBL_SIZE]; __u32 b_data_tbl[RKISP1_CIF_ISP_LSC_SAMPLES_MAX][RKISP1_CIF_ISP_LSC_SAMPLES_MAX];
__u32 x_grad_tbl[RKISP1_CIF_ISP_LSC_GRAD_TBL_SIZE]; __u32 x_grad_tbl[RKISP1_CIF_ISP_LSC_GRAD_TBL_SIZE];
__u32 y_grad_tbl[RKISP1_CIF_ISP_LSC_GRAD_TBL_SIZE]; __u32 y_grad_tbl[RKISP1_CIF_ISP_LSC_GRAD_TBL_SIZE];
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment