media: rkisp1: Clean up LSC configuration code
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Tue, 16 Aug 2022 23:53:57 +0000 (01:53 +0200)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Sat, 24 Sep 2022 06:40:04 +0000 (08:40 +0200)
Clean up the LSC configuration code to improve its readability by
shortening lines, using extra local variables and renaming long
variables. No functional change intended.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Dafna Hirschfeld <dafna@fastmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
drivers/media/platform/rockchip/rkisp1/rkisp1-params.c

index 246a6fa..fbbaf55 100644 (file)
@@ -198,149 +198,129 @@ static void
 rkisp1_lsc_matrix_config_v10(struct rkisp1_params *params,
                             const struct rkisp1_cif_isp_lsc_config *pconfig)
 {
-       unsigned int isp_lsc_status, sram_addr, isp_lsc_table_sel, i, j, data;
+       struct rkisp1_device *rkisp1 = params->rkisp1;
+       unsigned int lsc_status, sram_addr, lsc_table_sel, i, j;
 
-       isp_lsc_status = rkisp1_read(params->rkisp1, RKISP1_CIF_ISP_LSC_STATUS);
+       lsc_status = rkisp1_read(rkisp1, RKISP1_CIF_ISP_LSC_STATUS);
 
        /* RKISP1_CIF_ISP_LSC_TABLE_ADDRESS_153 = ( 17 * 18 ) >> 1 */
-       sram_addr = (isp_lsc_status & RKISP1_CIF_ISP_LSC_ACTIVE_TABLE) ?
+       sram_addr = lsc_status & RKISP1_CIF_ISP_LSC_ACTIVE_TABLE ?
                    RKISP1_CIF_ISP_LSC_TABLE_ADDRESS_0 :
                    RKISP1_CIF_ISP_LSC_TABLE_ADDRESS_153;
-       rkisp1_write(params->rkisp1, RKISP1_CIF_ISP_LSC_R_TABLE_ADDR, sram_addr);
-       rkisp1_write(params->rkisp1, RKISP1_CIF_ISP_LSC_GR_TABLE_ADDR, sram_addr);
-       rkisp1_write(params->rkisp1, RKISP1_CIF_ISP_LSC_GB_TABLE_ADDR, sram_addr);
-       rkisp1_write(params->rkisp1, RKISP1_CIF_ISP_LSC_B_TABLE_ADDR, sram_addr);
+       rkisp1_write(rkisp1, RKISP1_CIF_ISP_LSC_R_TABLE_ADDR, sram_addr);
+       rkisp1_write(rkisp1, RKISP1_CIF_ISP_LSC_GR_TABLE_ADDR, sram_addr);
+       rkisp1_write(rkisp1, RKISP1_CIF_ISP_LSC_GB_TABLE_ADDR, sram_addr);
+       rkisp1_write(rkisp1, RKISP1_CIF_ISP_LSC_B_TABLE_ADDR, sram_addr);
 
        /* program data tables (table size is 9 * 17 = 153) */
        for (i = 0; i < RKISP1_CIF_ISP_LSC_SAMPLES_MAX; i++) {
+               const __u16 *r_tbl = pconfig->r_data_tbl[i];
+               const __u16 *gr_tbl = pconfig->gr_data_tbl[i];
+               const __u16 *gb_tbl = pconfig->gb_data_tbl[i];
+               const __u16 *b_tbl = pconfig->b_data_tbl[i];
+
                /*
                 * 17 sectors with 2 values in one DWORD = 9
                 * DWORDs (2nd value of last DWORD unused)
                 */
                for (j = 0; j < RKISP1_CIF_ISP_LSC_SAMPLES_MAX - 1; j += 2) {
-                       data = RKISP1_CIF_ISP_LSC_TABLE_DATA_V10(pconfig->r_data_tbl[i][j],
-                                                                pconfig->r_data_tbl[i][j + 1]);
-                       rkisp1_write(params->rkisp1,
-                                    RKISP1_CIF_ISP_LSC_R_TABLE_DATA, data);
-
-                       data = RKISP1_CIF_ISP_LSC_TABLE_DATA_V10(pconfig->gr_data_tbl[i][j],
-                                                                pconfig->gr_data_tbl[i][j + 1]);
-                       rkisp1_write(params->rkisp1,
-                                    RKISP1_CIF_ISP_LSC_GR_TABLE_DATA, data);
-
-                       data = RKISP1_CIF_ISP_LSC_TABLE_DATA_V10(pconfig->gb_data_tbl[i][j],
-                                                                pconfig->gb_data_tbl[i][j + 1]);
-                       rkisp1_write(params->rkisp1,
-                                    RKISP1_CIF_ISP_LSC_GB_TABLE_DATA, data);
-
-                       data = RKISP1_CIF_ISP_LSC_TABLE_DATA_V10(pconfig->b_data_tbl[i][j],
-                                                                pconfig->b_data_tbl[i][j + 1]);
-                       rkisp1_write(params->rkisp1,
-                                    RKISP1_CIF_ISP_LSC_B_TABLE_DATA, data);
+                       rkisp1_write(rkisp1, RKISP1_CIF_ISP_LSC_R_TABLE_DATA,
+                                    RKISP1_CIF_ISP_LSC_TABLE_DATA_V10(
+                                       r_tbl[j], r_tbl[j + 1]));
+                       rkisp1_write(rkisp1, RKISP1_CIF_ISP_LSC_GR_TABLE_DATA,
+                                    RKISP1_CIF_ISP_LSC_TABLE_DATA_V10(
+                                       gr_tbl[j], gr_tbl[j + 1]));
+                       rkisp1_write(rkisp1, RKISP1_CIF_ISP_LSC_GB_TABLE_DATA,
+                                    RKISP1_CIF_ISP_LSC_TABLE_DATA_V10(
+                                       gb_tbl[j], gb_tbl[j + 1]));
+                       rkisp1_write(rkisp1, RKISP1_CIF_ISP_LSC_B_TABLE_DATA,
+                                    RKISP1_CIF_ISP_LSC_TABLE_DATA_V10(
+                                       b_tbl[j], b_tbl[j + 1]));
                }
-               data = RKISP1_CIF_ISP_LSC_TABLE_DATA_V10(pconfig->r_data_tbl[i][j], 0);
-               rkisp1_write(params->rkisp1, RKISP1_CIF_ISP_LSC_R_TABLE_DATA,
-                            data);
 
-               data = RKISP1_CIF_ISP_LSC_TABLE_DATA_V10(pconfig->gr_data_tbl[i][j], 0);
-               rkisp1_write(params->rkisp1, RKISP1_CIF_ISP_LSC_GR_TABLE_DATA,
-                            data);
-
-               data = RKISP1_CIF_ISP_LSC_TABLE_DATA_V10(pconfig->gb_data_tbl[i][j], 0);
-               rkisp1_write(params->rkisp1, RKISP1_CIF_ISP_LSC_GB_TABLE_DATA,
-                            data);
-
-               data = RKISP1_CIF_ISP_LSC_TABLE_DATA_V10(pconfig->b_data_tbl[i][j], 0);
-               rkisp1_write(params->rkisp1, RKISP1_CIF_ISP_LSC_B_TABLE_DATA,
-                            data);
+               rkisp1_write(rkisp1, RKISP1_CIF_ISP_LSC_R_TABLE_DATA,
+                            RKISP1_CIF_ISP_LSC_TABLE_DATA_V10(r_tbl[j], 0));
+               rkisp1_write(rkisp1, RKISP1_CIF_ISP_LSC_GR_TABLE_DATA,
+                            RKISP1_CIF_ISP_LSC_TABLE_DATA_V10(gr_tbl[j], 0));
+               rkisp1_write(rkisp1, RKISP1_CIF_ISP_LSC_GB_TABLE_DATA,
+                            RKISP1_CIF_ISP_LSC_TABLE_DATA_V10(gb_tbl[j], 0));
+               rkisp1_write(rkisp1, RKISP1_CIF_ISP_LSC_B_TABLE_DATA,
+                            RKISP1_CIF_ISP_LSC_TABLE_DATA_V10(b_tbl[j], 0));
        }
-       isp_lsc_table_sel = (isp_lsc_status & RKISP1_CIF_ISP_LSC_ACTIVE_TABLE) ?
-                           RKISP1_CIF_ISP_LSC_TABLE_0 :
-                           RKISP1_CIF_ISP_LSC_TABLE_1;
-       rkisp1_write(params->rkisp1, RKISP1_CIF_ISP_LSC_TABLE_SEL,
-                    isp_lsc_table_sel);
+
+       lsc_table_sel = lsc_status & RKISP1_CIF_ISP_LSC_ACTIVE_TABLE ?
+                       RKISP1_CIF_ISP_LSC_TABLE_0 : RKISP1_CIF_ISP_LSC_TABLE_1;
+       rkisp1_write(rkisp1, RKISP1_CIF_ISP_LSC_TABLE_SEL, lsc_table_sel);
 }
 
 static void
 rkisp1_lsc_matrix_config_v12(struct rkisp1_params *params,
                             const struct rkisp1_cif_isp_lsc_config *pconfig)
 {
-       unsigned int isp_lsc_status, sram_addr, isp_lsc_table_sel, i, j, data;
+       struct rkisp1_device *rkisp1 = params->rkisp1;
+       unsigned int lsc_status, sram_addr, lsc_table_sel, i, j;
 
-       isp_lsc_status = rkisp1_read(params->rkisp1, RKISP1_CIF_ISP_LSC_STATUS);
+       lsc_status = rkisp1_read(rkisp1, RKISP1_CIF_ISP_LSC_STATUS);
 
        /* RKISP1_CIF_ISP_LSC_TABLE_ADDRESS_153 = ( 17 * 18 ) >> 1 */
-       sram_addr = (isp_lsc_status & RKISP1_CIF_ISP_LSC_ACTIVE_TABLE) ?
-                    RKISP1_CIF_ISP_LSC_TABLE_ADDRESS_0 :
-                    RKISP1_CIF_ISP_LSC_TABLE_ADDRESS_153;
-       rkisp1_write(params->rkisp1, RKISP1_CIF_ISP_LSC_R_TABLE_ADDR, sram_addr);
-       rkisp1_write(params->rkisp1, RKISP1_CIF_ISP_LSC_GR_TABLE_ADDR, sram_addr);
-       rkisp1_write(params->rkisp1, RKISP1_CIF_ISP_LSC_GB_TABLE_ADDR, sram_addr);
-       rkisp1_write(params->rkisp1, RKISP1_CIF_ISP_LSC_B_TABLE_ADDR, sram_addr);
+       sram_addr = lsc_status & RKISP1_CIF_ISP_LSC_ACTIVE_TABLE ?
+                   RKISP1_CIF_ISP_LSC_TABLE_ADDRESS_0 :
+                   RKISP1_CIF_ISP_LSC_TABLE_ADDRESS_153;
+       rkisp1_write(rkisp1, RKISP1_CIF_ISP_LSC_R_TABLE_ADDR, sram_addr);
+       rkisp1_write(rkisp1, RKISP1_CIF_ISP_LSC_GR_TABLE_ADDR, sram_addr);
+       rkisp1_write(rkisp1, RKISP1_CIF_ISP_LSC_GB_TABLE_ADDR, sram_addr);
+       rkisp1_write(rkisp1, RKISP1_CIF_ISP_LSC_B_TABLE_ADDR, sram_addr);
 
        /* program data tables (table size is 9 * 17 = 153) */
        for (i = 0; i < RKISP1_CIF_ISP_LSC_SAMPLES_MAX; i++) {
+               const __u16 *r_tbl = pconfig->r_data_tbl[i];
+               const __u16 *gr_tbl = pconfig->gr_data_tbl[i];
+               const __u16 *gb_tbl = pconfig->gb_data_tbl[i];
+               const __u16 *b_tbl = pconfig->b_data_tbl[i];
+
                /*
                 * 17 sectors with 2 values in one DWORD = 9
                 * DWORDs (2nd value of last DWORD unused)
                 */
                for (j = 0; j < RKISP1_CIF_ISP_LSC_SAMPLES_MAX - 1; j += 2) {
-                       data = RKISP1_CIF_ISP_LSC_TABLE_DATA_V12(
-                                       pconfig->r_data_tbl[i][j],
-                                       pconfig->r_data_tbl[i][j + 1]);
-                       rkisp1_write(params->rkisp1,
-                                    RKISP1_CIF_ISP_LSC_R_TABLE_DATA, data);
-
-                       data = RKISP1_CIF_ISP_LSC_TABLE_DATA_V12(
-                                       pconfig->gr_data_tbl[i][j],
-                                       pconfig->gr_data_tbl[i][j + 1]);
-                       rkisp1_write(params->rkisp1,
-                                    RKISP1_CIF_ISP_LSC_GR_TABLE_DATA, data);
-
-                       data = RKISP1_CIF_ISP_LSC_TABLE_DATA_V12(
-                                       pconfig->gb_data_tbl[i][j],
-                                       pconfig->gb_data_tbl[i][j + 1]);
-                       rkisp1_write(params->rkisp1,
-                                    RKISP1_CIF_ISP_LSC_GB_TABLE_DATA, data);
-
-                       data = RKISP1_CIF_ISP_LSC_TABLE_DATA_V12(
-                                       pconfig->b_data_tbl[i][j],
-                                       pconfig->b_data_tbl[i][j + 1]);
-                       rkisp1_write(params->rkisp1,
-                                    RKISP1_CIF_ISP_LSC_B_TABLE_DATA, data);
+                       rkisp1_write(rkisp1, RKISP1_CIF_ISP_LSC_R_TABLE_DATA,
+                                    RKISP1_CIF_ISP_LSC_TABLE_DATA_V12(
+                                       r_tbl[j], r_tbl[j + 1]));
+                       rkisp1_write(rkisp1, RKISP1_CIF_ISP_LSC_GR_TABLE_DATA,
+                                    RKISP1_CIF_ISP_LSC_TABLE_DATA_V12(
+                                       gr_tbl[j], gr_tbl[j + 1]));
+                       rkisp1_write(rkisp1, RKISP1_CIF_ISP_LSC_GB_TABLE_DATA,
+                                    RKISP1_CIF_ISP_LSC_TABLE_DATA_V12(
+                                       gb_tbl[j], gb_tbl[j + 1]));
+                       rkisp1_write(rkisp1, RKISP1_CIF_ISP_LSC_B_TABLE_DATA,
+                                    RKISP1_CIF_ISP_LSC_TABLE_DATA_V12(
+                                       b_tbl[j], b_tbl[j + 1]));
                }
 
-               data = RKISP1_CIF_ISP_LSC_TABLE_DATA_V12(pconfig->r_data_tbl[i][j], 0);
-               rkisp1_write(params->rkisp1, RKISP1_CIF_ISP_LSC_R_TABLE_DATA,
-                            data);
-
-               data = RKISP1_CIF_ISP_LSC_TABLE_DATA_V12(pconfig->gr_data_tbl[i][j], 0);
-               rkisp1_write(params->rkisp1, RKISP1_CIF_ISP_LSC_GR_TABLE_DATA,
-                            data);
-
-               data = RKISP1_CIF_ISP_LSC_TABLE_DATA_V12(pconfig->gb_data_tbl[i][j], 0);
-               rkisp1_write(params->rkisp1, RKISP1_CIF_ISP_LSC_GB_TABLE_DATA,
-                            data);
-
-               data = RKISP1_CIF_ISP_LSC_TABLE_DATA_V12(pconfig->b_data_tbl[i][j], 0);
-               rkisp1_write(params->rkisp1, RKISP1_CIF_ISP_LSC_B_TABLE_DATA,
-                            data);
+               rkisp1_write(rkisp1, RKISP1_CIF_ISP_LSC_R_TABLE_DATA,
+                            RKISP1_CIF_ISP_LSC_TABLE_DATA_V12(r_tbl[j], 0));
+               rkisp1_write(rkisp1, RKISP1_CIF_ISP_LSC_GR_TABLE_DATA,
+                            RKISP1_CIF_ISP_LSC_TABLE_DATA_V12(gr_tbl[j], 0));
+               rkisp1_write(rkisp1, RKISP1_CIF_ISP_LSC_GB_TABLE_DATA,
+                            RKISP1_CIF_ISP_LSC_TABLE_DATA_V12(gb_tbl[j], 0));
+               rkisp1_write(rkisp1, RKISP1_CIF_ISP_LSC_B_TABLE_DATA,
+                            RKISP1_CIF_ISP_LSC_TABLE_DATA_V12(b_tbl[j], 0));
        }
-       isp_lsc_table_sel = (isp_lsc_status & RKISP1_CIF_ISP_LSC_ACTIVE_TABLE) ?
-                           RKISP1_CIF_ISP_LSC_TABLE_0 :
-                           RKISP1_CIF_ISP_LSC_TABLE_1;
-       rkisp1_write(params->rkisp1, RKISP1_CIF_ISP_LSC_TABLE_SEL,
-                    isp_lsc_table_sel);
+
+       lsc_table_sel = lsc_status & RKISP1_CIF_ISP_LSC_ACTIVE_TABLE ?
+                       RKISP1_CIF_ISP_LSC_TABLE_0 : RKISP1_CIF_ISP_LSC_TABLE_1;
+       rkisp1_write(rkisp1, RKISP1_CIF_ISP_LSC_TABLE_SEL, lsc_table_sel);
 }
 
 static void rkisp1_lsc_config(struct rkisp1_params *params,
                              const struct rkisp1_cif_isp_lsc_config *arg)
 {
+       struct rkisp1_device *rkisp1 = params->rkisp1;
        unsigned int i, data;
        u32 lsc_ctrl;
 
        /* To config must be off , store the current status firstly */
-       lsc_ctrl = rkisp1_read(params->rkisp1, RKISP1_CIF_ISP_LSC_CTRL);
+       lsc_ctrl = rkisp1_read(rkisp1, RKISP1_CIF_ISP_LSC_CTRL);
        rkisp1_param_clear_bits(params, RKISP1_CIF_ISP_LSC_CTRL,
                                RKISP1_CIF_ISP_LSC_CTRL_ENA);
        params->ops->lsc_matrix_config(params, arg);
@@ -349,38 +329,31 @@ static void rkisp1_lsc_config(struct rkisp1_params *params,
                /* program x size tables */
                data = RKISP1_CIF_ISP_LSC_SECT_SIZE(arg->x_size_tbl[i * 2],
                                                    arg->x_size_tbl[i * 2 + 1]);
-               rkisp1_write(params->rkisp1,
-                            RKISP1_CIF_ISP_LSC_XSIZE_01 + i * 4, data);
+               rkisp1_write(rkisp1, RKISP1_CIF_ISP_LSC_XSIZE_01 + i * 4, data);
 
                /* program x grad tables */
                data = RKISP1_CIF_ISP_LSC_SECT_SIZE(arg->x_grad_tbl[i * 2],
                                                    arg->x_grad_tbl[i * 2 + 1]);
-               rkisp1_write(params->rkisp1,
-                            RKISP1_CIF_ISP_LSC_XGRAD_01 + i * 4, data);
+               rkisp1_write(rkisp1, RKISP1_CIF_ISP_LSC_XGRAD_01 + i * 4, data);
 
                /* program y size tables */
                data = RKISP1_CIF_ISP_LSC_SECT_SIZE(arg->y_size_tbl[i * 2],
                                                    arg->y_size_tbl[i * 2 + 1]);
-               rkisp1_write(params->rkisp1,
-                            RKISP1_CIF_ISP_LSC_YSIZE_01 + i * 4, data);
+               rkisp1_write(rkisp1, RKISP1_CIF_ISP_LSC_YSIZE_01 + i * 4, data);
 
                /* program y grad tables */
                data = RKISP1_CIF_ISP_LSC_SECT_SIZE(arg->y_grad_tbl[i * 2],
                                                    arg->y_grad_tbl[i * 2 + 1]);
-               rkisp1_write(params->rkisp1,
-                            RKISP1_CIF_ISP_LSC_YGRAD_01 + i * 4, data);
+               rkisp1_write(rkisp1, RKISP1_CIF_ISP_LSC_YGRAD_01 + i * 4, data);
        }
 
        /* restore the lsc ctrl status */
-       if (lsc_ctrl & RKISP1_CIF_ISP_LSC_CTRL_ENA) {
-               rkisp1_param_set_bits(params,
-                                     RKISP1_CIF_ISP_LSC_CTRL,
+       if (lsc_ctrl & RKISP1_CIF_ISP_LSC_CTRL_ENA)
+               rkisp1_param_set_bits(params, RKISP1_CIF_ISP_LSC_CTRL,
                                      RKISP1_CIF_ISP_LSC_CTRL_ENA);
-       } else {
-               rkisp1_param_clear_bits(params,
-                                       RKISP1_CIF_ISP_LSC_CTRL,
+       else
+               rkisp1_param_clear_bits(params, RKISP1_CIF_ISP_LSC_CTRL,
                                        RKISP1_CIF_ISP_LSC_CTRL_ENA);
-       }
 }
 
 /* ISP Filtering function */