RE: drivers/input/touchscreen/hideep.c:670:3: error: implicit declaration of function 'gpiod_set_value_cansleep'; did you mean 'gpio_set_value_cansleep'?

From: Anthony Kim
Date: Tue Dec 05 2017 - 19:49:49 EST


Sorry, for my late response.
There is missing some header file about gpio. So I will send patch as soon as.
Thank you your advice.

Anthony.

-----Original Message-----
From: kbuild test robot [mailto:fengguang.wu@xxxxxxxxx]
Sent: Tuesday, December 5, 2017 9:23 PM
To: Anthony Kim <Anthony.Kim@xxxxxxxxxx>
Cc: kbuild-all@xxxxxx; linux-kernel@xxxxxxxxxxxxxxx; Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
Subject: drivers/input/touchscreen/hideep.c:670:3: error: implicit declaration of function 'gpiod_set_value_cansleep'; did you mean 'gpio_set_value_cansleep'?

Hi Anthony,

FYI, the error/warning still remains.

tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: fd6d2e506ce6f850d45342a15c896591291b77b5
commit: 842ff286166e8512450573f6b6eb5e04e626a07f Input: add support for HiDeep touchscreen
date: 4 weeks ago
config: x86_64-randconfig-b0-12051921 (attached as .config)
compiler: gcc-7 (Debian 7.2.0-12) 7.2.1 20171025
reproduce:
git checkout 842ff286166e8512450573f6b6eb5e04e626a07f
# save the attached .config to linux build tree
make ARCH=x86_64

All errors (new ones prefixed by >>):

drivers/input/touchscreen/hideep.c: In function 'hideep_power_on':
>> drivers/input/touchscreen/hideep.c:670:3: error: implicit declaration of function 'gpiod_set_value_cansleep'; did you mean 'gpio_set_value_cansleep'? [-Werror=implicit-function-declaration]
gpiod_set_value_cansleep(ts->reset_gpio, 0);
^~~~~~~~~~~~~~~~~~~~~~~~
gpio_set_value_cansleep
drivers/input/touchscreen/hideep.c: In function 'hideep_power_off':
>> drivers/input/touchscreen/hideep.c:688:3: error: implicit declaration of function 'gpiod_set_value'; did you mean 'gpio_set_value'? [-Werror=implicit-function-declaration]
gpiod_set_value(ts->reset_gpio, 1);
^~~~~~~~~~~~~~~
gpio_set_value
drivers/input/touchscreen/hideep.c: In function 'hideep_probe':
>> drivers/input/touchscreen/hideep.c:1039:19: error: implicit declaration of function 'devm_gpiod_get_optional'; did you mean 'devm_regulator_get_optional'? [-Werror=implicit-function-declaration]
ts->reset_gpio = devm_gpiod_get_optional(&client->dev,
^~~~~~~~~~~~~~~~~~~~~~~
devm_regulator_get_optional
>> drivers/input/touchscreen/hideep.c:1040:17: error: 'GPIOD_OUT_HIGH' undeclared (first use in this function); did you mean 'GPIOF_INIT_HIGH'?
"reset", GPIOD_OUT_HIGH);
^~~~~~~~~~~~~~
GPIOF_INIT_HIGH
drivers/input/touchscreen/hideep.c:1040:17: note: each undeclared identifier is reported only once for each function it appears in
In file included from include/uapi/linux/stddef.h:2:0,
from include/linux/stddef.h:5,
from include/uapi/linux/posix_types.h:5,
from include/uapi/linux/types.h:14,
from include/linux/types.h:6,
from include/linux/list.h:5,
from include/linux/module.h:9,
from drivers/input/touchscreen/hideep.c:9:
drivers/input/touchscreen/hideep.c: At top level:
include/linux/compiler.h:163:4: warning: '______f' is static but declared in inline function 'strcpy' which is not static
______f = { \
^
include/linux/compiler.h:155:23: note: in expansion of macro '__trace_if'
#define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) )
^~~~~~~~~~
include/linux/string.h:422:2: note: in expansion of macro 'if'
if (p_size == (size_t)-1 && q_size == (size_t)-1)
^~
include/linux/compiler.h:163:4: warning: '______f' is static but declared in inline function 'kmemdup' which is not static
______f = { \
^
include/linux/compiler.h:155:23: note: in expansion of macro '__trace_if'
#define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) )
^~~~~~~~~~
include/linux/string.h:412:2: note: in expansion of macro 'if'
if (p_size < size)
^~
include/linux/compiler.h:163:4: warning: '______f' is static but declared in inline function 'kmemdup' which is not static
______f = { \
^
include/linux/compiler.h:155:23: note: in expansion of macro '__trace_if'
#define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) )
^~~~~~~~~~
include/linux/string.h:410:2: note: in expansion of macro 'if'
if (__builtin_constant_p(size) && p_size < size)
^~
include/linux/compiler.h:163:4: warning: '______f' is static but declared in inline function 'memchr_inv' which is not static
______f = { \
^
include/linux/compiler.h:155:23: note: in expansion of macro '__trace_if'
#define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) )
^~~~~~~~~~
include/linux/string.h:401:2: note: in expansion of macro 'if'
if (p_size < size)
^~
include/linux/compiler.h:163:4: warning: '______f' is static but declared in inline function 'memchr_inv' which is not static
______f = { \
^
include/linux/compiler.h:155:23: note: in expansion of macro '__trace_if'
#define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) )
^~~~~~~~~~
include/linux/string.h:399:2: note: in expansion of macro 'if'
if (__builtin_constant_p(size) && p_size < size)
^~
include/linux/compiler.h:163:4: warning: '______f' is static but declared in inline function 'memchr' which is not static
______f = { \
^
include/linux/compiler.h:155:23: note: in expansion of macro '__trace_if'
#define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) )
^~~~~~~~~~
include/linux/string.h:390:2: note: in expansion of macro 'if'
if (p_size < size)
^~
include/linux/compiler.h:163:4: warning: '______f' is static but declared in inline function 'memchr' which is not static
______f = { \
^
include/linux/compiler.h:155:23: note: in expansion of macro '__trace_if'
#define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) )
^~~~~~~~~~
include/linux/string.h:388:2: note: in expansion of macro 'if'
if (__builtin_constant_p(size) && p_size < size)
^~
include/linux/compiler.h:163:4: warning: '______f' is static but declared in inline function 'memcmp' which is not static
______f = { \
^
include/linux/compiler.h:155:23: note: in expansion of macro '__trace_if'
#define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) )
^~~~~~~~~~
include/linux/string.h:380:2: note: in expansion of macro 'if'
if (p_size < size || q_size < size)
^~
include/linux/compiler.h:163:4: warning: '______f' is static but declared in inline function 'memcmp' which is not static
______f = { \
^
include/linux/compiler.h:155:23: note: in expansion of macro '__trace_if'
#define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) )
^~~~~~~~~~
include/linux/string.h:377:3: note: in expansion of macro 'if'
if (q_size < size)
^~
include/linux/compiler.h:163:4: warning: '______f' is static but declared in inline function 'memcmp' which is not static
______f = { \
^
include/linux/compiler.h:155:23: note: in expansion of macro '__trace_if'
#define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) )
^~~~~~~~~~

vim +670 drivers/input/touchscreen/hideep.c

649
650 static int hideep_power_on(struct hideep_ts *ts)
651 {
652 int error = 0;
653
654 error = regulator_enable(ts->vcc_vdd);
655 if (error)
656 dev_err(&ts->client->dev,
657 "failed to enable 'vdd' regulator: %d", error);
658
659 usleep_range(999, 1000);
660
661 error = regulator_enable(ts->vcc_vid);
662 if (error)
663 dev_err(&ts->client->dev,
664 "failed to enable 'vcc_vid' regulator: %d",
665 error);
666
667 msleep(30);
668
669 if (ts->reset_gpio) {
> 670 gpiod_set_value_cansleep(ts->reset_gpio, 0);
671 } else {
672 error = regmap_write(ts->reg, HIDEEP_RESET_CMD, 0x01);
673 if (error)
674 dev_err(&ts->client->dev,
675 "failed to send 'reset' command: %d\n", error);
676 }
677
678 msleep(50);
679
680 return error;
681 }
682
683 static void hideep_power_off(void *data)
684 {
685 struct hideep_ts *ts = data;
686
687 if (ts->reset_gpio)
> 688 gpiod_set_value(ts->reset_gpio, 1);
689
690 regulator_disable(ts->vcc_vid);
691 regulator_disable(ts->vcc_vdd);
692 }
693

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