Re: [PATCH v2] gpio: pl061: Support implementations without GPIOINTR line

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

 



Hi Alexander,

I love your patch! Perhaps something to improve:

[auto build test WARNING on gpio/for-next]
[also build test WARNING on v5.12-rc3 next-20210318]
[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]

url:    https://github.com/0day-ci/linux/commits/Alexander-A-Sverdlin/gpio-pl061-Support-implementations-without-GPIOINTR-line/20210319-031352
base:   https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git for-next
config: arm-defconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/0day-ci/linux/commit/bbac642db33d1e12c5a11a9630822bf16706c988
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Alexander-A-Sverdlin/gpio-pl061-Support-implementations-without-GPIOINTR-line/20210319-031352
        git checkout bbac642db33d1e12c5a11a9630822bf16706c988
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arm 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All warnings (new ones prefixed by >>):

>> drivers/gpio/gpio-pl061.c:305:6: warning: no previous prototype for 'pl061_populate_parent_fwspec' [-Wmissing-prototypes]
     305 | void pl061_populate_parent_fwspec(struct gpio_chip *gc,
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpio/gpio-pl061.c: In function 'pl061_probe':
   drivers/gpio/gpio-pl061.c:416:9: error: 'struct gpio_irq_chip' has no member named 'populate_parent_fwspec'; did you mean 'populate_parent_alloc_arg'?
     416 |   girq->populate_parent_fwspec = pl061_populate_parent_fwspec;
         |         ^~~~~~~~~~~~~~~~~~~~~~
         |         populate_parent_alloc_arg


vim +/pl061_populate_parent_fwspec +305 drivers/gpio/gpio-pl061.c

   303	
   304	#ifdef CONFIG_OF
 > 305	void pl061_populate_parent_fwspec(struct gpio_chip *gc,
   306					  struct irq_fwspec *fwspec,
   307					  unsigned int parent_hwirq,
   308					  unsigned int parent_type)
   309	{
   310		struct device_node *dn = to_of_node(gc->irq.fwnode);
   311		struct of_phandle_args pha;
   312		int i;
   313	
   314		fwspec->param_count = 0;
   315	
   316		if (WARN_ON(!dn))
   317			return;
   318	
   319		/*
   320		 * This brute-force here is because of the fact PL061 is often paired
   321		 * with GIC-v3, which has 3-cell IRQ specifier (SPI/PPI selection), and
   322		 * unexpected range shifts in hwirq mapping (SPI IRQs are shifted by
   323		 * 32). So this is about reversing of gic_irq_domain_translate().
   324		 */
   325		for (i = 0; i < PL061_GPIO_NR; i++) {
   326			unsigned int p, pt;
   327	
   328			if (pl061_child_to_parent_hwirq(gc, i, parent_type, &p, &pt))
   329				continue;
   330			if (p == parent_hwirq)
   331				break;
   332		}
   333		if (WARN_ON(i == PL061_GPIO_NR))
   334			return;
   335	
   336		if (WARN_ON(of_irq_parse_one(dn, i, &pha)))
   337			return;
   338	
   339		fwspec->param_count = pha.args_count;
   340		for (i = 0; i < pha.args_count; i++)
   341			fwspec->param[i] = pha.args[i];
   342	}
   343	#endif
   344	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip


[Index of Archives]     [Linux SPI]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux