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