CC: [email protected]
In-Reply-To: <[email protected]>
References: <[email protected]>
TO: Krzysztof Kozlowski <[email protected]>

Hi Krzysztof,

I love your patch! Perhaps something to improve:

[auto build test WARNING on gpio/for-next]
[also build test WARNING on input/next v5.9-rc2 next-20200826]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    
https://github.com/0day-ci/linux/commits/Krzysztof-Kozlowski/gpio-Add-devm_fwnode_gpiod_get_optional-helpers/20200827-041021
base:   https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git 
for-next
:::::: branch date: 7 hours ago
:::::: commit date: 7 hours ago
config: x86_64-randconfig-m001-20200826 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>
Reported-by: Dan Carpenter <[email protected]>

New smatch warnings:
drivers/input/keyboard/gpio_keys.c:500 gpio_keys_setup_key() error: 
uninitialized symbol 'error'.

Old smatch warnings:
internal error: drivers/input/keyboard/gpio_keys.c:500 SQL error #2: near 
"and": syntax error
internal error: drivers/input/keyboard/gpio_keys.c:500 SQL: 'select * from 
return_states where  and type = 1044 and parameter = -1 and key = '$' limit 1;'

# 
https://github.com/0day-ci/linux/commit/e138d2340a72b4f117d0da36fe7cddb4bc073c58
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review 
Krzysztof-Kozlowski/gpio-Add-devm_fwnode_gpiod_get_optional-helpers/20200827-041021
git checkout e138d2340a72b4f117d0da36fe7cddb4bc073c58
vim +/error +500 drivers/input/keyboard/gpio_keys.c

27245519f0de50 Alexander Shiyan    2014-04-28  476  
5298cc4cc753bb Bill Pemberton      2012-11-23  477  static int 
gpio_keys_setup_key(struct platform_device *pdev,
d9080921aa32c7 Dmitry Torokhov     2012-03-18  478                              
struct input_dev *input,
83e4947a569f4d Hans de Goede       2017-01-21  479                              
struct gpio_keys_drvdata *ddata,
700a38b27eefc5 Dmitry Torokhov     2016-10-19  480                              
const struct gpio_keys_button *button,
83e4947a569f4d Hans de Goede       2017-01-21  481                              
int idx,
700a38b27eefc5 Dmitry Torokhov     2016-10-19  482                              
struct fwnode_handle *child)
bc8f1eaf68a8aa Ben Dooks           2009-11-10  483  {
92a47674f57b4a Alexander Stein     2011-04-11  484      const char *desc = 
button->desc ? button->desc : "gpio_keys";
9e3af04f878731 Mika Westerberg     2010-02-04  485      struct device *dev = 
&pdev->dev;
83e4947a569f4d Hans de Goede       2017-01-21  486      struct gpio_button_data 
*bdata = &ddata->data[idx];
d8ee4a1c90529e Laxman Dewangan     2012-03-19  487      irq_handler_t isr;
9e3af04f878731 Mika Westerberg     2010-02-04  488      unsigned long irqflags;
27245519f0de50 Alexander Shiyan    2014-04-28  489      int irq;
27245519f0de50 Alexander Shiyan    2014-04-28  490      int error;
bc8f1eaf68a8aa Ben Dooks           2009-11-10  491  
d9080921aa32c7 Dmitry Torokhov     2012-03-18  492      bdata->input = input;
d9080921aa32c7 Dmitry Torokhov     2012-03-18  493      bdata->button = button;
d8ee4a1c90529e Laxman Dewangan     2012-03-19  494      
spin_lock_init(&bdata->lock);
d8ee4a1c90529e Laxman Dewangan     2012-03-19  495  
700a38b27eefc5 Dmitry Torokhov     2016-10-19  496      if (child) {
e138d2340a72b4 Krzysztof Kozlowski 2020-08-26  497              bdata->gpiod = 
devm_fwnode_gpiod_get_optional(dev, child, NULL,
e138d2340a72b4 Krzysztof Kozlowski 2020-08-26  498                              
                              GPIOD_IN, desc);
e138d2340a72b4 Krzysztof Kozlowski 2020-08-26  499              if 
(IS_ERR(bdata->gpiod))
e138d2340a72b4 Krzysztof Kozlowski 2020-08-26 @500                      return 
dev_err_probe(dev, error, "failed to get gpio\n");
700a38b27eefc5 Dmitry Torokhov     2016-10-19  501      } else if 
(gpio_is_valid(button->gpio)) {
5feeca3c1e39c0 Geert Uytterhoeven  2016-10-19  502              /*
5feeca3c1e39c0 Geert Uytterhoeven  2016-10-19  503               * Legacy GPIO 
number, so request the GPIO here and
5feeca3c1e39c0 Geert Uytterhoeven  2016-10-19  504               * convert it 
to descriptor.
5feeca3c1e39c0 Geert Uytterhoeven  2016-10-19  505               */
5feeca3c1e39c0 Geert Uytterhoeven  2016-10-19  506              unsigned flags 
= GPIOF_IN;
5feeca3c1e39c0 Geert Uytterhoeven  2016-10-19  507  
5feeca3c1e39c0 Geert Uytterhoeven  2016-10-19  508              if 
(button->active_low)
5feeca3c1e39c0 Geert Uytterhoeven  2016-10-19  509                      flags 
|= GPIOF_ACTIVE_LOW;
bc8f1eaf68a8aa Ben Dooks           2009-11-10  510  
b4e66e7d1948e0 Guenter Roeck       2017-01-21  511              error = 
devm_gpio_request_one(dev, button->gpio, flags, desc);
bc8f1eaf68a8aa Ben Dooks           2009-11-10  512              if (error < 0) {
d8ee4a1c90529e Laxman Dewangan     2012-03-19  513                      
dev_err(dev, "Failed to request GPIO %d, error %d\n",
bc8f1eaf68a8aa Ben Dooks           2009-11-10  514                              
button->gpio, error);
d8ee4a1c90529e Laxman Dewangan     2012-03-19  515                      return 
error;
bc8f1eaf68a8aa Ben Dooks           2009-11-10  516              }
bc8f1eaf68a8aa Ben Dooks           2009-11-10  517  
5feeca3c1e39c0 Geert Uytterhoeven  2016-10-19  518              bdata->gpiod = 
gpio_to_desc(button->gpio);
5feeca3c1e39c0 Geert Uytterhoeven  2016-10-19  519              if 
(!bdata->gpiod)
5feeca3c1e39c0 Geert Uytterhoeven  2016-10-19  520                      return 
-EINVAL;
700a38b27eefc5 Dmitry Torokhov     2016-10-19  521      }
5feeca3c1e39c0 Geert Uytterhoeven  2016-10-19  522  
700a38b27eefc5 Dmitry Torokhov     2016-10-19  523      if (bdata->gpiod) {
83fc580dcc2f0f Jeffy Chen          2018-03-08  524              bool active_low 
= gpiod_is_active_low(bdata->gpiod);
83fc580dcc2f0f Jeffy Chen          2018-03-08  525  
28ed684fa3c0a7 Grazvydas Ignotas   2010-06-28  526              if 
(button->debounce_interval) {
5feeca3c1e39c0 Geert Uytterhoeven  2016-10-19  527                      error = 
gpiod_set_debounce(bdata->gpiod,
28ed684fa3c0a7 Grazvydas Ignotas   2010-06-28  528                              
        button->debounce_interval * 1000);
28ed684fa3c0a7 Grazvydas Ignotas   2010-06-28  529                      /* use 
timer if gpiolib doesn't provide debounce */
28ed684fa3c0a7 Grazvydas Ignotas   2010-06-28  530                      if 
(error < 0)
8ed92556761e1f Dmitry Torokhov     2014-11-14  531                              
bdata->software_debounce =
d8ee4a1c90529e Laxman Dewangan     2012-03-19  532                              
                button->debounce_interval;
28ed684fa3c0a7 Grazvydas Ignotas   2010-06-28  533              }
28ed684fa3c0a7 Grazvydas Ignotas   2010-06-28  534  
97d86e07b71643 Dmitry Torokhov     2014-11-14  535              if 
(button->irq) {
97d86e07b71643 Dmitry Torokhov     2014-11-14  536                      
bdata->irq = button->irq;
97d86e07b71643 Dmitry Torokhov     2014-11-14  537              } else {
5feeca3c1e39c0 Geert Uytterhoeven  2016-10-19  538                      irq = 
gpiod_to_irq(bdata->gpiod);
bc8f1eaf68a8aa Ben Dooks           2009-11-10  539                      if (irq 
< 0) {
bc8f1eaf68a8aa Ben Dooks           2009-11-10  540                              
error = irq;
d8ee4a1c90529e Laxman Dewangan     2012-03-19  541                              
dev_err(dev,
d8ee4a1c90529e Laxman Dewangan     2012-03-19  542                              
        "Unable to get irq number for GPIO %d, error %d\n",
bc8f1eaf68a8aa Ben Dooks           2009-11-10  543                              
        button->gpio, error);
27245519f0de50 Alexander Shiyan    2014-04-28  544                              
return error;
bc8f1eaf68a8aa Ben Dooks           2009-11-10  545                      }
d8ee4a1c90529e Laxman Dewangan     2012-03-19  546                      
bdata->irq = irq;
97d86e07b71643 Dmitry Torokhov     2014-11-14  547              }
d8ee4a1c90529e Laxman Dewangan     2012-03-19  548  
8ed92556761e1f Dmitry Torokhov     2014-11-14  549              
INIT_DELAYED_WORK(&bdata->work, gpio_keys_gpio_work_func);
bc8f1eaf68a8aa Ben Dooks           2009-11-10  550  
d8ee4a1c90529e Laxman Dewangan     2012-03-19  551              isr = 
gpio_keys_gpio_isr;
9e3af04f878731 Mika Westerberg     2010-02-04  552              irqflags = 
IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING;
d8ee4a1c90529e Laxman Dewangan     2012-03-19  553  
83fc580dcc2f0f Jeffy Chen          2018-03-08  554              switch 
(button->wakeup_event_action) {
83fc580dcc2f0f Jeffy Chen          2018-03-08  555              case 
EV_ACT_ASSERTED:
83fc580dcc2f0f Jeffy Chen          2018-03-08  556                      
bdata->wakeup_trigger_type = active_low ?
83fc580dcc2f0f Jeffy Chen          2018-03-08  557                              
IRQ_TYPE_EDGE_FALLING : IRQ_TYPE_EDGE_RISING;
83fc580dcc2f0f Jeffy Chen          2018-03-08  558                      break;
83fc580dcc2f0f Jeffy Chen          2018-03-08  559              case 
EV_ACT_DEASSERTED:
83fc580dcc2f0f Jeffy Chen          2018-03-08  560                      
bdata->wakeup_trigger_type = active_low ?
83fc580dcc2f0f Jeffy Chen          2018-03-08  561                              
IRQ_TYPE_EDGE_RISING : IRQ_TYPE_EDGE_FALLING;
83fc580dcc2f0f Jeffy Chen          2018-03-08  562                      break;
83fc580dcc2f0f Jeffy Chen          2018-03-08  563              case EV_ACT_ANY:
83fc580dcc2f0f Jeffy Chen          2018-03-08  564                      /* fall 
through */
83fc580dcc2f0f Jeffy Chen          2018-03-08  565              default:
83fc580dcc2f0f Jeffy Chen          2018-03-08  566                      /*
83fc580dcc2f0f Jeffy Chen          2018-03-08  567                       * For 
other cases, we are OK letting suspend/resume
83fc580dcc2f0f Jeffy Chen          2018-03-08  568                       * not 
reconfigure the trigger type.
83fc580dcc2f0f Jeffy Chen          2018-03-08  569                       */
83fc580dcc2f0f Jeffy Chen          2018-03-08  570                      break;
83fc580dcc2f0f Jeffy Chen          2018-03-08  571              }
d8ee4a1c90529e Laxman Dewangan     2012-03-19  572      } else {
d8ee4a1c90529e Laxman Dewangan     2012-03-19  573              if 
(!button->irq) {
700a38b27eefc5 Dmitry Torokhov     2016-10-19  574                      
dev_err(dev, "Found button without gpio or irq\n");
d8ee4a1c90529e Laxman Dewangan     2012-03-19  575                      return 
-EINVAL;
d8ee4a1c90529e Laxman Dewangan     2012-03-19  576              }
700a38b27eefc5 Dmitry Torokhov     2016-10-19  577  
d8ee4a1c90529e Laxman Dewangan     2012-03-19  578              bdata->irq = 
button->irq;
d8ee4a1c90529e Laxman Dewangan     2012-03-19  579  
d8ee4a1c90529e Laxman Dewangan     2012-03-19  580              if 
(button->type && button->type != EV_KEY) {
d8ee4a1c90529e Laxman Dewangan     2012-03-19  581                      
dev_err(dev, "Only EV_KEY allowed for IRQ buttons.\n");
d8ee4a1c90529e Laxman Dewangan     2012-03-19  582                      return 
-EINVAL;
d8ee4a1c90529e Laxman Dewangan     2012-03-19  583              }
d8ee4a1c90529e Laxman Dewangan     2012-03-19  584  
8ed92556761e1f Dmitry Torokhov     2014-11-14  585              
bdata->release_delay = button->debounce_interval;
82565a120544b2 stephen lu          2017-10-23  586              
timer_setup(&bdata->release_timer, gpio_keys_irq_timer, 0);
d8ee4a1c90529e Laxman Dewangan     2012-03-19  587  
d8ee4a1c90529e Laxman Dewangan     2012-03-19  588              isr = 
gpio_keys_irq_isr;
d8ee4a1c90529e Laxman Dewangan     2012-03-19  589              irqflags = 0;
83fc580dcc2f0f Jeffy Chen          2018-03-08  590  
83fc580dcc2f0f Jeffy Chen          2018-03-08  591              /*
83fc580dcc2f0f Jeffy Chen          2018-03-08  592               * For IRQ 
buttons, there is no interrupt for release.
83fc580dcc2f0f Jeffy Chen          2018-03-08  593               * So we don't 
need to reconfigure the trigger type for wakeup.
83fc580dcc2f0f Jeffy Chen          2018-03-08  594               */
d8ee4a1c90529e Laxman Dewangan     2012-03-19  595      }
d8ee4a1c90529e Laxman Dewangan     2012-03-19  596  
83e4947a569f4d Hans de Goede       2017-01-21  597      bdata->code = 
&ddata->keymap[idx];
83e4947a569f4d Hans de Goede       2017-01-21  598      *bdata->code = 
button->code;
83e4947a569f4d Hans de Goede       2017-01-21  599      
input_set_capability(input, button->type ?: EV_KEY, *bdata->code);
d8ee4a1c90529e Laxman Dewangan     2012-03-19  600  
27245519f0de50 Alexander Shiyan    2014-04-28  601      /*
8ed92556761e1f Dmitry Torokhov     2014-11-14  602       * Install custom 
action to cancel release timer and
27245519f0de50 Alexander Shiyan    2014-04-28  603       * workqueue item.
27245519f0de50 Alexander Shiyan    2014-04-28  604       */
b4e66e7d1948e0 Guenter Roeck       2017-01-21  605      error = 
devm_add_action(dev, gpio_keys_quiesce_key, bdata);
27245519f0de50 Alexander Shiyan    2014-04-28  606      if (error) {
b4e66e7d1948e0 Guenter Roeck       2017-01-21  607              dev_err(dev, 
"failed to register quiesce action, error: %d\n",
27245519f0de50 Alexander Shiyan    2014-04-28  608                      error);
27245519f0de50 Alexander Shiyan    2014-04-28  609              return error;
27245519f0de50 Alexander Shiyan    2014-04-28  610      }
27245519f0de50 Alexander Shiyan    2014-04-28  611  
9e3af04f878731 Mika Westerberg     2010-02-04  612      /*
9e3af04f878731 Mika Westerberg     2010-02-04  613       * If platform has 
specified that the button can be disabled,
9e3af04f878731 Mika Westerberg     2010-02-04  614       * we don't want it to 
share the interrupt line.
9e3af04f878731 Mika Westerberg     2010-02-04  615       */
9e3af04f878731 Mika Westerberg     2010-02-04  616      if 
(!button->can_disable)
9e3af04f878731 Mika Westerberg     2010-02-04  617              irqflags |= 
IRQF_SHARED;
9e3af04f878731 Mika Westerberg     2010-02-04  618  
b4e66e7d1948e0 Guenter Roeck       2017-01-21  619      error = 
devm_request_any_context_irq(dev, bdata->irq, isr, irqflags,
b4e66e7d1948e0 Guenter Roeck       2017-01-21  620                              
             desc, bdata);
94a8cab8caaa56 Philippe Langlais   2011-01-20  621      if (error < 0) {
bc8f1eaf68a8aa Ben Dooks           2009-11-10  622              dev_err(dev, 
"Unable to claim irq %d; error %d\n",
d8ee4a1c90529e Laxman Dewangan     2012-03-19  623                      
bdata->irq, error);
27245519f0de50 Alexander Shiyan    2014-04-28  624              return error;
bc8f1eaf68a8aa Ben Dooks           2009-11-10  625      }
bc8f1eaf68a8aa Ben Dooks           2009-11-10  626  
bc8f1eaf68a8aa Ben Dooks           2009-11-10  627      return 0;
bc8f1eaf68a8aa Ben Dooks           2009-11-10  628  }
bc8f1eaf68a8aa Ben Dooks           2009-11-10  629  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]

Attachment: .config.gz
Description: application/gzip

_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to