* 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
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox