* Re: [PATCH v1 4/4] gpio: dwapb: Remove unneeded has_irq member in struct dwapb_port_property
@ 2020-05-13 0:43 kbuild test robot
0 siblings, 0 replies; 10+ messages in thread
From: kbuild test robot @ 2020-05-13 0:43 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 5457 bytes --]
CC: kbuild-all(a)lists.01.org
In-Reply-To: <20200512184513.86883-4-andriy.shevchenko@linux.intel.com>
References: <20200512184513.86883-4-andriy.shevchenko@linux.intel.com>
TO: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
TO: Linus Walleij <linus.walleij@linaro.org>
TO: Bartosz Golaszewski <bgolaszewski@baylibre.com>
TO: linux-gpio(a)vger.kernel.org
CC: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
CC: Serge Semin <fancer.lancer@gmail.com>
Hi Andy,
I love your patch! Yet something to improve:
[auto build test ERROR on gpio/for-next]
[also build test ERROR on next-20200512]
[cannot apply to linus/master v5.7-rc5]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
url: https://github.com/0day-ci/linux/commits/Andy-Shevchenko/gpio-dwapb-avoid-error-message-for-optional-IRQ/20200513-025227
base: https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git for-next
config: i386-allyesconfig (attached as .config)
compiler: gcc-7 (Ubuntu 7.5.0-6ubuntu2) 7.5.0
reproduce:
# save the attached .config to linux build tree
make ARCH=i386
:::::: branch date: 6 hours ago
:::::: commit date: 6 hours ago
If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
drivers/mfd/intel_quark_i2c_gpio.c: In function 'intel_quark_gpio_setup':
>> drivers/mfd/intel_quark_i2c_gpio.c:219:19: error: 'struct dwapb_port_property' has no member named 'has_irq'
pdata->properties->has_irq = true;
^~
# https://github.com/0day-ci/linux/commit/f8686f0bb4ff7fdded832484a559f1454a2a51d2
git remote add linux-review https://github.com/0day-ci/linux
git remote update linux-review
git checkout f8686f0bb4ff7fdded832484a559f1454a2a51d2
vim +219 drivers/mfd/intel_quark_i2c_gpio.c
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 189
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 190 static int intel_quark_gpio_setup(struct pci_dev *pdev, struct mfd_cell *cell)
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 191 {
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 192 struct dwapb_platform_data *pdata;
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 193 struct resource *res = (struct resource *)cell->resources;
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 194 struct device *dev = &pdev->dev;
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 195
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 196 res[INTEL_QUARK_IORES_MEM].start =
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 197 pci_resource_start(pdev, MFD_GPIO_BAR);
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 198 res[INTEL_QUARK_IORES_MEM].end =
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 199 pci_resource_end(pdev, MFD_GPIO_BAR);
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 200
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 201 pdata = devm_kzalloc(dev, sizeof(*pdata), GFP_KERNEL);
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 202 if (!pdata)
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 203 return -ENOMEM;
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 204
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 205 /* For intel quark x1000, it has only one port: portA */
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 206 pdata->nports = INTEL_QUARK_GPIO_NPORTS;
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 207 pdata->properties = devm_kcalloc(dev, pdata->nports,
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 208 sizeof(*pdata->properties),
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 209 GFP_KERNEL);
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 210 if (!pdata->properties)
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 211 return -ENOMEM;
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 212
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 213 /* Set the properties for portA */
4ba8cfa79f44a948 Jiang Qiu 2016-04-28 214 pdata->properties->fwnode = NULL;
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 215 pdata->properties->idx = 0;
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 216 pdata->properties->ngpio = INTEL_QUARK_MFD_NGPIO;
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 217 pdata->properties->gpio_base = INTEL_QUARK_MFD_GPIO_BASE;
e6ca26abd37606ba Phil Edworthy 2018-04-26 218 pdata->properties->irq[0] = pdev->irq;
e6ca26abd37606ba Phil Edworthy 2018-04-26 @219 pdata->properties->has_irq = true;
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 220 pdata->properties->irq_shared = true;
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 221
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 222 cell->platform_data = pdata;
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 223 cell->pdata_size = sizeof(*pdata);
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 224
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 225 return 0;
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 226 }
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 227
:::::: The code at line 219 was first introduced by commit
:::::: e6ca26abd37606ba4864f20c85d3fe4a2173b93f gpio: dwapb: Add support for 1 interrupt per port A GPIO
:::::: TO: Phil Edworthy <phil.edworthy@renesas.com>
:::::: CC: Linus Walleij <linus.walleij@linaro.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 72422 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v1 1/4] gpio: dwapb: avoid error message for optional IRQ
@ 2020-05-12 18:45 Andy Shevchenko
2020-05-12 18:45 ` [PATCH v1 4/4] gpio: dwapb: Remove unneeded has_irq member in struct dwapb_port_property Andy Shevchenko
0 siblings, 1 reply; 10+ messages in thread
From: Andy Shevchenko @ 2020-05-12 18:45 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, linux-gpio
Cc: Andy Shevchenko, Serge Semin
platform_get_irq() will generate an error message if the requested IRQ
is not present. Use platform_get_irq_optional() to avoid the error message
being generated.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: Serge Semin <fancer.lancer@gmail.com>
---
drivers/gpio/gpio-dwapb.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpio/gpio-dwapb.c b/drivers/gpio/gpio-dwapb.c
index 8639c4a7f46974..5bc5057f071f37 100644
--- a/drivers/gpio/gpio-dwapb.c
+++ b/drivers/gpio/gpio-dwapb.c
@@ -542,7 +542,7 @@ static void dwapb_get_irq(struct device *dev, struct fwnode_handle *fwnode,
if (np)
pp->irq[j] = of_irq_get(np, j);
else if (has_acpi_companion(dev))
- pp->irq[j] = platform_get_irq(to_platform_device(dev), j);
+ pp->irq[j] = platform_get_irq_optional(to_platform_device(dev), j);
if (pp->irq[j] >= 0)
pp->has_irq = true;
--
2.26.2
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v1 4/4] gpio: dwapb: Remove unneeded has_irq member in struct dwapb_port_property
2020-05-12 18:45 [PATCH v1 1/4] gpio: dwapb: avoid error message for optional IRQ Andy Shevchenko
@ 2020-05-12 18:45 ` Andy Shevchenko
2020-05-12 22:53 ` kbuild test robot
` (2 more replies)
0 siblings, 3 replies; 10+ messages in thread
From: Andy Shevchenko @ 2020-05-12 18:45 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, linux-gpio
Cc: Andy Shevchenko, Serge Semin
has_irq member of struct dwapb_port_property is used only in one place,
so, make it local test instead and remove from the structure.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: Serge Semin <fancer.lancer@gmail.com>
---
drivers/gpio/gpio-dwapb.c | 12 +++++++-----
include/linux/platform_data/gpio-dwapb.h | 1 -
2 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/drivers/gpio/gpio-dwapb.c b/drivers/gpio/gpio-dwapb.c
index 2975f2d369874a..87834adccc4534 100644
--- a/drivers/gpio/gpio-dwapb.c
+++ b/drivers/gpio/gpio-dwapb.c
@@ -366,6 +366,11 @@ static void dwapb_configure_irqs(struct dwapb_gpio *gpio,
irq_hw_number_t hwirq;
int err, i;
+ if (memchr_inv(pp->irq, 0, sizeof(pp->irq)) == NULL) {
+ dev_warn(gpio->dev, "no IRQ for port%d\n", pp->idx);
+ return;
+ }
+
gpio->domain = irq_domain_create_linear(fwnode, ngpio,
&irq_generic_chip_ops, gpio);
if (!gpio->domain)
@@ -501,7 +506,8 @@ static int dwapb_gpio_add_port(struct dwapb_gpio *gpio,
if (pp->idx == 0)
port->gc.set_config = dwapb_gpio_set_config;
- if (pp->has_irq)
+ /* Only port A can provide interrupts in all configurations of the IP */
+ if (pp->idx == 0)
dwapb_configure_irqs(gpio, port, pp);
err = gpiochip_add_data(&port->gc, port);
@@ -553,10 +559,6 @@ static void dwapb_get_irq(struct device *dev, struct fwnode_handle *fwnode,
pp->irq[j] = err;
}
-
- pp->has_irq = memchr_inv(pp->irq, 0, sizeof(pp->irq)) != NULL;
- if (!pp->has_irq)
- dev_warn(dev, "no irq for port%d\n", pp->idx);
}
static struct dwapb_platform_data *dwapb_gpio_get_pdata(struct device *dev)
diff --git a/include/linux/platform_data/gpio-dwapb.h b/include/linux/platform_data/gpio-dwapb.h
index 3c606c450d0596..ff1be737bad6aa 100644
--- a/include/linux/platform_data/gpio-dwapb.h
+++ b/include/linux/platform_data/gpio-dwapb.h
@@ -12,7 +12,6 @@ struct dwapb_port_property {
unsigned int ngpio;
unsigned int gpio_base;
int irq[32];
- bool has_irq;
bool irq_shared;
};
--
2.26.2
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v1 4/4] gpio: dwapb: Remove unneeded has_irq member in struct dwapb_port_property
2020-05-12 18:45 ` [PATCH v1 4/4] gpio: dwapb: Remove unneeded has_irq member in struct dwapb_port_property Andy Shevchenko
@ 2020-05-12 22:53 ` kbuild test robot
2020-05-13 12:39 ` kbuild test robot
2020-05-17 14:26 ` Serge Semin
2 siblings, 0 replies; 10+ messages in thread
From: kbuild test robot @ 2020-05-12 22:53 UTC (permalink / raw)
To: Andy Shevchenko, Linus Walleij, Bartosz Golaszewski, linux-gpio
Cc: kbuild-all, clang-built-linux, Andy Shevchenko, Serge Semin
[-- Attachment #1: Type: text/plain, Size: 4808 bytes --]
Hi Andy,
I love your patch! Yet something to improve:
[auto build test ERROR on gpio/for-next]
[also build test ERROR on next-20200512]
[cannot apply to linus/master v5.7-rc5]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
url: https://github.com/0day-ci/linux/commits/Andy-Shevchenko/gpio-dwapb-avoid-error-message-for-optional-IRQ/20200513-025227
base: https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git for-next
config: x86_64-randconfig-a003-20200512 (attached as .config)
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
drivers/mfd/intel_quark_i2c_gpio.c: In function 'intel_quark_gpio_setup':
>> drivers/mfd/intel_quark_i2c_gpio.c:219:19: error: 'struct dwapb_port_property' has no member named 'has_irq'
pdata->properties->has_irq = true;
^~
vim +219 drivers/mfd/intel_quark_i2c_gpio.c
60ae5b9f5cdd80 Raymond Tan 2015-02-02 189
60ae5b9f5cdd80 Raymond Tan 2015-02-02 190 static int intel_quark_gpio_setup(struct pci_dev *pdev, struct mfd_cell *cell)
60ae5b9f5cdd80 Raymond Tan 2015-02-02 191 {
60ae5b9f5cdd80 Raymond Tan 2015-02-02 192 struct dwapb_platform_data *pdata;
60ae5b9f5cdd80 Raymond Tan 2015-02-02 193 struct resource *res = (struct resource *)cell->resources;
60ae5b9f5cdd80 Raymond Tan 2015-02-02 194 struct device *dev = &pdev->dev;
60ae5b9f5cdd80 Raymond Tan 2015-02-02 195
60ae5b9f5cdd80 Raymond Tan 2015-02-02 196 res[INTEL_QUARK_IORES_MEM].start =
60ae5b9f5cdd80 Raymond Tan 2015-02-02 197 pci_resource_start(pdev, MFD_GPIO_BAR);
60ae5b9f5cdd80 Raymond Tan 2015-02-02 198 res[INTEL_QUARK_IORES_MEM].end =
60ae5b9f5cdd80 Raymond Tan 2015-02-02 199 pci_resource_end(pdev, MFD_GPIO_BAR);
60ae5b9f5cdd80 Raymond Tan 2015-02-02 200
60ae5b9f5cdd80 Raymond Tan 2015-02-02 201 pdata = devm_kzalloc(dev, sizeof(*pdata), GFP_KERNEL);
60ae5b9f5cdd80 Raymond Tan 2015-02-02 202 if (!pdata)
60ae5b9f5cdd80 Raymond Tan 2015-02-02 203 return -ENOMEM;
60ae5b9f5cdd80 Raymond Tan 2015-02-02 204
60ae5b9f5cdd80 Raymond Tan 2015-02-02 205 /* For intel quark x1000, it has only one port: portA */
60ae5b9f5cdd80 Raymond Tan 2015-02-02 206 pdata->nports = INTEL_QUARK_GPIO_NPORTS;
60ae5b9f5cdd80 Raymond Tan 2015-02-02 207 pdata->properties = devm_kcalloc(dev, pdata->nports,
60ae5b9f5cdd80 Raymond Tan 2015-02-02 208 sizeof(*pdata->properties),
60ae5b9f5cdd80 Raymond Tan 2015-02-02 209 GFP_KERNEL);
60ae5b9f5cdd80 Raymond Tan 2015-02-02 210 if (!pdata->properties)
60ae5b9f5cdd80 Raymond Tan 2015-02-02 211 return -ENOMEM;
60ae5b9f5cdd80 Raymond Tan 2015-02-02 212
60ae5b9f5cdd80 Raymond Tan 2015-02-02 213 /* Set the properties for portA */
4ba8cfa79f44a9 Jiang Qiu 2016-04-28 214 pdata->properties->fwnode = NULL;
60ae5b9f5cdd80 Raymond Tan 2015-02-02 215 pdata->properties->idx = 0;
60ae5b9f5cdd80 Raymond Tan 2015-02-02 216 pdata->properties->ngpio = INTEL_QUARK_MFD_NGPIO;
60ae5b9f5cdd80 Raymond Tan 2015-02-02 217 pdata->properties->gpio_base = INTEL_QUARK_MFD_GPIO_BASE;
e6ca26abd37606 Phil Edworthy 2018-04-26 218 pdata->properties->irq[0] = pdev->irq;
e6ca26abd37606 Phil Edworthy 2018-04-26 @219 pdata->properties->has_irq = true;
60ae5b9f5cdd80 Raymond Tan 2015-02-02 220 pdata->properties->irq_shared = true;
60ae5b9f5cdd80 Raymond Tan 2015-02-02 221
60ae5b9f5cdd80 Raymond Tan 2015-02-02 222 cell->platform_data = pdata;
60ae5b9f5cdd80 Raymond Tan 2015-02-02 223 cell->pdata_size = sizeof(*pdata);
60ae5b9f5cdd80 Raymond Tan 2015-02-02 224
60ae5b9f5cdd80 Raymond Tan 2015-02-02 225 return 0;
60ae5b9f5cdd80 Raymond Tan 2015-02-02 226 }
60ae5b9f5cdd80 Raymond Tan 2015-02-02 227
:::::: The code at line 219 was first introduced by commit
:::::: e6ca26abd37606ba4864f20c85d3fe4a2173b93f gpio: dwapb: Add support for 1 interrupt per port A GPIO
:::::: TO: Phil Edworthy <phil.edworthy@renesas.com>
:::::: CC: Linus Walleij <linus.walleij@linaro.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 40911 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v1 4/4] gpio: dwapb: Remove unneeded has_irq member in struct dwapb_port_property
@ 2020-05-12 22:53 ` kbuild test robot
0 siblings, 0 replies; 10+ messages in thread
From: kbuild test robot @ 2020-05-12 22:53 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 4893 bytes --]
Hi Andy,
I love your patch! Yet something to improve:
[auto build test ERROR on gpio/for-next]
[also build test ERROR on next-20200512]
[cannot apply to linus/master v5.7-rc5]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
url: https://github.com/0day-ci/linux/commits/Andy-Shevchenko/gpio-dwapb-avoid-error-message-for-optional-IRQ/20200513-025227
base: https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git for-next
config: x86_64-randconfig-a003-20200512 (attached as .config)
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
drivers/mfd/intel_quark_i2c_gpio.c: In function 'intel_quark_gpio_setup':
>> drivers/mfd/intel_quark_i2c_gpio.c:219:19: error: 'struct dwapb_port_property' has no member named 'has_irq'
pdata->properties->has_irq = true;
^~
vim +219 drivers/mfd/intel_quark_i2c_gpio.c
60ae5b9f5cdd80 Raymond Tan 2015-02-02 189
60ae5b9f5cdd80 Raymond Tan 2015-02-02 190 static int intel_quark_gpio_setup(struct pci_dev *pdev, struct mfd_cell *cell)
60ae5b9f5cdd80 Raymond Tan 2015-02-02 191 {
60ae5b9f5cdd80 Raymond Tan 2015-02-02 192 struct dwapb_platform_data *pdata;
60ae5b9f5cdd80 Raymond Tan 2015-02-02 193 struct resource *res = (struct resource *)cell->resources;
60ae5b9f5cdd80 Raymond Tan 2015-02-02 194 struct device *dev = &pdev->dev;
60ae5b9f5cdd80 Raymond Tan 2015-02-02 195
60ae5b9f5cdd80 Raymond Tan 2015-02-02 196 res[INTEL_QUARK_IORES_MEM].start =
60ae5b9f5cdd80 Raymond Tan 2015-02-02 197 pci_resource_start(pdev, MFD_GPIO_BAR);
60ae5b9f5cdd80 Raymond Tan 2015-02-02 198 res[INTEL_QUARK_IORES_MEM].end =
60ae5b9f5cdd80 Raymond Tan 2015-02-02 199 pci_resource_end(pdev, MFD_GPIO_BAR);
60ae5b9f5cdd80 Raymond Tan 2015-02-02 200
60ae5b9f5cdd80 Raymond Tan 2015-02-02 201 pdata = devm_kzalloc(dev, sizeof(*pdata), GFP_KERNEL);
60ae5b9f5cdd80 Raymond Tan 2015-02-02 202 if (!pdata)
60ae5b9f5cdd80 Raymond Tan 2015-02-02 203 return -ENOMEM;
60ae5b9f5cdd80 Raymond Tan 2015-02-02 204
60ae5b9f5cdd80 Raymond Tan 2015-02-02 205 /* For intel quark x1000, it has only one port: portA */
60ae5b9f5cdd80 Raymond Tan 2015-02-02 206 pdata->nports = INTEL_QUARK_GPIO_NPORTS;
60ae5b9f5cdd80 Raymond Tan 2015-02-02 207 pdata->properties = devm_kcalloc(dev, pdata->nports,
60ae5b9f5cdd80 Raymond Tan 2015-02-02 208 sizeof(*pdata->properties),
60ae5b9f5cdd80 Raymond Tan 2015-02-02 209 GFP_KERNEL);
60ae5b9f5cdd80 Raymond Tan 2015-02-02 210 if (!pdata->properties)
60ae5b9f5cdd80 Raymond Tan 2015-02-02 211 return -ENOMEM;
60ae5b9f5cdd80 Raymond Tan 2015-02-02 212
60ae5b9f5cdd80 Raymond Tan 2015-02-02 213 /* Set the properties for portA */
4ba8cfa79f44a9 Jiang Qiu 2016-04-28 214 pdata->properties->fwnode = NULL;
60ae5b9f5cdd80 Raymond Tan 2015-02-02 215 pdata->properties->idx = 0;
60ae5b9f5cdd80 Raymond Tan 2015-02-02 216 pdata->properties->ngpio = INTEL_QUARK_MFD_NGPIO;
60ae5b9f5cdd80 Raymond Tan 2015-02-02 217 pdata->properties->gpio_base = INTEL_QUARK_MFD_GPIO_BASE;
e6ca26abd37606 Phil Edworthy 2018-04-26 218 pdata->properties->irq[0] = pdev->irq;
e6ca26abd37606 Phil Edworthy 2018-04-26 @219 pdata->properties->has_irq = true;
60ae5b9f5cdd80 Raymond Tan 2015-02-02 220 pdata->properties->irq_shared = true;
60ae5b9f5cdd80 Raymond Tan 2015-02-02 221
60ae5b9f5cdd80 Raymond Tan 2015-02-02 222 cell->platform_data = pdata;
60ae5b9f5cdd80 Raymond Tan 2015-02-02 223 cell->pdata_size = sizeof(*pdata);
60ae5b9f5cdd80 Raymond Tan 2015-02-02 224
60ae5b9f5cdd80 Raymond Tan 2015-02-02 225 return 0;
60ae5b9f5cdd80 Raymond Tan 2015-02-02 226 }
60ae5b9f5cdd80 Raymond Tan 2015-02-02 227
:::::: The code at line 219 was first introduced by commit
:::::: e6ca26abd37606ba4864f20c85d3fe4a2173b93f gpio: dwapb: Add support for 1 interrupt per port A GPIO
:::::: TO: Phil Edworthy <phil.edworthy@renesas.com>
:::::: CC: Linus Walleij <linus.walleij@linaro.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 40911 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v1 4/4] gpio: dwapb: Remove unneeded has_irq member in struct dwapb_port_property
2020-05-12 22:53 ` kbuild test robot
@ 2020-05-13 10:22 ` Andy Shevchenko
-1 siblings, 0 replies; 10+ messages in thread
From: Andy Shevchenko @ 2020-05-13 10:22 UTC (permalink / raw)
To: kbuild test robot
Cc: Linus Walleij, Bartosz Golaszewski, linux-gpio, kbuild-all,
clang-built-linux, Serge Semin
On Wed, May 13, 2020 at 06:53:09AM +0800, kbuild test robot wrote:
> Hi Andy,
>
> I love your patch! Yet something to improve:
>
> [auto build test ERROR on gpio/for-next]
> [also build test ERROR on next-20200512]
> [cannot apply to linus/master v5.7-rc5]
> [if your patch is applied to the wrong git tree, please drop us a note to help
> improve the system. BTW, we also suggest to use '--base' option to specify the
> base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
>
> url: https://github.com/0day-ci/linux/commits/Andy-Shevchenko/gpio-dwapb-avoid-error-message-for-optional-IRQ/20200513-025227
> base: https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git for-next
> config: x86_64-randconfig-a003-20200512 (attached as .config)
> reproduce:
> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> # install x86_64 cross compiling tool for clang build
> # apt-get install binutils-x86-64-linux-gnu
> # save the attached .config to linux build tree
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kbuild test robot <lkp@intel.com>
>
> All errors (new ones prefixed by >>):
>
> drivers/mfd/intel_quark_i2c_gpio.c: In function 'intel_quark_gpio_setup':
> >> drivers/mfd/intel_quark_i2c_gpio.c:219:19: error: 'struct dwapb_port_property' has no member named 'has_irq'
> pdata->properties->has_irq = true;
> ^~
Indeed. I have that removed by other WIP patch in my tree.
Thanks!
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v1 4/4] gpio: dwapb: Remove unneeded has_irq member in struct dwapb_port_property
@ 2020-05-13 10:22 ` Andy Shevchenko
0 siblings, 0 replies; 10+ messages in thread
From: Andy Shevchenko @ 2020-05-13 10:22 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 1748 bytes --]
On Wed, May 13, 2020 at 06:53:09AM +0800, kbuild test robot wrote:
> Hi Andy,
>
> I love your patch! Yet something to improve:
>
> [auto build test ERROR on gpio/for-next]
> [also build test ERROR on next-20200512]
> [cannot apply to linus/master v5.7-rc5]
> [if your patch is applied to the wrong git tree, please drop us a note to help
> improve the system. BTW, we also suggest to use '--base' option to specify the
> base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
>
> url: https://github.com/0day-ci/linux/commits/Andy-Shevchenko/gpio-dwapb-avoid-error-message-for-optional-IRQ/20200513-025227
> base: https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git for-next
> config: x86_64-randconfig-a003-20200512 (attached as .config)
> reproduce:
> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> # install x86_64 cross compiling tool for clang build
> # apt-get install binutils-x86-64-linux-gnu
> # save the attached .config to linux build tree
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kbuild test robot <lkp@intel.com>
>
> All errors (new ones prefixed by >>):
>
> drivers/mfd/intel_quark_i2c_gpio.c: In function 'intel_quark_gpio_setup':
> >> drivers/mfd/intel_quark_i2c_gpio.c:219:19: error: 'struct dwapb_port_property' has no member named 'has_irq'
> pdata->properties->has_irq = true;
> ^~
Indeed. I have that removed by other WIP patch in my tree.
Thanks!
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v1 4/4] gpio: dwapb: Remove unneeded has_irq member in struct dwapb_port_property
2020-05-12 18:45 ` [PATCH v1 4/4] gpio: dwapb: Remove unneeded has_irq member in struct dwapb_port_property Andy Shevchenko
@ 2020-05-13 12:39 ` kbuild test robot
2020-05-13 12:39 ` kbuild test robot
2020-05-17 14:26 ` Serge Semin
2 siblings, 0 replies; 10+ messages in thread
From: kbuild test robot @ 2020-05-13 12:39 UTC (permalink / raw)
To: Andy Shevchenko, Linus Walleij, Bartosz Golaszewski, linux-gpio
Cc: kbuild-all, Andy Shevchenko, Serge Semin
[-- Attachment #1: Type: text/plain, Size: 4837 bytes --]
Hi Andy,
I love your patch! Yet something to improve:
[auto build test ERROR on gpio/for-next]
[also build test ERROR on next-20200512]
[cannot apply to linus/master v5.7-rc5]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
url: https://github.com/0day-ci/linux/commits/Andy-Shevchenko/gpio-dwapb-avoid-error-message-for-optional-IRQ/20200513-025227
base: https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git for-next
config: i386-allyesconfig (attached as .config)
compiler: gcc-7 (Ubuntu 7.5.0-6ubuntu2) 7.5.0
reproduce:
# save the attached .config to linux build tree
make ARCH=i386
If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
drivers/mfd/intel_quark_i2c_gpio.c: In function 'intel_quark_gpio_setup':
>> drivers/mfd/intel_quark_i2c_gpio.c:219:19: error: 'struct dwapb_port_property' has no member named 'has_irq'
pdata->properties->has_irq = true;
^~
# https://github.com/0day-ci/linux/commit/f8686f0bb4ff7fdded832484a559f1454a2a51d2
git remote add linux-review https://github.com/0day-ci/linux
git remote update linux-review
git checkout f8686f0bb4ff7fdded832484a559f1454a2a51d2
vim +219 drivers/mfd/intel_quark_i2c_gpio.c
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 189
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 190 static int intel_quark_gpio_setup(struct pci_dev *pdev, struct mfd_cell *cell)
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 191 {
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 192 struct dwapb_platform_data *pdata;
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 193 struct resource *res = (struct resource *)cell->resources;
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 194 struct device *dev = &pdev->dev;
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 195
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 196 res[INTEL_QUARK_IORES_MEM].start =
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 197 pci_resource_start(pdev, MFD_GPIO_BAR);
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 198 res[INTEL_QUARK_IORES_MEM].end =
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 199 pci_resource_end(pdev, MFD_GPIO_BAR);
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 200
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 201 pdata = devm_kzalloc(dev, sizeof(*pdata), GFP_KERNEL);
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 202 if (!pdata)
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 203 return -ENOMEM;
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 204
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 205 /* For intel quark x1000, it has only one port: portA */
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 206 pdata->nports = INTEL_QUARK_GPIO_NPORTS;
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 207 pdata->properties = devm_kcalloc(dev, pdata->nports,
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 208 sizeof(*pdata->properties),
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 209 GFP_KERNEL);
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 210 if (!pdata->properties)
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 211 return -ENOMEM;
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 212
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 213 /* Set the properties for portA */
4ba8cfa79f44a948 Jiang Qiu 2016-04-28 214 pdata->properties->fwnode = NULL;
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 215 pdata->properties->idx = 0;
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 216 pdata->properties->ngpio = INTEL_QUARK_MFD_NGPIO;
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 217 pdata->properties->gpio_base = INTEL_QUARK_MFD_GPIO_BASE;
e6ca26abd37606ba Phil Edworthy 2018-04-26 218 pdata->properties->irq[0] = pdev->irq;
e6ca26abd37606ba Phil Edworthy 2018-04-26 @219 pdata->properties->has_irq = true;
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 220 pdata->properties->irq_shared = true;
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 221
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 222 cell->platform_data = pdata;
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 223 cell->pdata_size = sizeof(*pdata);
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 224
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 225 return 0;
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 226 }
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 227
:::::: The code at line 219 was first introduced by commit
:::::: e6ca26abd37606ba4864f20c85d3fe4a2173b93f gpio: dwapb: Add support for 1 interrupt per port A GPIO
:::::: TO: Phil Edworthy <phil.edworthy@renesas.com>
:::::: CC: Linus Walleij <linus.walleij@linaro.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 72422 bytes --]
[-- Attachment #3: Type: text/plain, Size: 149 bytes --]
_______________________________________________
kbuild mailing list -- kbuild@lists.01.org
To unsubscribe send an email to kbuild-leave@lists.01.org
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v1 4/4] gpio: dwapb: Remove unneeded has_irq member in struct dwapb_port_property
@ 2020-05-13 12:39 ` kbuild test robot
0 siblings, 0 replies; 10+ messages in thread
From: kbuild test robot @ 2020-05-13 12:39 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 5081 bytes --]
Hi Andy,
I love your patch! Yet something to improve:
[auto build test ERROR on gpio/for-next]
[also build test ERROR on next-20200512]
[cannot apply to linus/master v5.7-rc5]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
url: https://github.com/0day-ci/linux/commits/Andy-Shevchenko/gpio-dwapb-avoid-error-message-for-optional-IRQ/20200513-025227
base: https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git for-next
config: i386-allyesconfig (attached as .config)
compiler: gcc-7 (Ubuntu 7.5.0-6ubuntu2) 7.5.0
reproduce:
# save the attached .config to linux build tree
make ARCH=i386
If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
drivers/mfd/intel_quark_i2c_gpio.c: In function 'intel_quark_gpio_setup':
>> drivers/mfd/intel_quark_i2c_gpio.c:219:19: error: 'struct dwapb_port_property' has no member named 'has_irq'
pdata->properties->has_irq = true;
^~
# https://github.com/0day-ci/linux/commit/f8686f0bb4ff7fdded832484a559f1454a2a51d2
git remote add linux-review https://github.com/0day-ci/linux
git remote update linux-review
git checkout f8686f0bb4ff7fdded832484a559f1454a2a51d2
vim +219 drivers/mfd/intel_quark_i2c_gpio.c
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 189
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 190 static int intel_quark_gpio_setup(struct pci_dev *pdev, struct mfd_cell *cell)
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 191 {
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 192 struct dwapb_platform_data *pdata;
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 193 struct resource *res = (struct resource *)cell->resources;
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 194 struct device *dev = &pdev->dev;
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 195
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 196 res[INTEL_QUARK_IORES_MEM].start =
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 197 pci_resource_start(pdev, MFD_GPIO_BAR);
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 198 res[INTEL_QUARK_IORES_MEM].end =
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 199 pci_resource_end(pdev, MFD_GPIO_BAR);
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 200
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 201 pdata = devm_kzalloc(dev, sizeof(*pdata), GFP_KERNEL);
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 202 if (!pdata)
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 203 return -ENOMEM;
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 204
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 205 /* For intel quark x1000, it has only one port: portA */
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 206 pdata->nports = INTEL_QUARK_GPIO_NPORTS;
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 207 pdata->properties = devm_kcalloc(dev, pdata->nports,
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 208 sizeof(*pdata->properties),
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 209 GFP_KERNEL);
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 210 if (!pdata->properties)
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 211 return -ENOMEM;
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 212
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 213 /* Set the properties for portA */
4ba8cfa79f44a948 Jiang Qiu 2016-04-28 214 pdata->properties->fwnode = NULL;
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 215 pdata->properties->idx = 0;
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 216 pdata->properties->ngpio = INTEL_QUARK_MFD_NGPIO;
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 217 pdata->properties->gpio_base = INTEL_QUARK_MFD_GPIO_BASE;
e6ca26abd37606ba Phil Edworthy 2018-04-26 218 pdata->properties->irq[0] = pdev->irq;
e6ca26abd37606ba Phil Edworthy 2018-04-26 @219 pdata->properties->has_irq = true;
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 220 pdata->properties->irq_shared = true;
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 221
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 222 cell->platform_data = pdata;
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 223 cell->pdata_size = sizeof(*pdata);
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 224
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 225 return 0;
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 226 }
60ae5b9f5cdd80c5 Raymond Tan 2015-02-02 227
:::::: The code at line 219 was first introduced by commit
:::::: e6ca26abd37606ba4864f20c85d3fe4a2173b93f gpio: dwapb: Add support for 1 interrupt per port A GPIO
:::::: TO: Phil Edworthy <phil.edworthy@renesas.com>
:::::: CC: Linus Walleij <linus.walleij@linaro.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
_______________________________________________
kbuild mailing list -- kbuild(a)lists.01.org
To unsubscribe send an email to kbuild-leave(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 72422 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v1 4/4] gpio: dwapb: Remove unneeded has_irq member in struct dwapb_port_property
2020-05-12 18:45 ` [PATCH v1 4/4] gpio: dwapb: Remove unneeded has_irq member in struct dwapb_port_property Andy Shevchenko
2020-05-12 22:53 ` kbuild test robot
2020-05-13 12:39 ` kbuild test robot
@ 2020-05-17 14:26 ` Serge Semin
2020-05-18 17:27 ` Andy Shevchenko
2 siblings, 1 reply; 10+ messages in thread
From: Serge Semin @ 2020-05-17 14:26 UTC (permalink / raw)
To: Andy Shevchenko; +Cc: Linus Walleij, Bartosz Golaszewski, linux-gpio
On Tue, May 12, 2020 at 09:45:13PM +0300, Andy Shevchenko wrote:
> has_irq member of struct dwapb_port_property is used only in one place,
> so, make it local test instead and remove from the structure.
>
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> Cc: Serge Semin <fancer.lancer@gmail.com>
> ---
> drivers/gpio/gpio-dwapb.c | 12 +++++++-----
> include/linux/platform_data/gpio-dwapb.h | 1 -
> 2 files changed, 7 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/gpio/gpio-dwapb.c b/drivers/gpio/gpio-dwapb.c
> index 2975f2d369874a..87834adccc4534 100644
> --- a/drivers/gpio/gpio-dwapb.c
> +++ b/drivers/gpio/gpio-dwapb.c
> @@ -366,6 +366,11 @@ static void dwapb_configure_irqs(struct dwapb_gpio *gpio,
> irq_hw_number_t hwirq;
> int err, i;
>
> + if (memchr_inv(pp->irq, 0, sizeof(pp->irq)) == NULL) {
> + dev_warn(gpio->dev, "no IRQ for port%d\n", pp->idx);
> + return;
> + }
> +
Ah, that's why you added the memchr_inv() method in patch 2. So to move it
to dwapb_configure_irqs() at this point. Anyway I still think, that it would be
better to leave the has_irq initialization in the loop there, but here you could
just remove that assignment. For this patch:
Reviewed-by: Serge Semin <fancer.lancer@gmail.com>
I'll test the whole series up when you send v2. Our hardware is equipped with
two DW APB GPIO IPs with Port A enabled for each. One of them is connected to an
interrupt controller by a single line.
-Sergey
> gpio->domain = irq_domain_create_linear(fwnode, ngpio,
> &irq_generic_chip_ops, gpio);
> if (!gpio->domain)
> @@ -501,7 +506,8 @@ static int dwapb_gpio_add_port(struct dwapb_gpio *gpio,
> if (pp->idx == 0)
> port->gc.set_config = dwapb_gpio_set_config;
>
> - if (pp->has_irq)
> + /* Only port A can provide interrupts in all configurations of the IP */
> + if (pp->idx == 0)
> dwapb_configure_irqs(gpio, port, pp);
>
> err = gpiochip_add_data(&port->gc, port);
> @@ -553,10 +559,6 @@ static void dwapb_get_irq(struct device *dev, struct fwnode_handle *fwnode,
>
> pp->irq[j] = err;
> }
> -
> - pp->has_irq = memchr_inv(pp->irq, 0, sizeof(pp->irq)) != NULL;
> - if (!pp->has_irq)
> - dev_warn(dev, "no irq for port%d\n", pp->idx);
> }
>
> static struct dwapb_platform_data *dwapb_gpio_get_pdata(struct device *dev)
> diff --git a/include/linux/platform_data/gpio-dwapb.h b/include/linux/platform_data/gpio-dwapb.h
> index 3c606c450d0596..ff1be737bad6aa 100644
> --- a/include/linux/platform_data/gpio-dwapb.h
> +++ b/include/linux/platform_data/gpio-dwapb.h
> @@ -12,7 +12,6 @@ struct dwapb_port_property {
> unsigned int ngpio;
> unsigned int gpio_base;
> int irq[32];
> - bool has_irq;
> bool irq_shared;
> };
>
> --
> 2.26.2
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v1 4/4] gpio: dwapb: Remove unneeded has_irq member in struct dwapb_port_property
2020-05-17 14:26 ` Serge Semin
@ 2020-05-18 17:27 ` Andy Shevchenko
0 siblings, 0 replies; 10+ messages in thread
From: Andy Shevchenko @ 2020-05-18 17:27 UTC (permalink / raw)
To: Serge Semin; +Cc: Linus Walleij, Bartosz Golaszewski, linux-gpio
On Sun, May 17, 2020 at 05:26:30PM +0300, Serge Semin wrote:
> On Tue, May 12, 2020 at 09:45:13PM +0300, Andy Shevchenko wrote:
> > has_irq member of struct dwapb_port_property is used only in one place,
> > so, make it local test instead and remove from the structure.
...
> > + if (memchr_inv(pp->irq, 0, sizeof(pp->irq)) == NULL) {
> > + dev_warn(gpio->dev, "no IRQ for port%d\n", pp->idx);
> > + return;
> > + }
> > +
>
> Ah, that's why you added the memchr_inv() method in patch 2. So to move it
> to dwapb_configure_irqs() at this point.
Yes.
> Anyway I still think, that it would be
> better to leave the has_irq initialization in the loop there, but here you could
> just remove that assignment.
I think you noticed that I don't like to ping-pong in the series, for what you
propose it would be something like
original --->>>
if (pp->irq[j] >= 0)
pp->has_irq = true;
after patch 2 (if your suggestion applied) --->>>
if (irq > 0) {
pp->irq[j] = irq;
pp->has->irq = true;
}
after this patch --->>>
if (irq > 0)
pp->irq[j] = irq;
I prefer not to do this.
OTOH, I guess it might work if we leave original conditional separate to
assignment of IRQ itself (with '>= 0' -> '> 0' being replaced).
I'll look what can I do here.
> For this patch:
>
> Reviewed-by: Serge Semin <fancer.lancer@gmail.com>
Thank you!
> I'll test the whole series up when you send v2. Our hardware is equipped with
> two DW APB GPIO IPs with Port A enabled for each. One of them is connected to an
> interrupt controller by a single line.
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2020-05-18 17:27 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-13 0:43 [PATCH v1 4/4] gpio: dwapb: Remove unneeded has_irq member in struct dwapb_port_property kbuild test robot
-- strict thread matches above, loose matches on Subject: below --
2020-05-12 18:45 [PATCH v1 1/4] gpio: dwapb: avoid error message for optional IRQ Andy Shevchenko
2020-05-12 18:45 ` [PATCH v1 4/4] gpio: dwapb: Remove unneeded has_irq member in struct dwapb_port_property Andy Shevchenko
2020-05-12 22:53 ` kbuild test robot
2020-05-12 22:53 ` kbuild test robot
2020-05-13 10:22 ` Andy Shevchenko
2020-05-13 10:22 ` Andy Shevchenko
2020-05-13 12:39 ` kbuild test robot
2020-05-13 12:39 ` kbuild test robot
2020-05-17 14:26 ` Serge Semin
2020-05-18 17:27 ` Andy Shevchenko
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.