Re: [PATCH 1/2] memory: tegra: Add SID override programming for MC clients

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Ashish,

kernel test robot noticed the following build warnings:

[auto build test WARNING on tegra/for-next]
[also build test WARNING on linus/master v6.6 next-20231107]
[cannot apply to tegra-drm/drm/tegra/for-next]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Ashish-Mhetre/memory-tegra-Skip-SID-programming-if-SID-registers-aren-t-set/20231107-133149
base:   https://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux.git for-next
patch link:    https://lore.kernel.org/r/20231107052824.29418-1-amhetre%40nvidia.com
patch subject: [PATCH 1/2] memory: tegra: Add SID override programming for MC clients
config: arm64-defconfig (https://download.01.org/0day-ci/archive/20231107/202311071607.IzbwSn2f-lkp@xxxxxxxxx/config)
compiler: aarch64-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231107/202311071607.IzbwSn2f-lkp@xxxxxxxxx/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@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202311071607.IzbwSn2f-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

   drivers/memory/tegra/tegra186.c: In function 'tegra186_mc_resume':
   drivers/memory/tegra/tegra186.c:78:17: error: implicit declaration of function 'tegra186_mc_client_sid_override' [-Werror=implicit-function-declaration]
      78 |                 tegra186_mc_client_sid_override(mc, client, client->sid);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/memory/tegra/tegra186.c: At top level:
>> drivers/memory/tegra/tegra186.c:85:13: warning: conflicting types for 'tegra186_mc_client_sid_override'; have 'void(struct tegra_mc *, const struct tegra_mc_client *, unsigned int)'
      85 | static void tegra186_mc_client_sid_override(struct tegra_mc *mc,
         |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/memory/tegra/tegra186.c:85:13: error: static declaration of 'tegra186_mc_client_sid_override' follows non-static declaration
   drivers/memory/tegra/tegra186.c:78:17: note: previous implicit declaration of 'tegra186_mc_client_sid_override' with type 'void(struct tegra_mc *, const struct tegra_mc_client *, unsigned int)'
      78 |                 tegra186_mc_client_sid_override(mc, client, client->sid);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors


vim +85 drivers/memory/tegra/tegra186.c

7355c7b9ae0d45 Thierry Reding 2021-06-02   70  
142620fbbbbba0 Ashish Mhetre  2023-11-07   71  static int tegra186_mc_resume(struct tegra_mc *mc)
142620fbbbbba0 Ashish Mhetre  2023-11-07   72  {
142620fbbbbba0 Ashish Mhetre  2023-11-07   73  	unsigned int i;
142620fbbbbba0 Ashish Mhetre  2023-11-07   74  
142620fbbbbba0 Ashish Mhetre  2023-11-07   75  	for (i = 0; i < mc->soc->num_clients; i++) {
142620fbbbbba0 Ashish Mhetre  2023-11-07   76  		const struct tegra_mc_client *client = &mc->soc->clients[i];
142620fbbbbba0 Ashish Mhetre  2023-11-07   77  
142620fbbbbba0 Ashish Mhetre  2023-11-07  @78  		tegra186_mc_client_sid_override(mc, client, client->sid);
142620fbbbbba0 Ashish Mhetre  2023-11-07   79  	}
142620fbbbbba0 Ashish Mhetre  2023-11-07   80  
142620fbbbbba0 Ashish Mhetre  2023-11-07   81  	return 0;
142620fbbbbba0 Ashish Mhetre  2023-11-07   82  }
142620fbbbbba0 Ashish Mhetre  2023-11-07   83  
eaf89f1cd38cf7 Arnd Bergmann  2021-07-22   84  #if IS_ENABLED(CONFIG_IOMMU_API)
393d66fd2cacba Thierry Reding 2021-06-03  @85  static void tegra186_mc_client_sid_override(struct tegra_mc *mc,
393d66fd2cacba Thierry Reding 2021-06-03   86  					    const struct tegra_mc_client *client,
393d66fd2cacba Thierry Reding 2021-06-03   87  					    unsigned int sid)
393d66fd2cacba Thierry Reding 2021-06-03   88  {
393d66fd2cacba Thierry Reding 2021-06-03   89  	u32 value, old;
393d66fd2cacba Thierry Reding 2021-06-03   90  
393d66fd2cacba Thierry Reding 2021-06-03   91  	value = readl(mc->regs + client->regs.sid.security);
393d66fd2cacba Thierry Reding 2021-06-03   92  	if ((value & MC_SID_STREAMID_SECURITY_OVERRIDE) == 0) {
393d66fd2cacba Thierry Reding 2021-06-03   93  		/*
393d66fd2cacba Thierry Reding 2021-06-03   94  		 * If the secure firmware has locked this down the override
393d66fd2cacba Thierry Reding 2021-06-03   95  		 * for this memory client, there's nothing we can do here.
393d66fd2cacba Thierry Reding 2021-06-03   96  		 */
393d66fd2cacba Thierry Reding 2021-06-03   97  		if (value & MC_SID_STREAMID_SECURITY_WRITE_ACCESS_DISABLED)
393d66fd2cacba Thierry Reding 2021-06-03   98  			return;
393d66fd2cacba Thierry Reding 2021-06-03   99  
393d66fd2cacba Thierry Reding 2021-06-03  100  		/*
393d66fd2cacba Thierry Reding 2021-06-03  101  		 * Otherwise, try to set the override itself. Typically the
393d66fd2cacba Thierry Reding 2021-06-03  102  		 * secure firmware will never have set this configuration.
393d66fd2cacba Thierry Reding 2021-06-03  103  		 * Instead, it will either have disabled write access to
393d66fd2cacba Thierry Reding 2021-06-03  104  		 * this field, or it will already have set an explicit
393d66fd2cacba Thierry Reding 2021-06-03  105  		 * override itself.
393d66fd2cacba Thierry Reding 2021-06-03  106  		 */
393d66fd2cacba Thierry Reding 2021-06-03  107  		WARN_ON((value & MC_SID_STREAMID_SECURITY_OVERRIDE) == 0);
393d66fd2cacba Thierry Reding 2021-06-03  108  
393d66fd2cacba Thierry Reding 2021-06-03  109  		value |= MC_SID_STREAMID_SECURITY_OVERRIDE;
393d66fd2cacba Thierry Reding 2021-06-03  110  		writel(value, mc->regs + client->regs.sid.security);
393d66fd2cacba Thierry Reding 2021-06-03  111  	}
393d66fd2cacba Thierry Reding 2021-06-03  112  
393d66fd2cacba Thierry Reding 2021-06-03  113  	value = readl(mc->regs + client->regs.sid.override);
393d66fd2cacba Thierry Reding 2021-06-03  114  	old = value & MC_SID_STREAMID_OVERRIDE_MASK;
393d66fd2cacba Thierry Reding 2021-06-03  115  
393d66fd2cacba Thierry Reding 2021-06-03  116  	if (old != sid) {
393d66fd2cacba Thierry Reding 2021-06-03  117  		dev_dbg(mc->dev, "overriding SID %x for %s with %x\n", old,
393d66fd2cacba Thierry Reding 2021-06-03  118  			client->name, sid);
393d66fd2cacba Thierry Reding 2021-06-03  119  		writel(sid, mc->regs + client->regs.sid.override);
393d66fd2cacba Thierry Reding 2021-06-03  120  	}
393d66fd2cacba Thierry Reding 2021-06-03  121  }
eaf89f1cd38cf7 Arnd Bergmann  2021-07-22  122  #endif
393d66fd2cacba Thierry Reding 2021-06-03  123  

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



[Index of Archives]     [ARM Kernel]     [Linux ARM]     [Linux ARM MSM]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux