Linux GPIO subsystem development
 help / color / mirror / Atom feed
* Re: [PATCH 1/6 v2] gpio: Add support for hierarchical IRQ domains
From: Brian Masney @ 2019-08-16  1:10 UTC (permalink / raw)
  To: Linus Walleij
  Cc: linux-gpio, Bartosz Golaszewski, Thomas Gleixner, Marc Zyngier,
	Lina Iyer, Jon Hunter, Sowjanya Komatineni, Bitan Biswas,
	linux-tegra, David Daney, Masahiro Yamada, Thierry Reding
In-Reply-To: <20190808123242.5359-1-linus.walleij@linaro.org>

Hi Linus,

On Thu, Aug 08, 2019 at 02:32:37PM +0200, Linus Walleij wrote:
> Hierarchical IRQ domains can be used to stack different IRQ
> controllers on top of each other.
> 
> Bring hierarchical IRQ domains into the GPIOLIB core with the
> following basic idea:
> 
> Drivers that need their interrupts handled hierarchically
> specify a callback to translate the child hardware IRQ and
> IRQ type for each GPIO offset to a parent hardware IRQ and
> parent hardware IRQ type.
> 
> Users have to pass the callback, fwnode, and parent irqdomain
> before calling gpiochip_irqchip_add().
> 
> We use the new method of just filling in the struct
> gpio_irq_chip before adding the gpiochip for all hierarchical
> irqchips of this type.
> 
> The code path for device tree is pretty straight-forward,
> while the code path for old boardfiles or anything else will
> be more convoluted requireing upfront allocation of the
> interrupts when adding the chip.
> 
> One specific use-case where this can be useful is if a power
> management controller has top-level controls for wakeup
> interrupts. In such cases, the power management controller can
> be a parent to other interrupt controllers and program
> additional registers when an IRQ has its wake capability
> enabled or disabled.
> 
> The hierarchical irqchip helper code will only be available
> when IRQ_DOMAIN_HIERARCHY is selected to GPIO chips using
> this should select or depend on that symbol. When using
> hierarchical IRQs, the parent interrupt controller must
> also be hierarchical all the way up to the top interrupt
> controller wireing directly into the CPU, so on systems
> that do not have this we can get rid of all the extra
> code for supporting hierarchical irqs.
> 
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Marc Zyngier <marc.zyngier@arm.com>
> Cc: Lina Iyer <ilina@codeaurora.org>
> Cc: Jon Hunter <jonathanh@nvidia.com>
> Cc: Sowjanya Komatineni <skomatineni@nvidia.com>
> Cc: Bitan Biswas <bbiswas@nvidia.com>
> Cc: linux-tegra@vger.kernel.org
> Cc: David Daney <david.daney@cavium.com>
> Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
> Cc: Brian Masney <masneyb@onstation.org>
> Signed-off-by: Thierry Reding <treding@nvidia.com>
> Signed-off-by: Brian Masney <masneyb@onstation.org>
> Co-developed-by: Brian Masney <masneyb@onstation.org>
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
> ---

[ snip ]


> @@ -1827,10 +2099,23 @@ EXPORT_SYMBOL_GPL(gpiochip_irq_domain_deactivate);
>  
>  static int gpiochip_to_irq(struct gpio_chip *chip, unsigned offset)

   ^^^^^^

I started to convert ssbi-gpio over to this and pm8xxx_gpio_to_irq() has
this little snippet that's different from spmi-gpio:

	[ fwspec mapping code ]

	/*
	 * Cache the IRQ since pm8xxx_gpio_get() needs this to get determine the
	 * line level.
	 */
	pin->irq = ret;

Here's the relevant code in pm8xxx_gpio_get():

	if (pin->mode == PM8XXX_GPIO_MODE_OUTPUT) {
		ret = pin->output_value;
	} else if (pin->irq >= 0) {
		ret = irq_get_irqchip_state(pin->irq, IRQCHIP_STATE_LINE_LEVEL, &state);
		...
	}

What do you think about using EXPORT_SYMBOL_GPL() for gpiochip_to_irq() so
that we can call it in pm8xxx_gpio_to_irq()? Or do you have any other
suggestions for how we can get rid of that IRQ cache?

I don't see any other issues for ssbi-gpio.

Brian

^ permalink raw reply

* [gpio:devel-cleanup-irqchip-threaded 20/20] drivers/gpio/gpio-104-dio-48e.c:441:23: error: assignment from incompatible pointer type
From: kbuild test robot @ 2019-08-16  1:01 UTC (permalink / raw)
  To: Linus Walleij; +Cc: kbuild-all, linux-gpio

[-- Attachment #1: Type: text/plain, Size: 3973 bytes --]

tree:   https://kernel.googlesource.com/pub/scm/linux/kernel/git/linusw/linux-gpio.git devel-cleanup-irqchip-threaded
head:   3a992c673da81e8d95a2657df5234cd5cb05afa4
commit: 3a992c673da81e8d95a2657df5234cd5cb05afa4 [20/20] gpio: Handle generic and threaded IRQs on gpio irqchips
config: x86_64-allmodconfig (attached as .config)
compiler: gcc-7 (Debian 7.4.0-10) 7.4.0
reproduce:
        git checkout 3a992c673da81e8d95a2657df5234cd5cb05afa4
        # save the attached .config to linux build tree
        make ARCH=x86_64 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   drivers/gpio/gpio-104-dio-48e.c: In function 'dio48e_probe':
>> drivers/gpio/gpio-104-dio-48e.c:441:23: error: assignment from incompatible pointer type [-Werror=incompatible-pointer-types]
     girq->parent_handler = dio48e_irq_handler;
                          ^
   cc1: some warnings being treated as errors

vim +441 drivers/gpio/gpio-104-dio-48e.c

   398	
   399	static int dio48e_probe(struct device *dev, unsigned int id)
   400	{
   401		struct dio48e_gpio *dio48egpio;
   402		const char *const name = dev_name(dev);
   403		struct gpio_irq_chip *girq;
   404		int err;
   405	
   406		dio48egpio = devm_kzalloc(dev, sizeof(*dio48egpio), GFP_KERNEL);
   407		if (!dio48egpio)
   408			return -ENOMEM;
   409	
   410		if (!devm_request_region(dev, base[id], DIO48E_EXTENT, name)) {
   411			dev_err(dev, "Unable to lock port addresses (0x%X-0x%X)\n",
   412				base[id], base[id] + DIO48E_EXTENT);
   413			return -EBUSY;
   414		}
   415	
   416		err = devm_request_irq(dev, irq[id], dio48e_irq_handler, 0, name,
   417				       dio48egpio);
   418		if (err) {
   419			dev_err(dev, "failed to request IRQ\n");
   420			return err;
   421		}
   422	
   423		dio48egpio->chip.label = name;
   424		dio48egpio->chip.parent = dev;
   425		dio48egpio->chip.owner = THIS_MODULE;
   426		dio48egpio->chip.base = -1;
   427		dio48egpio->chip.ngpio = DIO48E_NGPIO;
   428		dio48egpio->chip.names = dio48e_names;
   429		dio48egpio->chip.get_direction = dio48e_gpio_get_direction;
   430		dio48egpio->chip.direction_input = dio48e_gpio_direction_input;
   431		dio48egpio->chip.direction_output = dio48e_gpio_direction_output;
   432		dio48egpio->chip.get = dio48e_gpio_get;
   433		dio48egpio->chip.get_multiple = dio48e_gpio_get_multiple;
   434		dio48egpio->chip.set = dio48e_gpio_set;
   435		dio48egpio->chip.set_multiple = dio48e_gpio_set_multiple;
   436		dio48egpio->base = base[id];
   437	
   438		girq = &dio48egpio->chip.irq;
   439		girq->chip = &dio48e_irqchip;
   440		girq->parent_handler_type = GPIO_IRQ_HANDLER_GENERIC;
 > 441		girq->parent_handler = dio48e_irq_handler;
   442		girq->num_parents = 1;
   443		girq->parents = devm_kcalloc(dev, 1, sizeof(*girq->parents),
   444					     GFP_KERNEL);
   445		if (!girq->parents)
   446			return -ENOMEM;
   447		girq->parents[0] = irq[id];
   448		girq->default_type = IRQ_TYPE_NONE;
   449		girq->handler = handle_edge_irq;
   450	
   451		raw_spin_lock_init(&dio48egpio->lock);
   452	
   453		/* initialize all GPIO as output */
   454		outb(0x80, base[id] + 3);
   455		outb(0x00, base[id]);
   456		outb(0x00, base[id] + 1);
   457		outb(0x00, base[id] + 2);
   458		outb(0x00, base[id] + 3);
   459		outb(0x80, base[id] + 7);
   460		outb(0x00, base[id] + 4);
   461		outb(0x00, base[id] + 5);
   462		outb(0x00, base[id] + 6);
   463		outb(0x00, base[id] + 7);
   464	
   465		/* disable IRQ by default */
   466		inb(base[id] + 0xB);
   467	
   468		err = devm_gpiochip_add_data(dev, &dio48egpio->chip, dio48egpio);
   469		if (err) {
   470			dev_err(dev, "GPIO registering failed (%d)\n", err);
   471			return err;
   472		}
   473	
   474		return 0;
   475	}
   476	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 70207 bytes --]

^ permalink raw reply

* [gpio:devel-gpio-driver-isolation 23/31] drivers/pinctrl/pinctrl-st.c:1212:15: error: implicit declaration of function 'of_get_named_gpio'; did you mean 'of_get_address'?
From: kbuild test robot @ 2019-08-16  0:57 UTC (permalink / raw)
  To: Linus Walleij; +Cc: kbuild-all, linux-gpio

[-- Attachment #1: Type: text/plain, Size: 8016 bytes --]

tree:   https://kernel.googlesource.com/pub/scm/linux/kernel/git/linusw/linux-gpio.git devel-gpio-driver-isolation
head:   95af28c7af12975e4c4ccb3d33974fadc8b4656a
commit: 5796da7f61eaa27912b2753b777daefcdc821cd1 [23/31] pinctrl: st: Include the right header
config: arm-defconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (GCC) 7.4.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        git checkout 5796da7f61eaa27912b2753b777daefcdc821cd1
        # save the attached .config to linux build tree
        GCC_VERSION=7.4.0 make.cross ARCH=arm 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   drivers/pinctrl/pinctrl-st.c: In function 'st_pctl_dt_parse_groups':
>> drivers/pinctrl/pinctrl-st.c:1212:15: error: implicit declaration of function 'of_get_named_gpio'; did you mean 'of_get_address'? [-Werror=implicit-function-declaration]
      conf->pin = of_get_named_gpio(pins, pp->name, 0);
                  ^~~~~~~~~~~~~~~~~
                  of_get_address
   cc1: some warnings being treated as errors

vim +1212 drivers/pinctrl/pinctrl-st.c

701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1157  
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1158  /*
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1159   * Each pin is represented in of the below forms.
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1160   * <bank offset mux direction rt_type rt_delay rt_clk>
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1161   */
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1162  static int st_pctl_dt_parse_groups(struct device_node *np,
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1163  	struct st_pctl_group *grp, struct st_pinctrl *info, int idx)
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1164  {
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1165  	/* bank pad direction val altfunction */
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1166  	const __be32 *list;
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1167  	struct property *pp;
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1168  	struct st_pinconf *conf;
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1169  	struct device_node *pins;
483d70d73beaec Wen Yang            2019-04-12  1170  	int i = 0, npins = 0, nr_props, ret = 0;
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1171  
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1172  	pins = of_get_child_by_name(np, "st,pins");
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1173  	if (!pins)
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1174  		return -ENODATA;
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1175  
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1176  	for_each_property_of_node(pins, pp) {
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1177  		/* Skip those we do not want to proceed */
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1178  		if (!strcmp(pp->name, "name"))
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1179  			continue;
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1180  
95bdb0ea3668d8 Heinrich Schuchardt 2016-11-05  1181  		if (pp->length / sizeof(__be32) >= OF_GPIO_ARGS_MIN) {
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1182  			npins++;
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1183  		} else {
94f4e54cecaf3e Rob Herring         2018-08-27  1184  			pr_warn("Invalid st,pins in %pOFn node\n", np);
483d70d73beaec Wen Yang            2019-04-12  1185  			ret = -EINVAL;
483d70d73beaec Wen Yang            2019-04-12  1186  			goto out_put_node;
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1187  		}
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1188  	}
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1189  
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1190  	grp->npins = npins;
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1191  	grp->name = np->name;
a86854d0c599b3 Kees Cook           2018-06-12  1192  	grp->pins = devm_kcalloc(info->dev, npins, sizeof(u32), GFP_KERNEL);
a86854d0c599b3 Kees Cook           2018-06-12  1193  	grp->pin_conf = devm_kcalloc(info->dev,
a86854d0c599b3 Kees Cook           2018-06-12  1194  					npins, sizeof(*conf), GFP_KERNEL);
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1195  
483d70d73beaec Wen Yang            2019-04-12  1196  	if (!grp->pins || !grp->pin_conf) {
483d70d73beaec Wen Yang            2019-04-12  1197  		ret = -ENOMEM;
483d70d73beaec Wen Yang            2019-04-12  1198  		goto out_put_node;
483d70d73beaec Wen Yang            2019-04-12  1199  	}
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1200  
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1201  	/* <bank offset mux direction rt_type rt_delay rt_clk> */
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1202  	for_each_property_of_node(pins, pp) {
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1203  		if (!strcmp(pp->name, "name"))
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1204  			continue;
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1205  		nr_props = pp->length/sizeof(u32);
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1206  		list = pp->value;
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1207  		conf = &grp->pin_conf[i];
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1208  
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1209  		/* bank & offset */
1f978217a0c687 Rickard Strandqvist 2014-06-26  1210  		be32_to_cpup(list++);
1f978217a0c687 Rickard Strandqvist 2014-06-26  1211  		be32_to_cpup(list++);
701016c0cba594 Srinivas KANDAGATLA 2013-06-20 @1212  		conf->pin = of_get_named_gpio(pins, pp->name, 0);
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1213  		conf->name = pp->name;
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1214  		grp->pins[i] = conf->pin;
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1215  		/* mux */
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1216  		conf->altfunc = be32_to_cpup(list++);
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1217  		conf->config = 0;
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1218  		/* direction */
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1219  		conf->config |= be32_to_cpup(list++);
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1220  		/* rt_type rt_delay rt_clk */
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1221  		if (nr_props >= OF_GPIO_ARGS_MIN + OF_RT_ARGS_MIN) {
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1222  			/* rt_type */
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1223  			conf->config |= be32_to_cpup(list++);
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1224  			/* rt_delay */
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1225  			conf->config |= be32_to_cpup(list++);
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1226  			/* rt_clk */
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1227  			if (nr_props > OF_GPIO_ARGS_MIN + OF_RT_ARGS_MIN)
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1228  				conf->config |= be32_to_cpup(list++);
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1229  		}
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1230  		i++;
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1231  	}
483d70d73beaec Wen Yang            2019-04-12  1232  
483d70d73beaec Wen Yang            2019-04-12  1233  out_put_node:
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1234  	of_node_put(pins);
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1235  
483d70d73beaec Wen Yang            2019-04-12  1236  	return ret;
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1237  }
701016c0cba594 Srinivas KANDAGATLA 2013-06-20  1238  

:::::: The code at line 1212 was first introduced by commit
:::::: 701016c0cba594d5dbd26652ed1e52b0fe2926fd pinctrl: st: Add pinctrl and pinconf support.

:::::: TO: Srinivas KANDAGATLA <srinivas.kandagatla@st.com>
:::::: CC: Mark Brown <broonie@linaro.org>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 48009 bytes --]

^ permalink raw reply

* linusw/for-next boot: 55 boots: 0 failed, 55 passed (v5.3-rc4-33-g02c05fd1775c)
From: kernelci.org bot @ 2019-08-16  0:07 UTC (permalink / raw)
  To: linux-gpio, fellows

linusw/for-next boot: 55 boots: 0 failed, 55 passed (v5.3-rc4-33-g02c05fd1775c)

Full Boot Summary: https://kernelci.org/boot/all/job/linusw/branch/for-next/kernel/v5.3-rc4-33-g02c05fd1775c/
Full Build Summary: https://kernelci.org/build/linusw/branch/for-next/kernel/v5.3-rc4-33-g02c05fd1775c/

Tree: linusw
Branch: for-next
Git Describe: v5.3-rc4-33-g02c05fd1775c
Git Commit: 02c05fd1775c1c2e2a5be4ec3eec352e6538e3fa
Git URL: https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git/
Tested: 39 unique boards, 15 SoC families, 3 builds out of 6

---
For more info write to <info@kernelci.org>

^ permalink raw reply

* linusw/for-next build: 6 builds: 0 failed, 6 passed, 34 warnings (v5.3-rc4-33-g02c05fd1775c)
From: kernelci.org bot @ 2019-08-15 23:22 UTC (permalink / raw)
  To: linux-gpio, fellows

linusw/for-next build: 6 builds: 0 failed, 6 passed, 34 warnings (v5.3-rc4-33-g02c05fd1775c)

Full Build Summary: https://kernelci.org/build/linusw/branch/for-next/kernel/v5.3-rc4-33-g02c05fd1775c/

Tree: linusw
Branch: for-next
Git Describe: v5.3-rc4-33-g02c05fd1775c
Git Commit: 02c05fd1775c1c2e2a5be4ec3eec352e6538e3fa
Git URL: https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git/
Built: 6 unique architectures

Warnings Detected:

arc:
    nsim_hs_defconfig (gcc-8): 5 warnings

arm64:
    defconfig (gcc-8): 5 warnings

arm:
    multi_v7_defconfig (gcc-8): 21 warnings

mips:
    32r2el_defconfig (gcc-8): 3 warnings

riscv:

x86_64:


Warnings summary:

    5    <stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
    2    drivers/pinctrl/qcom/pinctrl-spmi-gpio.c:800:20: warning: this statement may fall through [-Wimplicit-fallthrough=]
    2    drivers/pinctrl/qcom/pinctrl-spmi-gpio.c:795:20: warning: this statement may fall through [-Wimplicit-fallthrough=]
    2    drivers/pinctrl/pinctrl-rockchip.c:2783:3: warning: this statement may fall through [-Wimplicit-fallthrough=]
    2    drivers/gpu/drm/sun4i/sun4i_tcon.c:316:7: warning: this statement may fall through [-Wimplicit-fallthrough=]
    1    include/linux/compiler.h:328:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
    1    drivers/video/fbdev/sh_mobile_lcdcfb.c:2086:22: warning: this statement may fall through [-Wimplicit-fallthrough=]
    1    drivers/video/fbdev/sh_mobile_lcdcfb.c:1596:22: warning: this statement may fall through [-Wimplicit-fallthrough=]
    1    drivers/usb/phy/phy-ab8500-usb.c:459:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
    1    drivers/usb/phy/phy-ab8500-usb.c:440:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
    1    drivers/usb/phy/phy-ab8500-usb.c:424:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
    1    drivers/usb/phy/phy-ab8500-usb.c:370:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
    1    drivers/usb/phy/phy-ab8500-usb.c:352:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
    1    drivers/usb/phy/phy-ab8500-usb.c:332:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
    1    drivers/mmc/host/sdhci-s3c.c:613:19: warning: this statement may fall through [-Wimplicit-fallthrough=]
    1    drivers/mmc/host/atmel-mci.c:2426:40: warning: this statement may fall through [-Wimplicit-fallthrough=]
    1    drivers/mmc/host/atmel-mci.c:2422:28: warning: this statement may fall through [-Wimplicit-fallthrough=]
    1    drivers/mmc/host/atmel-mci.c:2415:30: warning: this statement may fall through [-Wimplicit-fallthrough=]
    1    drivers/iommu/arm-smmu-v3.c:1189:7: warning: this statement may fall through [-Wimplicit-fallthrough=]
    1    drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c:992:6: warning: this statement may fall through [-Wimplicit-fallthrough=]
    1    drivers/gpu/drm/sti/sti_hdmi.c:855:13: warning: this statement may fall through [-Wimplicit-fallthrough=]
    1    drivers/gpu/drm/sti/sti_hdmi.c:853:13: warning: this statement may fall through [-Wimplicit-fallthrough=]
    1    drivers/gpu/drm/sti/sti_hdmi.c:851:13: warning: this statement may fall through [-Wimplicit-fallthrough=]
    1    drivers/dma/imx-dma.c:542:6: warning: this statement may fall through [-Wimplicit-fallthrough=]
    1    arch/arc/kernel/unwind.c:836:20: warning: this statement may fall through [-Wimplicit-fallthrough=]
    1    arch/arc/kernel/unwind.c:827:20: warning: this statement may fall through [-Wimplicit-fallthrough=]

================================================================================

Detailed per-defconfig build reports:

--------------------------------------------------------------------------------
32r2el_defconfig (mips, gcc-8) — PASS, 0 errors, 3 warnings, 0 section mismatches

Warnings:
    <stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
    <stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
    <stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]

--------------------------------------------------------------------------------
defconfig (riscv, gcc-8) — PASS, 0 errors, 0 warnings, 0 section mismatches

--------------------------------------------------------------------------------
defconfig (arm64, gcc-8) — PASS, 0 errors, 5 warnings, 0 section mismatches

Warnings:
    drivers/iommu/arm-smmu-v3.c:1189:7: warning: this statement may fall through [-Wimplicit-fallthrough=]
    drivers/pinctrl/qcom/pinctrl-spmi-gpio.c:795:20: warning: this statement may fall through [-Wimplicit-fallthrough=]
    drivers/pinctrl/qcom/pinctrl-spmi-gpio.c:800:20: warning: this statement may fall through [-Wimplicit-fallthrough=]
    drivers/pinctrl/pinctrl-rockchip.c:2783:3: warning: this statement may fall through [-Wimplicit-fallthrough=]
    drivers/gpu/drm/sun4i/sun4i_tcon.c:316:7: warning: this statement may fall through [-Wimplicit-fallthrough=]

--------------------------------------------------------------------------------
multi_v7_defconfig (arm, gcc-8) — PASS, 0 errors, 21 warnings, 0 section mismatches

Warnings:
    drivers/dma/imx-dma.c:542:6: warning: this statement may fall through [-Wimplicit-fallthrough=]
    drivers/mmc/host/sdhci-s3c.c:613:19: warning: this statement may fall through [-Wimplicit-fallthrough=]
    drivers/mmc/host/atmel-mci.c:2415:30: warning: this statement may fall through [-Wimplicit-fallthrough=]
    drivers/mmc/host/atmel-mci.c:2422:28: warning: this statement may fall through [-Wimplicit-fallthrough=]
    drivers/mmc/host/atmel-mci.c:2426:40: warning: this statement may fall through [-Wimplicit-fallthrough=]
    drivers/pinctrl/qcom/pinctrl-spmi-gpio.c:795:20: warning: this statement may fall through [-Wimplicit-fallthrough=]
    drivers/pinctrl/qcom/pinctrl-spmi-gpio.c:800:20: warning: this statement may fall through [-Wimplicit-fallthrough=]
    drivers/pinctrl/pinctrl-rockchip.c:2783:3: warning: this statement may fall through [-Wimplicit-fallthrough=]
    drivers/video/fbdev/sh_mobile_lcdcfb.c:2086:22: warning: this statement may fall through [-Wimplicit-fallthrough=]
    drivers/video/fbdev/sh_mobile_lcdcfb.c:1596:22: warning: this statement may fall through [-Wimplicit-fallthrough=]
    drivers/usb/phy/phy-ab8500-usb.c:424:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
    drivers/usb/phy/phy-ab8500-usb.c:440:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
    drivers/usb/phy/phy-ab8500-usb.c:459:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
    drivers/usb/phy/phy-ab8500-usb.c:332:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
    drivers/usb/phy/phy-ab8500-usb.c:352:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
    drivers/usb/phy/phy-ab8500-usb.c:370:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
    drivers/gpu/drm/sti/sti_hdmi.c:851:13: warning: this statement may fall through [-Wimplicit-fallthrough=]
    drivers/gpu/drm/sti/sti_hdmi.c:853:13: warning: this statement may fall through [-Wimplicit-fallthrough=]
    drivers/gpu/drm/sti/sti_hdmi.c:855:13: warning: this statement may fall through [-Wimplicit-fallthrough=]
    drivers/gpu/drm/sun4i/sun4i_tcon.c:316:7: warning: this statement may fall through [-Wimplicit-fallthrough=]
    drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c:992:6: warning: this statement may fall through [-Wimplicit-fallthrough=]

--------------------------------------------------------------------------------
nsim_hs_defconfig (arc, gcc-8) — PASS, 0 errors, 5 warnings, 0 section mismatches

Warnings:
    <stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
    include/linux/compiler.h:328:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
    arch/arc/kernel/unwind.c:827:20: warning: this statement may fall through [-Wimplicit-fallthrough=]
    arch/arc/kernel/unwind.c:836:20: warning: this statement may fall through [-Wimplicit-fallthrough=]
    <stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]

--------------------------------------------------------------------------------
x86_64_defconfig (x86_64, gcc-8) — PASS, 0 errors, 0 warnings, 0 section mismatches

---
For more info write to <info@kernelci.org>

^ permalink raw reply

* [gpio:devel-cleanup-irqchip 38/38] drivers/pinctrl//intel/pinctrl-cherryview.c:1632:8: error: 'struct gpio_irq_chip' has no member named 'default_handler'; did you mean 'default_type'?
From: kbuild test robot @ 2019-08-15 22:40 UTC (permalink / raw)
  To: Linus Walleij; +Cc: kbuild-all, linux-gpio

[-- Attachment #1: Type: text/plain, Size: 5260 bytes --]

tree:   https://kernel.googlesource.com/pub/scm/linux/kernel/git/linusw/linux-gpio.git devel-cleanup-irqchip
head:   9c22b8db0826250f6e119389d70793fd8cb5d4bf
commit: 9c22b8db0826250f6e119389d70793fd8cb5d4bf [38/38] RFC: pinctrl: cherryview: Pass irqchip when adding gpiochip
config: x86_64-allmodconfig (attached as .config)
compiler: gcc-7 (Debian 7.4.0-10) 7.4.0
reproduce:
        git checkout 9c22b8db0826250f6e119389d70793fd8cb5d4bf
        # save the attached .config to linux build tree
        make ARCH=x86_64 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   drivers/pinctrl//intel/pinctrl-cherryview.c: In function 'chv_gpio_probe':
>> drivers/pinctrl//intel/pinctrl-cherryview.c:1632:8: error: 'struct gpio_irq_chip' has no member named 'default_handler'; did you mean 'default_type'?
     girq->default_handler = IRQ_TYPE_NONE;
           ^~~~~~~~~~~~~~~
           default_type

vim +1632 drivers/pinctrl//intel/pinctrl-cherryview.c

  1545	
  1546	static int chv_gpio_probe(struct chv_pinctrl *pctrl, int irq)
  1547	{
  1548		const struct chv_gpio_pinrange *range;
  1549		struct gpio_chip *chip = &pctrl->chip;
  1550		struct gpio_irq_chip *girq;
  1551		bool need_valid_mask = !dmi_check_system(chv_no_valid_mask);
  1552		const struct chv_community *community = pctrl->community;
  1553		int ret, i, irq_base;
  1554	
  1555		*chip = chv_gpio_chip;
  1556	
  1557		chip->ngpio = community->pins[community->npins - 1].number + 1;
  1558		chip->label = dev_name(pctrl->dev);
  1559		chip->parent = pctrl->dev;
  1560		chip->base = -1;
  1561		chip->irq.need_valid_mask = need_valid_mask;
  1562	
  1563		for (i = 0; i < community->ngpio_ranges; i++) {
  1564			range = &community->gpio_ranges[i];
  1565			ret = gpiochip_add_pin_range(chip, dev_name(pctrl->dev),
  1566						     range->base, range->base,
  1567						     range->npins);
  1568			if (ret) {
  1569				dev_err(pctrl->dev, "failed to add GPIO pin range\n");
  1570				return ret;
  1571			}
  1572		}
  1573	
  1574		/* Do not add GPIOs that can only generate GPEs to the IRQ domain */
  1575		for (i = 0; i < community->npins; i++) {
  1576			const struct pinctrl_pin_desc *desc;
  1577			u32 intsel;
  1578	
  1579			desc = &community->pins[i];
  1580	
  1581			intsel = readl(chv_padreg(pctrl, desc->number, CHV_PADCTRL0));
  1582			intsel &= CHV_PADCTRL0_INTSEL_MASK;
  1583			intsel >>= CHV_PADCTRL0_INTSEL_SHIFT;
  1584	
  1585			if (need_valid_mask && intsel >= community->nirqs)
  1586				clear_bit(i, chip->irq.valid_mask);
  1587		}
  1588	
  1589		/*
  1590		 * The same set of machines in chv_no_valid_mask[] have incorrectly
  1591		 * configured GPIOs that generate spurious interrupts so we use
  1592		 * this same list to apply another quirk for them.
  1593		 *
  1594		 * See also https://bugzilla.kernel.org/show_bug.cgi?id=197953.
  1595		 */
  1596		if (!need_valid_mask) {
  1597			/*
  1598			 * Mask all interrupts the community is able to generate
  1599			 * but leave the ones that can only generate GPEs unmasked.
  1600			 */
  1601			chv_writel(GENMASK(31, pctrl->community->nirqs),
  1602				   pctrl->regs + CHV_INTMASK);
  1603		}
  1604	
  1605		/* Clear all interrupts */
  1606		chv_writel(0xffff, pctrl->regs + CHV_INTSTAT);
  1607	
  1608		/*
  1609		 * FIXME: this picks as many IRQs as there are lines in the
  1610		 * "community", which is then later associated per-range below
  1611		 * registering the gpio_chip. This is actually hierarchical IRQ.
  1612		 */
  1613		if (!need_valid_mask) {
  1614			irq_base = devm_irq_alloc_descs(pctrl->dev, -1, 0,
  1615							community->npins, NUMA_NO_NODE);
  1616			if (irq_base < 0) {
  1617				dev_err(pctrl->dev, "Failed to allocate IRQ numbers\n");
  1618				return irq_base;
  1619			}
  1620		}
  1621	
  1622		girq = &chip->irq;
  1623		girq->chip = &chv_gpio_irqchip;
  1624		girq->parent_handler = chv_gpio_irq_handler;
  1625		girq->num_parents = 1;
  1626		girq->parents = devm_kcalloc(pctrl->dev, 1,
  1627					     sizeof(*girq->parents),
  1628					     GFP_KERNEL);
  1629		if (!girq->parents)
  1630			return -ENOMEM;
  1631		girq->parents[0] = irq;
> 1632		girq->default_handler = IRQ_TYPE_NONE;
  1633		girq->handler = handle_bad_irq;
  1634	
  1635		ret = devm_gpiochip_add_data(pctrl->dev, chip, pctrl);
  1636		if (ret) {
  1637			dev_err(pctrl->dev, "Failed to register gpiochip\n");
  1638			return ret;
  1639		}
  1640	
  1641		/*
  1642		 * FIXME: this associates a different IRQ with each discrete range
  1643		 * inside the community. If we use the hierarchical irq support,
  1644		 * the .translate() function can do this translation for each IRQ.
  1645		 */
  1646		if (!need_valid_mask) {
  1647			for (i = 0; i < community->ngpio_ranges; i++) {
  1648				range = &community->gpio_ranges[i];
  1649	
  1650				irq_domain_associate_many(chip->irq.domain, irq_base,
  1651							  range->base, range->npins);
  1652				irq_base += range->npins;
  1653			}
  1654		}
  1655	
  1656		return 0;
  1657	}
  1658	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 70207 bytes --]

^ permalink raw reply

* [gpio:devel-gpio-driver-isolation 30/31] drivers//mfd/sm501.c:1082:2: error: implicit declaration of function 'gpiochip_remove'; did you mean 'klist_remove'?
From: kbuild test robot @ 2019-08-15 22:15 UTC (permalink / raw)
  To: Linus Walleij; +Cc: kbuild-all, linux-gpio

[-- Attachment #1: Type: text/plain, Size: 12032 bytes --]

tree:   https://kernel.googlesource.com/pub/scm/linux/kernel/git/linusw/linux-gpio.git devel-gpio-driver-isolation
head:   95af28c7af12975e4c4ccb3d33974fadc8b4656a
commit: 6a690b9e1ee32cfe12a86891f5db2dabcca4e5cf [30/31] gpio: Drop driver header from legacy header include
config: mips-allmodconfig (attached as .config)
compiler: mips-linux-gcc (GCC) 7.4.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        git checkout 6a690b9e1ee32cfe12a86891f5db2dabcca4e5cf
        # save the attached .config to linux build tree
        GCC_VERSION=7.4.0 make.cross ARCH=mips 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   drivers//mfd/sm501.c:40:19: error: field 'gpio' has incomplete type
     struct gpio_chip gpio;
                      ^~~~
   drivers//mfd/sm501.c: In function 'sm501_gpio_get':
   drivers//mfd/sm501.c:889:35: error: implicit declaration of function 'gpiochip_get_data'; did you mean 'gpio_get_value'? [-Werror=implicit-function-declaration]
     struct sm501_gpio_chip *smgpio = gpiochip_get_data(chip);
                                      ^~~~~~~~~~~~~~~~~
                                      gpio_get_value
   drivers//mfd/sm501.c:889:35: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
   drivers//mfd/sm501.c: In function 'sm501_gpio_set':
   drivers//mfd/sm501.c:920:35: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
     struct sm501_gpio_chip *smchip = gpiochip_get_data(chip);
                                      ^~~~~~~~~~~~~~~~~
   drivers//mfd/sm501.c: In function 'sm501_gpio_input':
   drivers//mfd/sm501.c:945:35: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
     struct sm501_gpio_chip *smchip = gpiochip_get_data(chip);
                                      ^~~~~~~~~~~~~~~~~
   drivers//mfd/sm501.c: In function 'sm501_gpio_output':
   drivers//mfd/sm501.c:971:35: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
     struct sm501_gpio_chip *smchip = gpiochip_get_data(chip);
                                      ^~~~~~~~~~~~~~~~~
   drivers//mfd/sm501.c: At top level:
   drivers//mfd/sm501.c:1003:21: error: variable 'gpio_chip_template' has initializer but incomplete type
    static const struct gpio_chip gpio_chip_template = {
                        ^~~~~~~~~
   drivers//mfd/sm501.c:1004:3: error: 'const struct gpio_chip' has no member named 'ngpio'
     .ngpio   = 32,
      ^~~~~
   drivers//mfd/sm501.c:1004:13: warning: excess elements in struct initializer
     .ngpio   = 32,
                ^~
   drivers//mfd/sm501.c:1004:13: note: (near initialization for 'gpio_chip_template')
   drivers//mfd/sm501.c:1005:3: error: 'const struct gpio_chip' has no member named 'direction_input'
     .direction_input = sm501_gpio_input,
      ^~~~~~~~~~~~~~~
   drivers//mfd/sm501.c:1005:21: warning: excess elements in struct initializer
     .direction_input = sm501_gpio_input,
                        ^~~~~~~~~~~~~~~~
   drivers//mfd/sm501.c:1005:21: note: (near initialization for 'gpio_chip_template')
   drivers//mfd/sm501.c:1006:3: error: 'const struct gpio_chip' has no member named 'direction_output'
     .direction_output = sm501_gpio_output,
      ^~~~~~~~~~~~~~~~
   drivers//mfd/sm501.c:1006:22: warning: excess elements in struct initializer
     .direction_output = sm501_gpio_output,
                         ^~~~~~~~~~~~~~~~~
   drivers//mfd/sm501.c:1006:22: note: (near initialization for 'gpio_chip_template')
   drivers//mfd/sm501.c:1007:3: error: 'const struct gpio_chip' has no member named 'set'
     .set   = sm501_gpio_set,
      ^~~
   drivers//mfd/sm501.c:1007:11: warning: excess elements in struct initializer
     .set   = sm501_gpio_set,
              ^~~~~~~~~~~~~~
   drivers//mfd/sm501.c:1007:11: note: (near initialization for 'gpio_chip_template')
   drivers//mfd/sm501.c:1008:3: error: 'const struct gpio_chip' has no member named 'get'
     .get   = sm501_gpio_get,
      ^~~
   drivers//mfd/sm501.c:1008:11: warning: excess elements in struct initializer
     .get   = sm501_gpio_get,
              ^~~~~~~~~~~~~~
   drivers//mfd/sm501.c:1008:11: note: (near initialization for 'gpio_chip_template')
   drivers//mfd/sm501.c: In function 'sm501_gpio_register_chip':
   drivers//mfd/sm501.c:1026:8: error: dereferencing pointer to incomplete type 'struct gpio_chip'
      gchip->label  = "SM501-HIGH";
           ^~
   drivers//mfd/sm501.c:1036:9: error: implicit declaration of function 'gpiochip_add_data'; did you mean 'tty_audit_add_data'? [-Werror=implicit-function-declaration]
     return gpiochip_add_data(gchip, chip);
            ^~~~~~~~~~~~~~~~~
            tty_audit_add_data
   drivers//mfd/sm501.c: In function 'sm501_register_gpio':
>> drivers//mfd/sm501.c:1082:2: error: implicit declaration of function 'gpiochip_remove'; did you mean 'klist_remove'? [-Werror=implicit-function-declaration]
     gpiochip_remove(&gpio->low.gpio);
     ^~~~~~~~~~~~~~~
     klist_remove
   drivers//mfd/sm501.c: At top level:
   drivers//mfd/sm501.c:1003:31: error: storage size of 'gpio_chip_template' isn't known
    static const struct gpio_chip gpio_chip_template = {
                                  ^~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors

vim +1082 drivers//mfd/sm501.c

f61be273d3699d Ben Dooks        2008-07-25  1010  
f791be492f76de Bill Pemberton   2012-11-19  1011  static int sm501_gpio_register_chip(struct sm501_devdata *sm,
f61be273d3699d Ben Dooks        2008-07-25  1012  					      struct sm501_gpio *gpio,
f61be273d3699d Ben Dooks        2008-07-25  1013  					      struct sm501_gpio_chip *chip)
f61be273d3699d Ben Dooks        2008-07-25  1014  {
f61be273d3699d Ben Dooks        2008-07-25  1015  	struct sm501_platdata *pdata = sm->platdata;
f61be273d3699d Ben Dooks        2008-07-25  1016  	struct gpio_chip *gchip = &chip->gpio;
60e540d617b40e Arnaud Patard    2008-07-25  1017  	int base = pdata->gpio_base;
f61be273d3699d Ben Dooks        2008-07-25  1018  
28130bea3bcfef Ben Dooks        2008-07-25  1019  	chip->gpio = gpio_chip_template;
f61be273d3699d Ben Dooks        2008-07-25  1020  
f61be273d3699d Ben Dooks        2008-07-25  1021  	if (chip == &gpio->high) {
60e540d617b40e Arnaud Patard    2008-07-25  1022  		if (base > 0)
f61be273d3699d Ben Dooks        2008-07-25  1023  			base += 32;
f61be273d3699d Ben Dooks        2008-07-25  1024  		chip->regbase = gpio->regs + SM501_GPIO_DATA_HIGH;
98325f8f8e9508 Ben Dooks        2009-01-10  1025  		chip->control = sm->regs + SM501_GPIO63_32_CONTROL;
f61be273d3699d Ben Dooks        2008-07-25 @1026  		gchip->label  = "SM501-HIGH";
f61be273d3699d Ben Dooks        2008-07-25  1027  	} else {
f61be273d3699d Ben Dooks        2008-07-25  1028  		chip->regbase = gpio->regs + SM501_GPIO_DATA_LOW;
98325f8f8e9508 Ben Dooks        2009-01-10  1029  		chip->control = sm->regs + SM501_GPIO31_0_CONTROL;
f61be273d3699d Ben Dooks        2008-07-25  1030  		gchip->label  = "SM501-LOW";
f61be273d3699d Ben Dooks        2008-07-25  1031  	}
f61be273d3699d Ben Dooks        2008-07-25  1032  
f61be273d3699d Ben Dooks        2008-07-25  1033  	gchip->base   = base;
f61be273d3699d Ben Dooks        2008-07-25  1034  	chip->ourgpio = gpio;
f61be273d3699d Ben Dooks        2008-07-25  1035  
3a504105f0e4cf Linus Walleij    2016-03-30  1036  	return gpiochip_add_data(gchip, chip);
f61be273d3699d Ben Dooks        2008-07-25  1037  }
f61be273d3699d Ben Dooks        2008-07-25  1038  
f791be492f76de Bill Pemberton   2012-11-19  1039  static int sm501_register_gpio(struct sm501_devdata *sm)
f61be273d3699d Ben Dooks        2008-07-25  1040  {
f61be273d3699d Ben Dooks        2008-07-25  1041  	struct sm501_gpio *gpio = &sm->gpio;
f61be273d3699d Ben Dooks        2008-07-25  1042  	resource_size_t iobase = sm->io_res->start + SM501_GPIO;
f61be273d3699d Ben Dooks        2008-07-25  1043  	int ret;
f61be273d3699d Ben Dooks        2008-07-25  1044  
f61be273d3699d Ben Dooks        2008-07-25  1045  	dev_dbg(sm->dev, "registering gpio block %08llx\n",
f61be273d3699d Ben Dooks        2008-07-25  1046  		(unsigned long long)iobase);
f61be273d3699d Ben Dooks        2008-07-25  1047  
f61be273d3699d Ben Dooks        2008-07-25  1048  	spin_lock_init(&gpio->lock);
f61be273d3699d Ben Dooks        2008-07-25  1049  
f61be273d3699d Ben Dooks        2008-07-25  1050  	gpio->regs_res = request_mem_region(iobase, 0x20, "sm501-gpio");
4202151f5d4ad8 Markus Elfring   2018-03-08  1051  	if (!gpio->regs_res) {
f61be273d3699d Ben Dooks        2008-07-25  1052  		dev_err(sm->dev, "gpio: failed to request region\n");
f61be273d3699d Ben Dooks        2008-07-25  1053  		return -ENXIO;
f61be273d3699d Ben Dooks        2008-07-25  1054  	}
f61be273d3699d Ben Dooks        2008-07-25  1055  
f61be273d3699d Ben Dooks        2008-07-25  1056  	gpio->regs = ioremap(iobase, 0x20);
4202151f5d4ad8 Markus Elfring   2018-03-08  1057  	if (!gpio->regs) {
f61be273d3699d Ben Dooks        2008-07-25  1058  		dev_err(sm->dev, "gpio: failed to remap registers\n");
f61be273d3699d Ben Dooks        2008-07-25  1059  		ret = -ENXIO;
28130bea3bcfef Ben Dooks        2008-07-25  1060  		goto err_claimed;
f61be273d3699d Ben Dooks        2008-07-25  1061  	}
f61be273d3699d Ben Dooks        2008-07-25  1062  
f61be273d3699d Ben Dooks        2008-07-25  1063  	/* Register both our chips. */
f61be273d3699d Ben Dooks        2008-07-25  1064  
f61be273d3699d Ben Dooks        2008-07-25  1065  	ret = sm501_gpio_register_chip(sm, gpio, &gpio->low);
f61be273d3699d Ben Dooks        2008-07-25  1066  	if (ret) {
f61be273d3699d Ben Dooks        2008-07-25  1067  		dev_err(sm->dev, "failed to add low chip\n");
f61be273d3699d Ben Dooks        2008-07-25  1068  		goto err_mapped;
f61be273d3699d Ben Dooks        2008-07-25  1069  	}
f61be273d3699d Ben Dooks        2008-07-25  1070  
f61be273d3699d Ben Dooks        2008-07-25  1071  	ret = sm501_gpio_register_chip(sm, gpio, &gpio->high);
f61be273d3699d Ben Dooks        2008-07-25  1072  	if (ret) {
f61be273d3699d Ben Dooks        2008-07-25  1073  		dev_err(sm->dev, "failed to add high chip\n");
f61be273d3699d Ben Dooks        2008-07-25  1074  		goto err_low_chip;
f61be273d3699d Ben Dooks        2008-07-25  1075  	}
f61be273d3699d Ben Dooks        2008-07-25  1076  
f61be273d3699d Ben Dooks        2008-07-25  1077  	gpio->registered = 1;
f61be273d3699d Ben Dooks        2008-07-25  1078  
f61be273d3699d Ben Dooks        2008-07-25  1079  	return 0;
f61be273d3699d Ben Dooks        2008-07-25  1080  
f61be273d3699d Ben Dooks        2008-07-25  1081   err_low_chip:
88d5e520aa9701 abdoulaye berthe 2014-07-12 @1082  	gpiochip_remove(&gpio->low.gpio);
f61be273d3699d Ben Dooks        2008-07-25  1083  
f61be273d3699d Ben Dooks        2008-07-25  1084   err_mapped:
28130bea3bcfef Ben Dooks        2008-07-25  1085  	iounmap(gpio->regs);
28130bea3bcfef Ben Dooks        2008-07-25  1086  
28130bea3bcfef Ben Dooks        2008-07-25  1087   err_claimed:
f61be273d3699d Ben Dooks        2008-07-25  1088  	release_resource(gpio->regs_res);
f61be273d3699d Ben Dooks        2008-07-25  1089  	kfree(gpio->regs_res);
f61be273d3699d Ben Dooks        2008-07-25  1090  
f61be273d3699d Ben Dooks        2008-07-25  1091  	return ret;
f61be273d3699d Ben Dooks        2008-07-25  1092  }
f61be273d3699d Ben Dooks        2008-07-25  1093  

:::::: The code at line 1082 was first introduced by commit
:::::: 88d5e520aa9701eb3e4f46165e02097cc03d363a driver:gpio remove all usage of gpio_remove retval in driver

:::::: TO: abdoulaye berthe <berthe.ab@gmail.com>
:::::: CC: Linus Walleij <linus.walleij@linaro.org>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 61475 bytes --]

^ permalink raw reply

* [gpio:devel-gpio-driver-isolation 30/31] drivers/pinctrl/pinctrl-rza2.c:82:2: error: implicit declaration of function 'writew'; did you mean 'wrmces'?
From: kbuild test robot @ 2019-08-15 22:14 UTC (permalink / raw)
  To: Linus Walleij; +Cc: kbuild-all, linux-gpio

[-- Attachment #1: Type: text/plain, Size: 10961 bytes --]

tree:   https://kernel.googlesource.com/pub/scm/linux/kernel/git/linusw/linux-gpio.git devel-gpio-driver-isolation
head:   95af28c7af12975e4c4ccb3d33974fadc8b4656a
commit: 6a690b9e1ee32cfe12a86891f5db2dabcca4e5cf [30/31] gpio: Drop driver header from legacy header include
config: alpha-allmodconfig (attached as .config)
compiler: alpha-linux-gcc (GCC) 7.4.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        git checkout 6a690b9e1ee32cfe12a86891f5db2dabcca4e5cf
        # save the attached .config to linux build tree
        GCC_VERSION=7.4.0 make.cross ARCH=alpha 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   drivers/pinctrl/pinctrl-rza2.c: In function 'rza2_set_pin_function':
   drivers/pinctrl/pinctrl-rza2.c:79:10: error: implicit declaration of function 'readw' [-Werror=implicit-function-declaration]
     reg16 = readw(pfc_base + RZA2_PDR(port));
             ^~~~~
>> drivers/pinctrl/pinctrl-rza2.c:82:2: error: implicit declaration of function 'writew'; did you mean 'wrmces'? [-Werror=implicit-function-declaration]
     writew(reg16, pfc_base + RZA2_PDR(port));
     ^~~~~~
     wrmces
   drivers/pinctrl/pinctrl-rza2.c:85:9: error: implicit declaration of function 'readb' [-Werror=implicit-function-declaration]
     reg8 = readb(pfc_base + RZA2_PMR(port));
            ^~~~~
>> drivers/pinctrl/pinctrl-rza2.c:87:2: error: implicit declaration of function 'writeb'; did you mean 'wrmces'? [-Werror=implicit-function-declaration]
     writeb(reg8, pfc_base + RZA2_PMR(port));
     ^~~~~~
     wrmces
   drivers/pinctrl/pinctrl-rza2.c: In function 'rza2_chip_get_direction':
   drivers/pinctrl/pinctrl-rza2.c:128:35: error: implicit declaration of function 'gpiochip_get_data'; did you mean 'gpio_get_value'? [-Werror=implicit-function-declaration]
     struct rza2_pinctrl_priv *priv = gpiochip_get_data(chip);
                                      ^~~~~~~~~~~~~~~~~
                                      gpio_get_value
   drivers/pinctrl/pinctrl-rza2.c:128:35: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
   drivers/pinctrl/pinctrl-rza2.c: In function 'rza2_chip_direction_input':
   drivers/pinctrl/pinctrl-rza2.c:154:35: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
     struct rza2_pinctrl_priv *priv = gpiochip_get_data(chip);
                                      ^~~~~~~~~~~~~~~~~
   drivers/pinctrl/pinctrl-rza2.c: In function 'rza2_chip_get':
   drivers/pinctrl/pinctrl-rza2.c:163:35: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
     struct rza2_pinctrl_priv *priv = gpiochip_get_data(chip);
                                      ^~~~~~~~~~~~~~~~~
   drivers/pinctrl/pinctrl-rza2.c: In function 'rza2_chip_set':
   drivers/pinctrl/pinctrl-rza2.c:173:35: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
     struct rza2_pinctrl_priv *priv = gpiochip_get_data(chip);
                                      ^~~~~~~~~~~~~~~~~
   drivers/pinctrl/pinctrl-rza2.c: In function 'rza2_chip_direction_output':
   drivers/pinctrl/pinctrl-rza2.c:191:35: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
     struct rza2_pinctrl_priv *priv = gpiochip_get_data(chip);
                                      ^~~~~~~~~~~~~~~~~
   drivers/pinctrl/pinctrl-rza2.c: At top level:
   drivers/pinctrl/pinctrl-rza2.c:225:15: error: variable 'chip' has initializer but incomplete type
    static struct gpio_chip chip = {
                  ^~~~~~~~~
   drivers/pinctrl/pinctrl-rza2.c:226:3: error: 'struct gpio_chip' has no member named 'names'
     .names = rza2_gpio_names,
      ^~~~~
   drivers/pinctrl/pinctrl-rza2.c:226:11: warning: excess elements in struct initializer
     .names = rza2_gpio_names,
              ^~~~~~~~~~~~~~~
   drivers/pinctrl/pinctrl-rza2.c:226:11: note: (near initialization for 'chip')
   drivers/pinctrl/pinctrl-rza2.c:227:3: error: 'struct gpio_chip' has no member named 'base'
     .base = -1,
      ^~~~
   drivers/pinctrl/pinctrl-rza2.c:227:10: warning: excess elements in struct initializer
     .base = -1,
             ^
   drivers/pinctrl/pinctrl-rza2.c:227:10: note: (near initialization for 'chip')
   drivers/pinctrl/pinctrl-rza2.c:228:3: error: 'struct gpio_chip' has no member named 'get_direction'
     .get_direction = rza2_chip_get_direction,
      ^~~~~~~~~~~~~
   drivers/pinctrl/pinctrl-rza2.c:228:19: warning: excess elements in struct initializer
     .get_direction = rza2_chip_get_direction,
                      ^~~~~~~~~~~~~~~~~~~~~~~
   drivers/pinctrl/pinctrl-rza2.c:228:19: note: (near initialization for 'chip')
   drivers/pinctrl/pinctrl-rza2.c:229:3: error: 'struct gpio_chip' has no member named 'direction_input'
     .direction_input = rza2_chip_direction_input,
      ^~~~~~~~~~~~~~~
   drivers/pinctrl/pinctrl-rza2.c:229:21: warning: excess elements in struct initializer
     .direction_input = rza2_chip_direction_input,
                        ^~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/pinctrl/pinctrl-rza2.c:229:21: note: (near initialization for 'chip')
   drivers/pinctrl/pinctrl-rza2.c:230:3: error: 'struct gpio_chip' has no member named 'direction_output'
     .direction_output = rza2_chip_direction_output,
      ^~~~~~~~~~~~~~~~
   drivers/pinctrl/pinctrl-rza2.c:230:22: warning: excess elements in struct initializer
     .direction_output = rza2_chip_direction_output,
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/pinctrl/pinctrl-rza2.c:230:22: note: (near initialization for 'chip')
   drivers/pinctrl/pinctrl-rza2.c:231:3: error: 'struct gpio_chip' has no member named 'get'
     .get = rza2_chip_get,
      ^~~
   drivers/pinctrl/pinctrl-rza2.c:231:9: warning: excess elements in struct initializer
     .get = rza2_chip_get,
            ^~~~~~~~~~~~~
   drivers/pinctrl/pinctrl-rza2.c:231:9: note: (near initialization for 'chip')
   drivers/pinctrl/pinctrl-rza2.c:232:3: error: 'struct gpio_chip' has no member named 'set'
     .set = rza2_chip_set,
      ^~~
   drivers/pinctrl/pinctrl-rza2.c:232:9: warning: excess elements in struct initializer
     .set = rza2_chip_set,
            ^~~~~~~~~~~~~
   drivers/pinctrl/pinctrl-rza2.c:232:9: note: (near initialization for 'chip')
   drivers/pinctrl/pinctrl-rza2.c: In function 'rza2_gpio_register':
   drivers/pinctrl/pinctrl-rza2.c:241:6: error: invalid use of undefined type 'struct gpio_chip'
     chip.label = devm_kasprintf(priv->dev, GFP_KERNEL, "%pOFn", np);
         ^
   drivers/pinctrl/pinctrl-rza2.c:242:6: error: invalid use of undefined type 'struct gpio_chip'
     chip.of_node = np;
         ^
   drivers/pinctrl/pinctrl-rza2.c:243:6: error: invalid use of undefined type 'struct gpio_chip'
     chip.parent = priv->dev;
         ^
   drivers/pinctrl/pinctrl-rza2.c:244:6: error: invalid use of undefined type 'struct gpio_chip'
     chip.ngpio = priv->npins;
         ^
   drivers/pinctrl/pinctrl-rza2.c:262:30: error: invalid use of undefined type 'struct gpio_chip'
     priv->gpio_range.name = chip.label;
                                 ^
   drivers/pinctrl/pinctrl-rza2.c:266:8: error: implicit declaration of function 'devm_gpiochip_add_data'; did you mean 'devm_gpiod_put'? [-Werror=implicit-function-declaration]
     ret = devm_gpiochip_add_data(priv->dev, &chip, priv);
           ^~~~~~~~~~~~~~~~~~~~~~
           devm_gpiod_put
   drivers/pinctrl/pinctrl-rza2.c: In function 'rza2_dt_node_to_map':
   drivers/pinctrl/pinctrl-rza2.c:382:9: error: implicit declaration of function 'kzalloc'; did you mean 'd_alloc'? [-Werror=implicit-function-declaration]

vim +82 drivers/pinctrl/pinctrl-rza2.c

b59d0e78270678 Chris Brandt 2018-11-15   70  
b59d0e78270678 Chris Brandt 2018-11-15   71  static void rza2_set_pin_function(void __iomem *pfc_base, u8 port, u8 pin,
b59d0e78270678 Chris Brandt 2018-11-15   72  				  u8 func)
b59d0e78270678 Chris Brandt 2018-11-15   73  {
b59d0e78270678 Chris Brandt 2018-11-15   74  	u16 mask16;
b59d0e78270678 Chris Brandt 2018-11-15   75  	u16 reg16;
b59d0e78270678 Chris Brandt 2018-11-15   76  	u8 reg8;
b59d0e78270678 Chris Brandt 2018-11-15   77  
b59d0e78270678 Chris Brandt 2018-11-15   78  	/* Set pin to 'Non-use (Hi-z input protection)'  */
b59d0e78270678 Chris Brandt 2018-11-15  @79  	reg16 = readw(pfc_base + RZA2_PDR(port));
b59d0e78270678 Chris Brandt 2018-11-15   80  	mask16 = RZA2_PDR_MASK << (pin * 2);
b59d0e78270678 Chris Brandt 2018-11-15   81  	reg16 &= ~mask16;
b59d0e78270678 Chris Brandt 2018-11-15  @82  	writew(reg16, pfc_base + RZA2_PDR(port));
b59d0e78270678 Chris Brandt 2018-11-15   83  
b59d0e78270678 Chris Brandt 2018-11-15   84  	/* Temporarily switch to GPIO */
b59d0e78270678 Chris Brandt 2018-11-15   85  	reg8 = readb(pfc_base + RZA2_PMR(port));
b59d0e78270678 Chris Brandt 2018-11-15   86  	reg8 &= ~BIT(pin);
b59d0e78270678 Chris Brandt 2018-11-15  @87  	writeb(reg8, pfc_base + RZA2_PMR(port));
b59d0e78270678 Chris Brandt 2018-11-15   88  
b59d0e78270678 Chris Brandt 2018-11-15   89  	/* PFS Register Write Protect : OFF */
b59d0e78270678 Chris Brandt 2018-11-15   90  	writeb(0x00, pfc_base + RZA2_PWPR);		/* B0WI=0, PFSWE=0 */
b59d0e78270678 Chris Brandt 2018-11-15   91  	writeb(PWPR_PFSWE, pfc_base + RZA2_PWPR);	/* B0WI=0, PFSWE=1 */
b59d0e78270678 Chris Brandt 2018-11-15   92  
b59d0e78270678 Chris Brandt 2018-11-15   93  	/* Set Pin function (interrupt disabled, ISEL=0) */
b59d0e78270678 Chris Brandt 2018-11-15   94  	writeb(func, pfc_base + RZA2_PFS(port, pin));
b59d0e78270678 Chris Brandt 2018-11-15   95  
b59d0e78270678 Chris Brandt 2018-11-15   96  	/* PFS Register Write Protect : ON */
b59d0e78270678 Chris Brandt 2018-11-15   97  	writeb(0x00, pfc_base + RZA2_PWPR);	/* B0WI=0, PFSWE=0 */
b59d0e78270678 Chris Brandt 2018-11-15   98  	writeb(0x80, pfc_base + RZA2_PWPR);	/* B0WI=1, PFSWE=0 */
b59d0e78270678 Chris Brandt 2018-11-15   99  
b59d0e78270678 Chris Brandt 2018-11-15  100  	/* Port Mode  : Peripheral module pin functions */
b59d0e78270678 Chris Brandt 2018-11-15  101  	reg8 = readb(pfc_base + RZA2_PMR(port));
b59d0e78270678 Chris Brandt 2018-11-15  102  	reg8 |= BIT(pin);
b59d0e78270678 Chris Brandt 2018-11-15  103  	writeb(reg8, pfc_base + RZA2_PMR(port));
b59d0e78270678 Chris Brandt 2018-11-15  104  }
b59d0e78270678 Chris Brandt 2018-11-15  105  

:::::: The code at line 82 was first introduced by commit
:::::: b59d0e782706785b7042539e820e95df3be4d04c pinctrl: Add RZ/A2 pin and gpio controller

:::::: TO: Chris Brandt <chris.brandt@renesas.com>
:::::: CC: Geert Uytterhoeven <geert+renesas@glider.be>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 58010 bytes --]

^ permalink raw reply

* [gpio:devel-cleanup-irqchip-threaded 20/20] htmldocs: include/linux/gpio/driver.h:38: warning: Enum value 'GPIO_IRQ_HANDLER_GENERIC' not described in enum 'gpio_irq_handler'
From: kbuild test robot @ 2019-08-15 22:06 UTC (permalink / raw)
  To: Linus Walleij; +Cc: kbuild-all, linux-gpio

[-- Attachment #1: Type: text/plain, Size: 13371 bytes --]

tree:   https://kernel.googlesource.com/pub/scm/linux/kernel/git/linusw/linux-gpio.git devel-cleanup-irqchip-threaded
head:   3a992c673da81e8d95a2657df5234cd5cb05afa4
commit: 3a992c673da81e8d95a2657df5234cd5cb05afa4 [20/20] gpio: Handle generic and threaded IRQs on gpio irqchips
reproduce: make htmldocs

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

   Warning: The Sphinx 'sphinx_rtd_theme' HTML theme was not found. Make sure you have the theme installed to produce pretty HTML output. Falling back to the default theme.
   WARNING: dot(1) not found, for better output quality install graphviz from http://www.graphviz.org
   WARNING: convert(1) not found, for SVG to PDF conversion install ImageMagick (https://www.imagemagick.org)
   include/linux/regulator/machine.h:196: warning: Function parameter or member 'max_uV_step' not described in 'regulation_constraints'
   include/linux/regulator/driver.h:223: warning: Function parameter or member 'resume' not described in 'regulator_ops'
   include/linux/w1.h:272: warning: Function parameter or member 'of_match_table' not described in 'w1_family'
   include/linux/i2c.h:337: warning: Function parameter or member 'init_irq' not described in 'i2c_client'
>> include/linux/gpio/driver.h:38: warning: Enum value 'GPIO_IRQ_HANDLER_GENERIC' not described in enum 'gpio_irq_handler'
>> include/linux/gpio/driver.h:38: warning: Enum value 'GPIO_IRQ_HANDLER_THREADED' not described in enum 'gpio_irq_handler'
   drivers/gpio/gpiolib-of.c:92: warning: Excess function parameter 'dev' description in 'of_gpio_need_valid_mask'
   lib/genalloc.c:1: warning: 'gen_pool_add_virt' not found
   lib/genalloc.c:1: warning: 'gen_pool_alloc' not found
   lib/genalloc.c:1: warning: 'gen_pool_free' not found
   lib/genalloc.c:1: warning: 'gen_pool_alloc_algo' not found
   include/linux/spi/spi.h:190: warning: Function parameter or member 'driver_override' not described in 'spi_device'
   fs/direct-io.c:258: warning: Excess function parameter 'offset' description in 'dio_complete'
   fs/libfs.c:496: warning: Excess function parameter 'available' description in 'simple_write_end'
   fs/posix_acl.c:647: warning: Function parameter or member 'inode' not described in 'posix_acl_update_mode'
   fs/posix_acl.c:647: warning: Function parameter or member 'mode_p' not described in 'posix_acl_update_mode'
   fs/posix_acl.c:647: warning: Function parameter or member 'acl' not described in 'posix_acl_update_mode'
   drivers/usb/typec/bus.c:1: warning: 'typec_altmode_unregister_driver' not found
   drivers/usb/typec/bus.c:1: warning: 'typec_altmode_register_driver' not found
   drivers/usb/typec/class.c:1: warning: 'typec_altmode_register_notifier' not found
   drivers/usb/typec/class.c:1: warning: 'typec_altmode_unregister_notifier' not found
   include/linux/input/sparse-keymap.h:43: warning: Function parameter or member 'sw' not described in 'key_entry'
   include/linux/clk.h:381: warning: Function parameter or member 'num_clks' not described in 'devm_clk_bulk_get_optional'
   mm/util.c:1: warning: 'get_user_pages_fast' not found
   mm/slab.c:4215: warning: Function parameter or member 'objp' not described in '__ksize'
   drivers/gpu/drm/mcde/mcde_drv.c:1: warning: 'ST-Ericsson MCDE DRM Driver' not found
   drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c:142: warning: Function parameter or member 'blockable' not described in 'amdgpu_mn_read_lock'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:347: warning: cannot understand function prototype: 'struct amdgpu_vm_pt_cursor '
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:348: warning: cannot understand function prototype: 'struct amdgpu_vm_pt_cursor '
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:494: warning: Function parameter or member 'start' not described in 'amdgpu_vm_pt_first_dfs'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:546: warning: Function parameter or member 'adev' not described in 'for_each_amdgpu_vm_pt_dfs_safe'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:546: warning: Function parameter or member 'vm' not described in 'for_each_amdgpu_vm_pt_dfs_safe'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:546: warning: Function parameter or member 'start' not described in 'for_each_amdgpu_vm_pt_dfs_safe'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:546: warning: Function parameter or member 'cursor' not described in 'for_each_amdgpu_vm_pt_dfs_safe'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:546: warning: Function parameter or member 'entry' not described in 'for_each_amdgpu_vm_pt_dfs_safe'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:823: warning: Function parameter or member 'level' not described in 'amdgpu_vm_bo_param'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1285: warning: Function parameter or member 'params' not described in 'amdgpu_vm_update_flags'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1285: warning: Function parameter or member 'bo' not described in 'amdgpu_vm_update_flags'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1285: warning: Function parameter or member 'level' not described in 'amdgpu_vm_update_flags'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1285: warning: Function parameter or member 'pe' not described in 'amdgpu_vm_update_flags'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1285: warning: Function parameter or member 'addr' not described in 'amdgpu_vm_update_flags'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1285: warning: Function parameter or member 'count' not described in 'amdgpu_vm_update_flags'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1285: warning: Function parameter or member 'incr' not described in 'amdgpu_vm_update_flags'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1285: warning: Function parameter or member 'flags' not described in 'amdgpu_vm_update_flags'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:2822: warning: Function parameter or member 'pasid' not described in 'amdgpu_vm_make_compute'
   drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c:378: warning: Excess function parameter 'entry' description in 'amdgpu_irq_dispatch'
   drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c:379: warning: Function parameter or member 'ih' not described in 'amdgpu_irq_dispatch'
   drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c:379: warning: Excess function parameter 'entry' description in 'amdgpu_irq_dispatch'
   drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c:1: warning: no structured comments found
   drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c:1: warning: no structured comments found
   drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c:1: warning: 'pp_dpm_sclk pp_dpm_mclk pp_dpm_pcie' not found
   drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h:131: warning: Incorrect use of kernel-doc format:          * @atomic_obj
   drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h:237: warning: Incorrect use of kernel-doc format:          * gpu_info FW provided soc bounding box struct or 0 if not
   drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h:242: warning: Function parameter or member 'atomic_obj' not described in 'amdgpu_display_manager'
   drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h:242: warning: Function parameter or member 'backlight_link' not described in 'amdgpu_display_manager'
   drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h:242: warning: Function parameter or member 'backlight_caps' not described in 'amdgpu_display_manager'
   drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h:242: warning: Function parameter or member 'freesync_module' not described in 'amdgpu_display_manager'
   drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h:242: warning: Function parameter or member 'fw_dmcu' not described in 'amdgpu_display_manager'
   drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h:242: warning: Function parameter or member 'dmcu_fw_version' not described in 'amdgpu_display_manager'
   drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h:242: warning: Function parameter or member 'soc_bounding_box' not described in 'amdgpu_display_manager'
   drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c:1: warning: 'register_hpd_handlers' not found
   drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c:1: warning: 'dm_crtc_high_irq' not found
   drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c:1: warning: 'dm_pflip_high_irq' not found
   include/drm/drm_drv.h:722: warning: Function parameter or member 'gem_prime_pin' not described in 'drm_driver'
   include/drm/drm_drv.h:722: warning: Function parameter or member 'gem_prime_unpin' not described in 'drm_driver'
   include/drm/drm_drv.h:722: warning: Function parameter or member 'gem_prime_res_obj' not described in 'drm_driver'
   include/drm/drm_drv.h:722: warning: Function parameter or member 'gem_prime_get_sg_table' not described in 'drm_driver'
   include/drm/drm_drv.h:722: warning: Function parameter or member 'gem_prime_import_sg_table' not described in 'drm_driver'
   include/drm/drm_drv.h:722: warning: Function parameter or member 'gem_prime_vmap' not described in 'drm_driver'
   include/drm/drm_drv.h:722: warning: Function parameter or member 'gem_prime_vunmap' not described in 'drm_driver'
   include/drm/drm_drv.h:722: warning: Function parameter or member 'gem_prime_mmap' not described in 'drm_driver'
   include/drm/drm_modeset_helper_vtables.h:1053: warning: Function parameter or member 'prepare_writeback_job' not described in 'drm_connector_helper_funcs'
   include/drm/drm_modeset_helper_vtables.h:1053: warning: Function parameter or member 'cleanup_writeback_job' not described in 'drm_connector_helper_funcs'
   include/drm/drm_atomic_state_helper.h:1: warning: no structured comments found
   include/linux/skbuff.h:893: warning: Function parameter or member 'dev_scratch' not described in 'sk_buff'
   include/linux/skbuff.h:893: warning: Function parameter or member 'list' not described in 'sk_buff'
   include/linux/skbuff.h:893: warning: Function parameter or member 'ip_defrag_offset' not described in 'sk_buff'
   include/linux/skbuff.h:893: warning: Function parameter or member 'skb_mstamp_ns' not described in 'sk_buff'
   include/linux/skbuff.h:893: warning: Function parameter or member '__cloned_offset' not described in 'sk_buff'
   include/linux/skbuff.h:893: warning: Function parameter or member 'head_frag' not described in 'sk_buff'
   include/linux/skbuff.h:893: warning: Function parameter or member '__pkt_type_offset' not described in 'sk_buff'
   include/linux/skbuff.h:893: warning: Function parameter or member 'encapsulation' not described in 'sk_buff'
   include/linux/skbuff.h:893: warning: Function parameter or member 'encap_hdr_csum' not described in 'sk_buff'
   include/linux/skbuff.h:893: warning: Function parameter or member 'csum_valid' not described in 'sk_buff'
   include/linux/skbuff.h:893: warning: Function parameter or member '__pkt_vlan_present_offset' not described in 'sk_buff'
   include/linux/skbuff.h:893: warning: Function parameter or member 'vlan_present' not described in 'sk_buff'
   include/linux/skbuff.h:893: warning: Function parameter or member 'csum_complete_sw' not described in 'sk_buff'
   include/linux/skbuff.h:893: warning: Function parameter or member 'csum_level' not described in 'sk_buff'
   include/linux/skbuff.h:893: warning: Function parameter or member 'inner_protocol_type' not described in 'sk_buff'
   include/linux/skbuff.h:893: warning: Function parameter or member 'remcsum_offload' not described in 'sk_buff'
   include/linux/skbuff.h:893: warning: Function parameter or member 'sender_cpu' not described in 'sk_buff'
   include/linux/skbuff.h:893: warning: Function parameter or member 'reserved_tailroom' not described in 'sk_buff'
   include/linux/skbuff.h:893: warning: Function parameter or member 'inner_ipproto' not described in 'sk_buff'
   include/net/sock.h:233: warning: Function parameter or member 'skc_addrpair' not described in 'sock_common'
   include/net/sock.h:233: warning: Function parameter or member 'skc_portpair' not described in 'sock_common'
   include/net/sock.h:233: warning: Function parameter or member 'skc_ipv6only' not described in 'sock_common'
   include/net/sock.h:233: warning: Function parameter or member 'skc_net_refcnt' not described in 'sock_common'
   include/net/sock.h:233: warning: Function parameter or member 'skc_v6_daddr' not described in 'sock_common'
   include/net/sock.h:233: warning: Function parameter or member 'skc_v6_rcv_saddr' not described in 'sock_common'
   include/net/sock.h:233: warning: Function parameter or member 'skc_cookie' not described in 'sock_common'
   include/net/sock.h:233: warning: Function parameter or member 'skc_listener' not described in 'sock_common'
   include/net/sock.h:233: warning: Function parameter or member 'skc_tw_dr' not described in 'sock_common'
   include/net/sock.h:233: warning: Function parameter or member 'skc_rcv_wnd' not described in 'sock_common'
   include/net/sock.h:233: warning: Function parameter or member 'skc_tw_rcv_nxt' not described in 'sock_common'
   include/net/sock.h:515: warning: Function parameter or member 'sk_rx_skb_cache' not described in 'sock'
   include/net/sock.h:515: warning: Function parameter or member 'sk_wq_raw' not described in 'sock'

vim +38 include/linux/gpio/driver.h

  > 38	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 7283 bytes --]

^ permalink raw reply

* Re: [PATCH 00/14] ARM: move lpc32xx and dove to multiplatform
From: Arnd Bergmann @ 2019-08-15 19:38 UTC (permalink / raw)
  To: Sylvain Lemieux
  Cc: Russell King - ARM Linux admin, SoC Team, Linux ARM,
	Vladimir Zapolskiy, Gregory Clement, Linus Walleij, Jason Cooper,
	Andrew Lunn, Sebastian Hesselbarth, David S. Miller,
	Greg Kroah-Hartman, Alan Stern, Guenter Roeck,
	open list:GPIO SUBSYSTEM, Networking, linux-serial, USB list,
	LINUXWATCHDOG
In-Reply-To: <b43c3d60-b675-442c-c549-25530cfbffe3@gmail.com>

On Thu, Aug 15, 2019 at 8:32 PM Sylvain Lemieux <slemieux.tyco@gmail.com> wrote:
> On 8/15/19 9:11 AM, Arnd Bergmann wrote:
> > On Thu, Aug 1, 2019 at 9:33 AM Arnd Bergmann <arnd@arndb.de> wrote:
> > I applied patches 12 and 13 into the soc tree now. There are some
> > other pending multiplatform conversions (iop32x, ep93xx, lpc32xx,
> > omap1), but it looks like none of those will be complete for 5.4.
>
> I think the patchset (v2) for the LPC32xx is ready for 5.4
> ([PATCH v2 00/13] v2: ARM: move lpc32xx to multiplatform)

Good point. I've merged these into the arm/soc branch now.

     Arnd

^ permalink raw reply

* Re: [PATCH 00/14] ARM: move lpc32xx and dove to multiplatform
From: Sylvain Lemieux @ 2019-08-15 18:32 UTC (permalink / raw)
  To: Arnd Bergmann, Russell King - ARM Linux admin
  Cc: SoC Team, Linux ARM, Vladimir Zapolskiy, Gregory Clement,
	Linus Walleij, Jason Cooper, Andrew Lunn, Sebastian Hesselbarth,
	David S. Miller, Greg Kroah-Hartman, Alan Stern, Guenter Roeck,
	open list:GPIO SUBSYSTEM, Networking, linux-serial, USB list,
	LINUXWATCHDOG
In-Reply-To: <CAK8P3a0=GrjM_HOBgqy5V3pOsA6w1EDOtEQO9dZG2Cw+-2niaw@mail.gmail.com>

Hi Arnd,

On 8/15/19 9:11 AM, Arnd Bergmann wrote:
> On Thu, Aug 1, 2019 at 9:33 AM Arnd Bergmann <arnd@arndb.de> wrote:
>>
>> On Thu, Aug 1, 2019 at 12:53 AM Russell King - ARM Linux admin
>> <linux@armlinux.org.uk> wrote:
>>>
>>> On Wed, Jul 31, 2019 at 09:56:42PM +0200, Arnd Bergmann wrote:
>>>> For dove, the patches are basically what I had proposed back in
>>>> 2015 when all other ARMv6/ARMv7 machines became part of a single
>>>> kernel build. I don't know what the state is mach-dove support is,
>>>> compared to the DT based support in mach-mvebu for the same
>>>> hardware. If they are functionally the same, we could also just
>>>> remove mach-dove rather than applying my patches.
>>>
>>> Well, the good news is that I'm down to a small board support file
>>> for the Dove Cubox now - but the bad news is, that there's still a
>>> board support file necessary to support everything the Dove SoC has
>>> to offer.
>>>
>>> Even for a DT based Dove Cubox, I'm still using mach-dove, but it
>>> may be possible to drop most of mach-dove now.  Without spending a
>>> lot of time digging through it, it's impossible to really know.
>>
>> Ok, so we won't remove it then, but I'd like to merge my patches to
>> at least get away from the special case of requiring a separate kernel
>> image for it.
>>
>> Can you try if applying patches 12 and 14 from my series causes
>> problems for you? (it may be easier to apply the entire set
>> or pull from [1] to avoid rebase conflicts).
> 
> I applied patches 12 and 13 into the soc tree now. There are some
> other pending multiplatform conversions (iop32x, ep93xx, lpc32xx,
> omap1), but it looks like none of those will be complete for 5.4.

I think the patchset (v2) for the LPC32xx is ready for 5.4
([PATCH v2 00/13] v2: ARM: move lpc32xx to multiplatform)
 >
> I now expect that we can get most of the preparation into 5.4,
> and maybe move them all over together in 5.5 after some more
> testing. If someone finds a problem with the one of the
> preparation steps, that we can revert the individual patches
> more easily.
> 
>        Arnd
> 
Sylvain

^ permalink raw reply

* Re: [PATCH] ARM: plat-samsung: Include GPIO driver header
From: Krzysztof Kozlowski @ 2019-08-15 18:16 UTC (permalink / raw)
  To: Linus Walleij
  Cc: linux-gpio, Bartosz Golaszewski, Kukjin Kim, linux-samsung-soc
In-Reply-To: <20190814075244.8726-1-linus.walleij@linaro.org>

On Wed, Aug 14, 2019 at 09:52:44AM +0200, Linus Walleij wrote:
> This file is using struct gpio_chip and needs to include
> <linux/gpio/driver.h> to get that.
> 
> Cc: Kukjin Kim <kgene@kernel.org>
> Cc: Krzysztof Kozlowski <krzk@kernel.org>
> Cc: linux-samsung-soc@vger.kernel.org
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
> ---

Thanks, applied.

Best regards,
Krzysztof


^ permalink raw reply

* Re: [PATCH] pinctrl: bcm-iproc: Use SPDX header
From: Scott Branden @ 2019-08-15 16:58 UTC (permalink / raw)
  To: Linus Walleij
  Cc: open list:GPIO SUBSYSTEM, Pramod Kumar, Ray Jui, Scott Branden
In-Reply-To: <CACRpkdZ4k_b=rOPvRi2wPgk1=9Md+urw6No1xcPy3nSFEcUogg@mail.gmail.com>


On 2019-08-15 12:51 a.m., Linus Walleij wrote:
> On Mon, Aug 12, 2019 at 5:59 PM Scott Branden
> <scott.branden@broadcom.com> wrote:
>
>> Please leave the file description comment separate from the license
>> header/copyright notices.
>>
>> ie. leave the above 3 lines intact.
> OK... Why?
For consistency following the internal template we follow.
>
> Is this because you have an automated tool that likes this format:
>
> /*
>   * Copyright ...
>   */
>
> /*
>   * Other stuff
>   */
>
> Or is it just a personal (perception) preference?
Yes, we do have an automated tool which performs such scans.  And then 
we need to go in and adjust the licenses back to the format you've 
described.
>
> Yours,
> Linus Walleij

^ permalink raw reply

* Re: [PATCH] gpio: pl061: Fix the issue failed to register the ACPI interruption
From: Linus Walleij @ 2019-08-15 13:39 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: Wei Xu, Mika Westerberg, open list:GPIO SUBSYSTEM,
	Linux Kernel Mailing List, linux-arm-kernel@lists.infradead.org,
	Linuxarm, Shameerali Kolothum Thodi, Jonathan Cameron, John Garry,
	Salil Mehta, Shiju Jose, jinying, Zhangyi ac, Liguozhu (Kenneth),
	Tangkunshan, huangdaode
In-Reply-To: <CAHp75VcKNZeq80hw5qjKKuh8Qg=WUrXPSpcy6yx5h-_7RHah+g@mail.gmail.com>

On Thu, Aug 15, 2019 at 3:10 PM Andy Shevchenko
<andy.shevchenko@gmail.com> wrote:
> On Mon, Aug 12, 2019 at 2:30 PM Wei Xu <xuwei5@hisilicon.com> wrote:

> Linus, I'm wondering if we can do this for all inside the GPIO library.
> Thoughts?

If it's supposed to happen exactly the same way on all ACPI-enabled
gpiochips, I think it is more or less mandatory :D

We need to be sure we're not gonna have to quirks for misc variants
of GPIO controllers down in the gpiolib-acpi.c as a result because
some ACPI-thing is "standard not quite standard" though.

Yours,
Linus Walleij

^ permalink raw reply

* Re: [PATCH 00/14] ARM: move lpc32xx and dove to multiplatform
From: Arnd Bergmann @ 2019-08-15 13:11 UTC (permalink / raw)
  To: Russell King - ARM Linux admin
  Cc: SoC Team, Linux ARM, Vladimir Zapolskiy, Sylvain Lemieux,
	Gregory Clement, Linus Walleij, Jason Cooper, Andrew Lunn,
	Sebastian Hesselbarth, David S. Miller, Greg Kroah-Hartman,
	Alan Stern, Guenter Roeck, open list:GPIO SUBSYSTEM, Networking,
	linux-serial, USB list, LINUXWATCHDOG
In-Reply-To: <CAK8P3a1Lgbz9RwVaOgNq=--gwvEG70tUi67XwsswjgnXAX6EhA@mail.gmail.com>

On Thu, Aug 1, 2019 at 9:33 AM Arnd Bergmann <arnd@arndb.de> wrote:
>
> On Thu, Aug 1, 2019 at 12:53 AM Russell King - ARM Linux admin
> <linux@armlinux.org.uk> wrote:
> >
> > On Wed, Jul 31, 2019 at 09:56:42PM +0200, Arnd Bergmann wrote:
> > > For dove, the patches are basically what I had proposed back in
> > > 2015 when all other ARMv6/ARMv7 machines became part of a single
> > > kernel build. I don't know what the state is mach-dove support is,
> > > compared to the DT based support in mach-mvebu for the same
> > > hardware. If they are functionally the same, we could also just
> > > remove mach-dove rather than applying my patches.
> >
> > Well, the good news is that I'm down to a small board support file
> > for the Dove Cubox now - but the bad news is, that there's still a
> > board support file necessary to support everything the Dove SoC has
> > to offer.
> >
> > Even for a DT based Dove Cubox, I'm still using mach-dove, but it
> > may be possible to drop most of mach-dove now.  Without spending a
> > lot of time digging through it, it's impossible to really know.
>
> Ok, so we won't remove it then, but I'd like to merge my patches to
> at least get away from the special case of requiring a separate kernel
> image for it.
>
> Can you try if applying patches 12 and 14 from my series causes
> problems for you? (it may be easier to apply the entire set
> or pull from [1] to avoid rebase conflicts).

I applied patches 12 and 13 into the soc tree now. There are some
other pending multiplatform conversions (iop32x, ep93xx, lpc32xx,
omap1), but it looks like none of those will be complete for 5.4.

I now expect that we can get most of the preparation into 5.4,
and maybe move them all over together in 5.5 after some more
testing. If someone finds a problem with the one of the
preparation steps, that we can revert the individual patches
more easily.

      Arnd

^ permalink raw reply

* Re: [PATCH] gpio: pl061: Fix the issue failed to register the ACPI interruption
From: Andy Shevchenko @ 2019-08-15 13:10 UTC (permalink / raw)
  To: Wei Xu, Mika Westerberg
  Cc: open list:GPIO SUBSYSTEM, Linux Kernel Mailing List,
	linux-arm-kernel@lists.infradead.org, Linus Walleij, Linuxarm,
	Shameerali Kolothum Thodi, Jonathan Cameron, John Garry,
	Salil Mehta, Shiju Jose, jinying, Zhangyi ac, Liguozhu (Kenneth),
	Tangkunshan, huangdaode
In-Reply-To: <5D514D6F.4090904@hisilicon.com>

On Mon, Aug 12, 2019 at 2:30 PM Wei Xu <xuwei5@hisilicon.com> wrote:
>
> Invoke acpi_gpiochip_request_interrupts after the acpi data has been
> attached to the pl061 acpi node to register interruption.
>
> Otherwise it will be failed to register interruption for the ACPI case.
> Because in the gpiochip_add_data_with_key, acpi_gpiochip_add is invoked
> after gpiochip_add_irqchip but at that time the acpi data has not been
> attached yet.
>
> Tested with below steps on QEMU v4.1.0-rc3 and Linux kernel v5.3-rc4,
> and found pl061 interruption is missed in the /proc/interrupts:
> 1.
> qemu-system-aarch64 \
> -machine virt,gic-version=3 -cpu cortex-a57 \
> -m 1G,maxmem=4G,slots=4 \
> -kernel Image -initrd rootfs.cpio.gz \
> -net none -nographic  \
> -bios QEMU_EFI.fd  \
> -append "console=ttyAMA0 acpi=force earlycon=pl011,0x9000000"
>
> 2. cat /proc/interrupts in the guest console:
> estuary:/$ cat /proc/interrupts
> CPU0
> 2:       3228     GICv3  27 Level     arch_timer
> 4:         15     GICv3  33 Level     uart-pl011
> 42:          0     GICv3  23 Level     arm-pmu
> IPI0:         0       Rescheduling interrupts
> IPI1:         0       Function call interrupts
> IPI2:         0       CPU stop interrupts
> IPI3:         0       CPU stop (for crash dump) interrupts
> IPI4:         0       Timer broadcast interrupts
> IPI5:         0       IRQ work interrupts
> IPI6:         0       CPU wake-up interrupts
> Err:          0
>
> Fixes: 04ce935c6b2a ("gpio: pl061: Pass irqchip when adding gpiochip")

Linus, I'm wondering if we can do this for all inside the GPIO library.
Thoughts?

--
With Best Regards,
Andy Shevchenko

^ permalink raw reply

* [PATCH v3] arm64: dts: ls1088a: fix gpio node
From: Hui Song @ 2019-08-15 10:30 UTC (permalink / raw)
  To: Shawn Guo, Li Yang, Rob Herring, Mark Rutland, Linus Walleij,
	Bartosz Golaszewski
  Cc: linux-arm-kernel, devicetree, linux-kernel, linux-gpio, Song Hui

From: Song Hui <hui.song_1@nxp.com>

Update the nodes to include little-endian
property to be consistent with the hardware
and add ls1088a gpio specify compatible.

Signed-off-by: Song Hui <hui.song_1@nxp.com>
---
Changes in v3:
	- delete the attribute of little-endian.
Changes in v2:
	- update the subject.
	
 arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
index dfbead4..ff669c8 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
@@ -269,7 +269,7 @@
 		};
 
 		gpio0: gpio@2300000 {
-			compatible = "fsl,qoriq-gpio";
+			compatible = "fsl,ls1088a-gpio", "fsl,qoriq-gpio";
 			reg = <0x0 0x2300000 0x0 0x10000>;
 			interrupts = <0 36 IRQ_TYPE_LEVEL_HIGH>;
 			little-endian;
@@ -280,7 +280,7 @@
 		};
 
 		gpio1: gpio@2310000 {
-			compatible = "fsl,qoriq-gpio";
+			compatible = "fsl,ls1088a-gpio", "fsl,qoriq-gpio";
 			reg = <0x0 0x2310000 0x0 0x10000>;
 			interrupts = <0 36 IRQ_TYPE_LEVEL_HIGH>;
 			little-endian;
@@ -291,7 +291,7 @@
 		};
 
 		gpio2: gpio@2320000 {
-			compatible = "fsl,qoriq-gpio";
+			compatible = "fsl,ls1088a-gpio", "fsl,qoriq-gpio";
 			reg = <0x0 0x2320000 0x0 0x10000>;
 			interrupts = <0 37 IRQ_TYPE_LEVEL_HIGH>;
 			little-endian;
@@ -302,7 +302,7 @@
 		};
 
 		gpio3: gpio@2330000 {
-			compatible = "fsl,qoriq-gpio";
+			compatible = "fsl,ls1088a-gpio", "fsl,qoriq-gpio";
 			reg = <0x0 0x2330000 0x0 0x10000>;
 			interrupts = <0 37 IRQ_TYPE_LEVEL_HIGH>;
 			little-endian;
-- 
2.9.5


^ permalink raw reply related

* linusw/devel boot: 55 boots: 3 failed, 52 passed (v5.3-rc1-30-ge00fae7d82ec)
From: kernelci.org bot @ 2019-08-15 10:21 UTC (permalink / raw)
  To: linux-gpio, fellows

linusw/devel boot: 55 boots: 3 failed, 52 passed (v5.3-rc1-30-ge00fae7d82ec)

Full Boot Summary: https://kernelci.org/boot/all/job/linusw/branch/devel/kernel/v5.3-rc1-30-ge00fae7d82ec/
Full Build Summary: https://kernelci.org/build/linusw/branch/devel/kernel/v5.3-rc1-30-ge00fae7d82ec/

Tree: linusw
Branch: devel
Git Describe: v5.3-rc1-30-ge00fae7d82ec
Git Commit: e00fae7d82ec1267633fc2fc29d77c650d4a1229
Git URL: https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git/
Tested: 39 unique boards, 15 SoC families, 3 builds out of 6

Boot Regressions Detected:

arm64:

    defconfig:
        gcc-8:
          apq8016-sbc:
              lab-mhart: failing since 16 days (last pass: v5.2-10808-g9637d517347e - first fail: v5.3-rc1-5-ga299726da44f)
          meson-gxbb-nanopi-k2:
              lab-baylibre: new failure (last pass: v5.3-rc1-25-g470219c619e9)

Boot Failures Detected:

arm64:
    defconfig:
        gcc-8:
            apq8016-sbc: 1 failed lab
            meson-gxbb-nanopi-k2: 1 failed lab
            meson-gxm-khadas-vim2: 1 failed lab

---
For more info write to <info@kernelci.org>

^ permalink raw reply

* Re: [PATCH v2] serial: mctrl_gpio: Support all GPIO suffixes (gpios vs gpio)
From: Linus Walleij @ 2019-08-15  9:44 UTC (permalink / raw)
  To: Stefan Roese
  Cc: open list:SERIAL DRIVERS, open list:GPIO SUBSYSTEM,
	Andy Shevchenko, Geert Uytterhoeven, Pavel Machek,
	Greg Kroah-Hartman
In-Reply-To: <20190815085341.28088-1-sr@denx.de>

On Thu, Aug 15, 2019 at 10:53 AM Stefan Roese <sr@denx.de> wrote:

> This patch fixes a backward compatibility issue, when boards use the
> old style GPIO suffix "-gpio" instead of the new "-gpios". This
> potential problem has been introduced by commit d99482673f95 ("serial:
> mctrl_gpio: Check if GPIO property exisits before requesting it").
>
> This patch now fixes this issue by using gpiod_count() which iterates
> over all supported GPIO suffixes (thanks to Linus for suggesting this).
>
> With this change, the local string is not needed any more. This way
> we can remove the allocation in the loop.
>
> Signed-off-by: Stefan Roese <sr@denx.de>
> Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> Cc: Geert Uytterhoeven <geert@linux-m68k.org>
> Cc: Pavel Machek <pavel@denx.de>
> Cc: Linus Walleij <linus.walleij@linaro.org>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> ---
> v2
> - Use gpiod_count() to check if the GPIO exists (Linus)
> - Remove the now unnecessary malloc in the loop (kasprintf)

Pretty neat!
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>

Yours,
Linus Walleij

^ permalink raw reply

* linusw/devel build: 6 builds: 0 failed, 6 passed, 13 warnings (v5.3-rc1-30-ge00fae7d82ec)
From: kernelci.org bot @ 2019-08-15  9:36 UTC (permalink / raw)
  To: linux-gpio, fellows

linusw/devel build: 6 builds: 0 failed, 6 passed, 13 warnings (v5.3-rc1-30-ge00fae7d82ec)

Full Build Summary: https://kernelci.org/build/linusw/branch/devel/kernel/v5.3-rc1-30-ge00fae7d82ec/

Tree: linusw
Branch: devel
Git Describe: v5.3-rc1-30-ge00fae7d82ec
Git Commit: e00fae7d82ec1267633fc2fc29d77c650d4a1229
Git URL: https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git/
Built: 6 unique architectures

Warnings Detected:

arc:
    nsim_hs_defconfig (gcc-8): 2 warnings

arm64:

arm:
    multi_v7_defconfig (gcc-8): 6 warnings

mips:
    32r2el_defconfig (gcc-8): 3 warnings

riscv:
    defconfig (gcc-8): 2 warnings

x86_64:


Warnings summary:

    7    <stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
    1    arch/arm/boot/dts/bcm47094-linksys-panamera.dts:129.4-18: Warning (reg_format): /mdio-bus-mux/mdio@200:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
    1    arch/arm/boot/dts/bcm47094-linksys-panamera.dts:128.22-132.5: Warning (avoid_default_addr_size): /mdio-bus-mux/mdio@200: Relying on default #size-cells value
    1    arch/arm/boot/dts/bcm47094-linksys-panamera.dts:128.22-132.5: Warning (avoid_default_addr_size): /mdio-bus-mux/mdio@200: Relying on default #address-cells value
    1    arch/arm/boot/dts/bcm47094-linksys-panamera.dtb: Warning (spi_bus_reg): Failed prerequisite 'reg_format'
    1    arch/arm/boot/dts/bcm47094-linksys-panamera.dtb: Warning (pci_device_bus_num): Failed prerequisite 'reg_format'
    1    arch/arm/boot/dts/bcm47094-linksys-panamera.dtb: Warning (i2c_bus_reg): Failed prerequisite 'reg_format'

================================================================================

Detailed per-defconfig build reports:

--------------------------------------------------------------------------------
32r2el_defconfig (mips, gcc-8) — PASS, 0 errors, 3 warnings, 0 section mismatches

Warnings:
    <stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
    <stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
    <stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]

--------------------------------------------------------------------------------
defconfig (riscv, gcc-8) — PASS, 0 errors, 2 warnings, 0 section mismatches

Warnings:
    <stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
    <stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]

--------------------------------------------------------------------------------
defconfig (arm64, gcc-8) — PASS, 0 errors, 0 warnings, 0 section mismatches

--------------------------------------------------------------------------------
multi_v7_defconfig (arm, gcc-8) — PASS, 0 errors, 6 warnings, 0 section mismatches

Warnings:
    arch/arm/boot/dts/bcm47094-linksys-panamera.dts:129.4-18: Warning (reg_format): /mdio-bus-mux/mdio@200:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
    arch/arm/boot/dts/bcm47094-linksys-panamera.dtb: Warning (pci_device_bus_num): Failed prerequisite 'reg_format'
    arch/arm/boot/dts/bcm47094-linksys-panamera.dtb: Warning (i2c_bus_reg): Failed prerequisite 'reg_format'
    arch/arm/boot/dts/bcm47094-linksys-panamera.dtb: Warning (spi_bus_reg): Failed prerequisite 'reg_format'
    arch/arm/boot/dts/bcm47094-linksys-panamera.dts:128.22-132.5: Warning (avoid_default_addr_size): /mdio-bus-mux/mdio@200: Relying on default #address-cells value
    arch/arm/boot/dts/bcm47094-linksys-panamera.dts:128.22-132.5: Warning (avoid_default_addr_size): /mdio-bus-mux/mdio@200: Relying on default #size-cells value

--------------------------------------------------------------------------------
nsim_hs_defconfig (arc, gcc-8) — PASS, 0 errors, 2 warnings, 0 section mismatches

Warnings:
    <stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
    <stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]

--------------------------------------------------------------------------------
x86_64_defconfig (x86_64, gcc-8) — PASS, 0 errors, 0 warnings, 0 section mismatches

---
For more info write to <info@kernelci.org>

^ permalink raw reply

* [PATCH v2] serial: mctrl_gpio: Support all GPIO suffixes (gpios vs gpio)
From: Stefan Roese @ 2019-08-15  8:53 UTC (permalink / raw)
  To: linux-serial
  Cc: linux-gpio, Andy Shevchenko, Geert Uytterhoeven, Pavel Machek,
	Linus Walleij, Greg Kroah-Hartman

This patch fixes a backward compatibility issue, when boards use the
old style GPIO suffix "-gpio" instead of the new "-gpios". This
potential problem has been introduced by commit d99482673f95 ("serial:
mctrl_gpio: Check if GPIO property exisits before requesting it").

This patch now fixes this issue by using gpiod_count() which iterates
over all supported GPIO suffixes (thanks to Linus for suggesting this).

With this change, the local string is not needed any more. This way
we can remove the allocation in the loop.

Signed-off-by: Stefan Roese <sr@denx.de>
Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Pavel Machek <pavel@denx.de>
Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
v2
- Use gpiod_count() to check if the GPIO exists (Linus)
- Remove the now unnecessary malloc in the loop (kasprintf)

 drivers/tty/serial/serial_mctrl_gpio.c | 13 +++----------
 1 file changed, 3 insertions(+), 10 deletions(-)

diff --git a/drivers/tty/serial/serial_mctrl_gpio.c b/drivers/tty/serial/serial_mctrl_gpio.c
index 2b400189be91..ce73b142c66b 100644
--- a/drivers/tty/serial/serial_mctrl_gpio.c
+++ b/drivers/tty/serial/serial_mctrl_gpio.c
@@ -117,18 +117,11 @@ struct mctrl_gpios *mctrl_gpio_init_noauto(struct device *dev, unsigned int idx)
 
 	for (i = 0; i < UART_GPIO_MAX; i++) {
 		enum gpiod_flags flags;
-		char *gpio_str;
-		bool present;
+		int count;
 
 		/* Check if GPIO property exists and continue if not */
-		gpio_str = kasprintf(GFP_KERNEL, "%s-gpios",
-				     mctrl_gpios_desc[i].name);
-		if (!gpio_str)
-			continue;
-
-		present = device_property_present(dev, gpio_str);
-		kfree(gpio_str);
-		if (!present)
+		count = gpiod_count(dev, mctrl_gpios_desc[i].name);
+		if (count <= 0)
 			continue;
 
 		if (mctrl_gpios_desc[i].dir_out)
-- 
2.22.1


^ permalink raw reply related

* Re: [PATCH] gpio: mockup: don't depend twice on GPIOLIB
From: Linus Walleij @ 2019-08-15  8:15 UTC (permalink / raw)
  To: Uwe Kleine-König; +Cc: Bartosz Golaszewski, open list:GPIO SUBSYSTEM
In-Reply-To: <9d01ed54-4c20-a4d3-f5b1-8ec2aac09ea0@kleine-koenig.org>

On Wed, Aug 14, 2019 at 10:12 PM Uwe Kleine-König <uwe@kleine-koenig.org> wrote:
> On 7/25/19 3:10 PM, Uwe Kleine-König wrote:
> > config GPIO_MOCKUP is defined in a big if GPIOLIB ... endif block so it
> > doesn't need to depend explicitly on GPIOLIB.
> >
> > Signed-off-by: Uwe Kleine-König <uwe@kleine-koenig.org>
> > ---
> >  drivers/gpio/Kconfig | 1 -
> >  1 file changed, 1 deletion(-)
> >
> > diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
> > index bb13c266c329..856fcd260ba2 100644
> > --- a/drivers/gpio/Kconfig
> > +++ b/drivers/gpio/Kconfig
> > @@ -1465,7 +1465,6 @@ endmenu
> >
> >  config GPIO_MOCKUP
> >       tristate "GPIO Testing Driver"
> > -     depends on GPIOLIB
> >       select IRQ_SIM
> >       help
> >         This enables GPIO Testing driver, which provides a way to test GPIO
> >
>
> I didn't get feedback for this patch. Did it fall through the cracks?

Weird, the patch is not in my inbox :(

I downloaded from lore.kernel.org and applied, thanks!

Yours,
Linus Walleij

Yours,
Linus Walleij

^ permalink raw reply

* Re: [PATCH 0/3] CP115 pinctrl support
From: Linus Walleij @ 2019-08-15  8:10 UTC (permalink / raw)
  To: Thomas Petazzoni
  Cc: Miquel Raynal, Rob Herring, Mark Rutland,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	Gregory Clement, Antoine Tenart, Maxime Chevallier, Nadav Haklai,
	open list:GPIO SUBSYSTEM, Linux ARM, Grzegorz Jaszczyk,
	Marcin Wojtas, Stefan Chulski, Yan Markman
In-Reply-To: <20190814143457.664b04c8@windsurf.home>

On Wed, Aug 14, 2019 at 2:35 PM Thomas Petazzoni
<thomas.petazzoni@bootlin.com> wrote:
> On Wed, 14 Aug 2019 10:12:36 +0200
> Linus Walleij <linus.walleij@linaro.org> wrote:
>
> > On Wed, Aug 7, 2019 at 2:47 PM Linus Walleij <linus.walleij@linaro.org> wrote:
> > > On Mon, Aug 5, 2019 at 12:16 PM Miquel Raynal <miquel.raynal@bootlin.com> wrote:
> > >
> > > > This is the second batch of changes (out of three) to support the brand
> > > > new Marvell CN9130 SoCs which are made of one AP807 and one CP115.
> > > >
> > > > We add a new compatible (and the relevant support in the pinctrl
> > > > driver) before the addition in batch 3/3 of CN9130 SoCs DT using it.
> > >
> > > Waiting for review from the Mvebu maintainers.
> > >
> > > If it takes too long just nudge me, it looks good to me.
> >
> > So if the other MVEBU maintainers don't really look much at MVEBU
> > patches anymore while Miquel is working a lot on the platform,
> > what about listing Miquel as maintainer under the SoC entry, hm?
>
> Miquel sent his series on August 5, i.e 9 days ago. We're in August, in
> the middle of the summer vacations for many people. While it is nice to
> see subsystem maintainers who want to get code merged in a timely
> fashion, I think it is probably wise to give it some more time for
> review in this period of the year.

OK then maybe I am a bit impatient.

Yours,
Linus Walleij

^ permalink raw reply

* Re: Intel GPIO / pin control repositories for next
From: Linus Walleij @ 2019-08-15  8:06 UTC (permalink / raw)
  To: Andy Shevchenko; +Cc: open list:GPIO SUBSYSTEM, Mika Westerberg
In-Reply-To: <20190813135053.GA30120@smile.fi.intel.com>

On Tue, Aug 13, 2019 at 3:50 PM Andy Shevchenko
<andriy.shevchenko@linux.intel.com> wrote:

> Can you, please, include the following repositories for your linux-next bunch
> for getting better coverage?

Excellent initiative Andy!

When it feels the branches are solid just toss them over to me.

Yours,
Linus Walleij

^ permalink raw reply

* Re: [PATCH] gpio: aspeed: Pass irqchip when adding gpiochip
From: Linus Walleij @ 2019-08-15  8:01 UTC (permalink / raw)
  To: Joel Stanley
  Cc: open list:GPIO SUBSYSTEM, Bartosz Golaszewski, Andrew Jeffery,
	Benjamin Herrenschmidt, Thierry Reding
In-Reply-To: <CACPK8Xew4myVDGq5SL04kqAVeWkMdF+PsmrkutM8s-nWkJLdeA@mail.gmail.com>

On Tue, Aug 13, 2019 at 6:44 AM Joel Stanley <joel@jms.id.au> wrote:
> On Fri, 9 Aug 2019 at 12:55, Linus Walleij <linus.walleij@linaro.org> wrote:

> > +               girq->parents = devm_kcalloc(&pdev->dev, 1,
> > +                                            sizeof(*girq->parents),
> > +                                            GFP_KERNEL);
>
> Is there a reason this is kcalloc and not kzalloc?

Following the pattern that we have one item of sizeof().
The parents can be several, so we try to follow this
pattern so people get it right.

> Acked-by: Joel Stanley <joel@jms.id.au>

Thanks!

Yours,
Linus Walleij

^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox