staging: atomisp: use local variable to reduce number of references
authorDaeseok Youn <daeseok.youn@gmail.com>
Wed, 12 Apr 2017 18:20:01 +0000 (19:20 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 14 Apr 2017 08:06:18 +0000 (10:06 +0200)
Define new local variable to reduce the number of reference.
The new local variable is added to save the addess of dfs
and used in atomisp_freq_scaling() function.

Signed-off-by: Daeseok Youn <daeseok.youn@gmail.com>
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/media/atomisp/pci/atomisp2/atomisp_cmd.c

index 94bc7938f533c63e521c7d4fd623557825ae6449..9ad5146931635b02251fd8b237b6b979403f57e8 100644 (file)
@@ -251,6 +251,7 @@ int atomisp_freq_scaling(struct atomisp_device *isp,
 {
        /* FIXME! Only use subdev[0] status yet */
        struct atomisp_sub_device *asd = &isp->asd[0];
+       const struct atomisp_dfs_config *dfs;
        unsigned int new_freq;
        struct atomisp_freq_scaling_rule curr_rules;
        int i, ret;
@@ -265,20 +266,22 @@ int atomisp_freq_scaling(struct atomisp_device *isp,
                ATOMISP_PCI_DEVICE_SOC_CHT && ATOMISP_USE_YUVPP(asd))
                isp->dfs = &dfs_config_cht_soc;
 
-       if (isp->dfs->lowest_freq == 0 || isp->dfs->max_freq_at_vmin == 0 ||
-           isp->dfs->highest_freq == 0 || isp->dfs->dfs_table_size == 0 ||
-           !isp->dfs->dfs_table) {
+       dfs = isp->dfs;
+
+       if (dfs->lowest_freq == 0 || dfs->max_freq_at_vmin == 0 ||
+           dfs->highest_freq == 0 || dfs->dfs_table_size == 0 ||
+           !dfs->dfs_table) {
                dev_err(isp->dev, "DFS configuration is invalid.\n");
                return -EINVAL;
        }
 
        if (mode == ATOMISP_DFS_MODE_LOW) {
-               new_freq = isp->dfs->lowest_freq;
+               new_freq = dfs->lowest_freq;
                goto done;
        }
 
        if (mode == ATOMISP_DFS_MODE_MAX) {
-               new_freq = isp->dfs->highest_freq;
+               new_freq = dfs->highest_freq;
                goto done;
        }
 
@@ -304,26 +307,26 @@ int atomisp_freq_scaling(struct atomisp_device *isp,
        }
 
        /* search for the target frequency by looping freq rules*/
-       for (i = 0; i < isp->dfs->dfs_table_size; i++) {
-               if (curr_rules.width != isp->dfs->dfs_table[i].width &&
-                   isp->dfs->dfs_table[i].width != ISP_FREQ_RULE_ANY)
+       for (i = 0; i < dfs->dfs_table_size; i++) {
+               if (curr_rules.width != dfs->dfs_table[i].width &&
+                   dfs->dfs_table[i].width != ISP_FREQ_RULE_ANY)
                        continue;
-               if (curr_rules.height != isp->dfs->dfs_table[i].height &&
-                   isp->dfs->dfs_table[i].height != ISP_FREQ_RULE_ANY)
+               if (curr_rules.height != dfs->dfs_table[i].height &&
+                   dfs->dfs_table[i].height != ISP_FREQ_RULE_ANY)
                        continue;
-               if (curr_rules.fps != isp->dfs->dfs_table[i].fps &&
-                   isp->dfs->dfs_table[i].fps != ISP_FREQ_RULE_ANY)
+               if (curr_rules.fps != dfs->dfs_table[i].fps &&
+                   dfs->dfs_table[i].fps != ISP_FREQ_RULE_ANY)
                        continue;
-               if (curr_rules.run_mode != isp->dfs->dfs_table[i].run_mode &&
-                   isp->dfs->dfs_table[i].run_mode != ISP_FREQ_RULE_ANY)
+               if (curr_rules.run_mode != dfs->dfs_table[i].run_mode &&
+                   dfs->dfs_table[i].run_mode != ISP_FREQ_RULE_ANY)
                        continue;
                break;
        }
 
-       if (i == isp->dfs->dfs_table_size)
-               new_freq = isp->dfs->max_freq_at_vmin;
+       if (i == dfs->dfs_table_size)
+               new_freq = dfs->max_freq_at_vmin;
        else
-               new_freq = isp->dfs->dfs_table[i].isp_freq;
+               new_freq = dfs->dfs_table[i].isp_freq;
 
 done:
        dev_dbg(isp->dev, "DFS target frequency=%d.\n", new_freq);