All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Otavio Salvador <otavio@ossystems.com.br>
Cc: oe-kbuild-all@lists.linux.dev
Subject: [freescale-fslc:5.15-2.2.x-imx 6175/29983] drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx.c:679:58: warning: variable 'shader_volt' set but not used
Date: Tue, 30 Apr 2024 08:47:26 +0800	[thread overview]
Message-ID: <202404300803.ZyxExMoi-lkp@intel.com> (raw)

tree:   https://github.com/Freescale/linux-fslc 5.15-2.2.x-imx
head:   5134e031114e613cb04858e248af5e65fe1e112f
commit: b83a99edcb3eb46360f4b4470a51e0f0749bd73e [6175/29983] Merge branch 'mxc/next' into next
config: arm64-randconfig-003-20240429 (https://download.01.org/0day-ci/archive/20240430/202404300803.ZyxExMoi-lkp@intel.com/config)
compiler: clang version 19.0.0git (https://github.com/llvm/llvm-project 5ef5eb66fb428aaf61fb51b709f065c069c11242)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240430/202404300803.ZyxExMoi-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202404300803.ZyxExMoi-lkp@intel.com/

All warnings (new ones prefixed by >>):

   In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx.c:56:
   In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_linux.h:63:
   In file included from include/linux/mm.h:1601:
   include/linux/vmstat.h:450:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
     450 |         return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
         |                               ~~~~~~~~~~~ ^ ~~~
>> drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx.c:679:58: warning: variable 'shader_volt' set but not used [-Wunused-but-set-variable]
     679 |         unsigned long core_freq, core_volt, shader_freq, shader_volt;
         |                                                          ^
>> drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx.c:630:5: warning: no previous prototype for function 'init_gpu_opp_table' [-Wmissing-prototypes]
     630 | int init_gpu_opp_table(struct device *dev)
         |     ^
   drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx.c:630:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     630 | int init_gpu_opp_table(struct device *dev)
         | ^
         | static 
>> drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx.c:725:5: warning: no previous prototype for function 'remove_gpu_opp_table' [-Wmissing-prototypes]
     725 | int remove_gpu_opp_table(void)
         |     ^
   drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx.c:725:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     725 | int remove_gpu_opp_table(void)
         | ^
         | static 
>> drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx.c:1197:5: warning: no previous prototype for function 'init_priv' [-Wmissing-prototypes]
    1197 | int init_priv(void)
         |     ^
   drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx.c:1197:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
    1197 | int init_priv(void)
         | ^
         | static 
>> drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx.c:1217:1: warning: no previous prototype for function 'free_priv' [-Wmissing-prototypes]
    1217 | free_priv(void)
         | ^
   drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx.c:1216:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
    1216 | void
         | ^
         | static 
   6 warnings generated.


vim +/shader_volt +679 drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx.c

3dcab85234f3a4 Xianzhong 2019-01-29  629  
3dcab85234f3a4 Xianzhong 2019-01-29 @630  int init_gpu_opp_table(struct device *dev)
3dcab85234f3a4 Xianzhong 2019-01-29  631  {
3dcab85234f3a4 Xianzhong 2019-01-29  632      const struct property *prop;
3dcab85234f3a4 Xianzhong 2019-01-29  633      const __be32 *val;
3dcab85234f3a4 Xianzhong 2019-01-29  634      int nr;
3dcab85234f3a4 Xianzhong 2019-01-29  635      int ret = 0;
3dcab85234f3a4 Xianzhong 2019-01-29  636      int i, p;
3dcab85234f3a4 Xianzhong 2019-01-29  637      struct imx_priv *priv = &imxPriv;
3dcab85234f3a4 Xianzhong 2019-01-29  638  
3dcab85234f3a4 Xianzhong 2019-01-29  639      priv->imx_gpu_govern.num_modes = 0;
3dcab85234f3a4 Xianzhong 2019-01-29  640  
3dcab85234f3a4 Xianzhong 2019-01-29  641      prop = of_find_property(dev->of_node, "operating-points", NULL);
3dcab85234f3a4 Xianzhong 2019-01-29  642      if (!prop) {
3dcab85234f3a4 Xianzhong 2019-01-29  643          return 0;
3dcab85234f3a4 Xianzhong 2019-01-29  644      }
3dcab85234f3a4 Xianzhong 2019-01-29  645  
3dcab85234f3a4 Xianzhong 2019-01-29  646      if (!prop->value) {
3dcab85234f3a4 Xianzhong 2019-01-29  647          dev_err(dev, "operating-points invalid. Frequency scaling will not work\n");
3dcab85234f3a4 Xianzhong 2019-01-29  648          return -ENODATA;
3dcab85234f3a4 Xianzhong 2019-01-29  649      }
3dcab85234f3a4 Xianzhong 2019-01-29  650  
3dcab85234f3a4 Xianzhong 2019-01-29  651      /*
3dcab85234f3a4 Xianzhong 2019-01-29  652       * Each OPP is a set of tuples consisting of frequency and
3dcab85234f3a4 Xianzhong 2019-01-29  653       * voltage like <freq-kHz vol-uV>.
3dcab85234f3a4 Xianzhong 2019-01-29  654       */
3dcab85234f3a4 Xianzhong 2019-01-29  655      nr = prop->length / sizeof(u32);
3dcab85234f3a4 Xianzhong 2019-01-29  656      if (nr % 2) {
3dcab85234f3a4 Xianzhong 2019-01-29  657          dev_err(dev, "%s: Invalid OPP list\n", __func__);
3dcab85234f3a4 Xianzhong 2019-01-29  658          return -EINVAL;
3dcab85234f3a4 Xianzhong 2019-01-29  659      }
3dcab85234f3a4 Xianzhong 2019-01-29  660  
3dcab85234f3a4 Xianzhong 2019-01-29  661      /*
3dcab85234f3a4 Xianzhong 2019-01-29  662       * We handle both cases where UNDERDRIVE is represented by a single tuple
3dcab85234f3a4 Xianzhong 2019-01-29  663       * or when it is represented by two. More than 4 tuples means that we have
3dcab85234f3a4 Xianzhong 2019-01-29  664       * the current mode defaulting to OVERDRIVE, while less than 3 means only
3dcab85234f3a4 Xianzhong 2019-01-29  665       * nominal. Lastly just two tuples means UNDERDRIVE. Note that the tuples
3dcab85234f3a4 Xianzhong 2019-01-29  666       * are divisible by 2 (X Y) hence there's no need to test for odd values.
3dcab85234f3a4 Xianzhong 2019-01-29  667       */
3dcab85234f3a4 Xianzhong 2019-01-29  668      if (nr < 6)
3dcab85234f3a4 Xianzhong 2019-01-29  669          priv->imx_gpu_govern.current_mode = UNDERDRIVE;
3dcab85234f3a4 Xianzhong 2019-01-29  670      else if (nr == 6 || nr == 8)
3dcab85234f3a4 Xianzhong 2019-01-29  671          priv->imx_gpu_govern.current_mode = NOMINAL;
3dcab85234f3a4 Xianzhong 2019-01-29  672      else
3dcab85234f3a4 Xianzhong 2019-01-29  673          priv->imx_gpu_govern.current_mode = OVERDRIVE;
3dcab85234f3a4 Xianzhong 2019-01-29  674  
3dcab85234f3a4 Xianzhong 2019-01-29  675      val = prop->value;
3dcab85234f3a4 Xianzhong 2019-01-29  676  
3dcab85234f3a4 Xianzhong 2019-01-29  677      for (p = 0, i = priv->imx_gpu_govern.current_mode; nr > 0 && i < GOVERN_COUNT; nr -= 4)
3dcab85234f3a4 Xianzhong 2019-01-29  678      {
3dcab85234f3a4 Xianzhong 2019-01-29 @679          unsigned long core_freq, core_volt, shader_freq, shader_volt;
3dcab85234f3a4 Xianzhong 2019-01-29  680  
3dcab85234f3a4 Xianzhong 2019-01-29  681          core_freq = be32_to_cpup(val++) * 1000;
3dcab85234f3a4 Xianzhong 2019-01-29  682          core_volt = be32_to_cpup(val++);
3dcab85234f3a4 Xianzhong 2019-01-29  683  
3dcab85234f3a4 Xianzhong 2019-01-29  684          if (nr == 2)
3dcab85234f3a4 Xianzhong 2019-01-29  685          {
3dcab85234f3a4 Xianzhong 2019-01-29  686              shader_freq = core_freq;
3dcab85234f3a4 Xianzhong 2019-01-29  687              shader_volt = core_volt;
3dcab85234f3a4 Xianzhong 2019-01-29  688          }
3dcab85234f3a4 Xianzhong 2019-01-29  689          else
3dcab85234f3a4 Xianzhong 2019-01-29  690          {
3dcab85234f3a4 Xianzhong 2019-01-29  691              shader_freq = be32_to_cpup(val++) * 1000;
3dcab85234f3a4 Xianzhong 2019-01-29  692              shader_volt = be32_to_cpup(val++);
3dcab85234f3a4 Xianzhong 2019-01-29  693          }
3dcab85234f3a4 Xianzhong 2019-01-29  694  
3dcab85234f3a4 Xianzhong 2019-01-29  695          /* We only register core_clk frequency */
3dcab85234f3a4 Xianzhong 2019-01-29  696          if (dev_pm_opp_add(dev, core_freq, core_volt))
3dcab85234f3a4 Xianzhong 2019-01-29  697          {
3dcab85234f3a4 Xianzhong 2019-01-29  698              dev_warn(dev, "%s: Failed to add OPP %ld\n",
3dcab85234f3a4 Xianzhong 2019-01-29  699                   __func__, core_freq);
3dcab85234f3a4 Xianzhong 2019-01-29  700              continue;
3dcab85234f3a4 Xianzhong 2019-01-29  701          }
3dcab85234f3a4 Xianzhong 2019-01-29  702  
3dcab85234f3a4 Xianzhong 2019-01-29  703          priv->imx_gpu_govern.core_clk_freq[i]   = core_freq;
3dcab85234f3a4 Xianzhong 2019-01-29  704          priv->imx_gpu_govern.shader_clk_freq[i] = shader_freq;
3dcab85234f3a4 Xianzhong 2019-01-29  705  
3dcab85234f3a4 Xianzhong 2019-01-29  706          p++;
3dcab85234f3a4 Xianzhong 2019-01-29  707      i++;
3dcab85234f3a4 Xianzhong 2019-01-29  708      }
3dcab85234f3a4 Xianzhong 2019-01-29  709  
3dcab85234f3a4 Xianzhong 2019-01-29  710      priv->imx_gpu_govern.num_modes = p;
3dcab85234f3a4 Xianzhong 2019-01-29  711      priv->imx_gpu_govern.dev = dev;
3dcab85234f3a4 Xianzhong 2019-01-29  712  
3dcab85234f3a4 Xianzhong 2019-01-29  713      if (priv->imx_gpu_govern.num_modes > 0)
3dcab85234f3a4 Xianzhong 2019-01-29  714      {
3dcab85234f3a4 Xianzhong 2019-01-29  715          ret = driver_create_file(dev->driver, &driver_attr_gpu_govern);
3dcab85234f3a4 Xianzhong 2019-01-29  716          if (ret) {
3dcab85234f3a4 Xianzhong 2019-01-29  717              dev_err(dev, "create gpu_govern attr failed (%d)\n", ret);
3dcab85234f3a4 Xianzhong 2019-01-29  718          return ret;
3dcab85234f3a4 Xianzhong 2019-01-29  719      }
3dcab85234f3a4 Xianzhong 2019-01-29  720      }
3dcab85234f3a4 Xianzhong 2019-01-29  721  
3dcab85234f3a4 Xianzhong 2019-01-29  722      return ret;
3dcab85234f3a4 Xianzhong 2019-01-29  723  }
3dcab85234f3a4 Xianzhong 2019-01-29  724  
3dcab85234f3a4 Xianzhong 2019-01-29 @725  int remove_gpu_opp_table(void)
3dcab85234f3a4 Xianzhong 2019-01-29  726  {
3dcab85234f3a4 Xianzhong 2019-01-29  727      struct imx_priv *priv = &imxPriv;
3dcab85234f3a4 Xianzhong 2019-01-29  728      struct device* dev = priv->imx_gpu_govern.dev;
3dcab85234f3a4 Xianzhong 2019-01-29  729      int i = 0;
3dcab85234f3a4 Xianzhong 2019-01-29  730      int max_modes;
3dcab85234f3a4 Xianzhong 2019-01-29  731  
3dcab85234f3a4 Xianzhong 2019-01-29  732      if (priv->imx_gpu_govern.num_modes == GOVERN_COUNT)
3dcab85234f3a4 Xianzhong 2019-01-29  733          max_modes = priv->imx_gpu_govern.num_modes - 1;
3dcab85234f3a4 Xianzhong 2019-01-29  734      else
3dcab85234f3a4 Xianzhong 2019-01-29  735          max_modes = priv->imx_gpu_govern.num_modes;
3dcab85234f3a4 Xianzhong 2019-01-29  736  
3dcab85234f3a4 Xianzhong 2019-01-29  737      /* if we don't have any modes available we don't have OPP */
3dcab85234f3a4 Xianzhong 2019-01-29  738      if (max_modes == 0)
3dcab85234f3a4 Xianzhong 2019-01-29  739          return 0;
3dcab85234f3a4 Xianzhong 2019-01-29  740  
3dcab85234f3a4 Xianzhong 2019-01-29  741      for (i = priv->imx_gpu_govern.current_mode; i <= max_modes; i++)
3dcab85234f3a4 Xianzhong 2019-01-29  742      {
3dcab85234f3a4 Xianzhong 2019-01-29  743          unsigned long core_freq;
3dcab85234f3a4 Xianzhong 2019-01-29  744  
3dcab85234f3a4 Xianzhong 2019-01-29  745          core_freq = priv->imx_gpu_govern.core_clk_freq[i];
3dcab85234f3a4 Xianzhong 2019-01-29  746          dev_pm_opp_remove(dev, core_freq);
3dcab85234f3a4 Xianzhong 2019-01-29  747      }
3dcab85234f3a4 Xianzhong 2019-01-29  748  
3dcab85234f3a4 Xianzhong 2019-01-29  749      if (i > 0)
3dcab85234f3a4 Xianzhong 2019-01-29  750      {
3dcab85234f3a4 Xianzhong 2019-01-29  751          driver_remove_file(dev->driver, &driver_attr_gpu_govern);
3dcab85234f3a4 Xianzhong 2019-01-29  752      }
3dcab85234f3a4 Xianzhong 2019-01-29  753  
3dcab85234f3a4 Xianzhong 2019-01-29  754      return 0;
3dcab85234f3a4 Xianzhong 2019-01-29  755  }
3dcab85234f3a4 Xianzhong 2019-01-29  756  #endif
3dcab85234f3a4 Xianzhong 2019-01-29  757  

:::::: The code at line 679 was first introduced by commit
:::::: 3dcab85234f3a4768e11d0fa9b18cfc9145c1131 MGS-4530-1 add 6.2.4.p4 gpu driver for L4.19

:::::: TO: Xianzhong <xianzhong.li@nxp.com>
:::::: CC: Dong Aisheng <aisheng.dong@nxp.com>

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

                 reply	other threads:[~2024-04-30  0:47 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202404300803.ZyxExMoi-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=otavio@ossystems.com.br \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.