Hi Andy, I love your patch! Yet something to improve: [auto build test ERROR on brgl/gpio/for-next] [also build test ERROR on linus/master v6.3-rc2 next-20230310] [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#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Andy-Shevchenko/gpio-Drop-unused-inclusions-from-of_gpio-h/20230313-224656 base: https://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux.git gpio/for-next patch link: https://lore.kernel.org/r/20230313144557.35856-1-andriy.shevchenko%40linux.intel.com patch subject: [rft, PATCH v1 1/1] gpio: Drop unused inclusions from of_gpio.h config: arm-randconfig-r046-20230312 (https://download.01.org/0day-ci/archive/20230314/202303140220.FQmu9huZ-lkp@xxxxxxxxx/config) compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project 67409911353323ca5edf2049ef0df54132fa1ca7) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # install arm cross compiling tool for clang build # apt-get install binutils-arm-linux-gnueabi # https://github.com/intel-lab-lkp/linux/commit/b108d11788b6db9e37a6c4b3110c09cecf30a46c git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Andy-Shevchenko/gpio-Drop-unused-inclusions-from-of_gpio-h/20230313-224656 git checkout b108d11788b6db9e37a6c4b3110c09cecf30a46c # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm olddefconfig COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm SHELL=/bin/bash drivers/video/backlight/ If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot <lkp@xxxxxxxxx> | Link: https://lore.kernel.org/oe-kbuild-all/202303140220.FQmu9huZ-lkp@xxxxxxxxx/ All errors (new ones prefixed by >>): >> drivers/video/backlight/hx8357.c:324:2: error: call to undeclared function 'gpio_set_value'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] gpio_set_value(lcd->reset, 1); ^ drivers/video/backlight/hx8357.c:324:2: note: did you mean 'gpiod_set_value'? include/linux/gpio/consumer.h:122:6: note: 'gpiod_set_value' declared here void gpiod_set_value(struct gpio_desc *desc, int value); ^ >> drivers/video/backlight/hx8357.c:344:3: error: call to undeclared function 'gpio_set_value_cansleep'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] gpio_set_value_cansleep(lcd->im_pins[0], 1); ^ drivers/video/backlight/hx8357.c:344:3: note: did you mean 'gpiod_set_value_cansleep'? include/linux/gpio/consumer.h:144:6: note: 'gpiod_set_value_cansleep' declared here void gpiod_set_value_cansleep(struct gpio_desc *desc, int value); ^ >> drivers/video/backlight/hx8357.c:605:7: error: call to undeclared function 'gpio_is_valid'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] if (!gpio_is_valid(lcd->reset)) { ^ drivers/video/backlight/hx8357.c:605:7: note: did you mean 'uuid_is_valid'? include/linux/uuid.h:102:19: note: 'uuid_is_valid' declared here bool __must_check uuid_is_valid(const char *uuid); ^ >> drivers/video/backlight/hx8357.c:610:8: error: call to undeclared function 'devm_gpio_request_one'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] ret = devm_gpio_request_one(&spi->dev, lcd->reset, ^ >> drivers/video/backlight/hx8357.c:611:9: error: use of undeclared identifier 'GPIOF_OUT_INIT_HIGH'; did you mean 'GPIOD_OUT_HIGH'? GPIOF_OUT_INIT_HIGH, ^~~~~~~~~~~~~~~~~~~ GPIOD_OUT_HIGH include/linux/gpio/consumer.h:51:2: note: 'GPIOD_OUT_HIGH' declared here GPIOD_OUT_HIGH = GPIOD_FLAGS_BIT_DIR_SET | GPIOD_FLAGS_BIT_DIR_OUT | ^ >> drivers/video/backlight/hx8357.c:636:11: error: use of undeclared identifier 'GPIOF_OUT_INIT_LOW'; did you mean 'GPIOD_OUT_LOW'? GPIOF_OUT_INIT_LOW, ^~~~~~~~~~~~~~~~~~ GPIOD_OUT_LOW include/linux/gpio/consumer.h:50:2: note: 'GPIOD_OUT_LOW' declared here GPIOD_OUT_LOW = GPIOD_FLAGS_BIT_DIR_SET | GPIOD_FLAGS_BIT_DIR_OUT, ^ 6 errors generated. vim +/gpio_set_value +324 drivers/video/backlight/hx8357.c 8a6c1dd55168b5 Maxime Ripard 2013-02-21 318 fb52566873ca8c Alexandre Belloni 2013-08-01 319 static void hx8357_lcd_reset(struct lcd_device *lcdev) fb52566873ca8c Alexandre Belloni 2013-08-01 320 { fb52566873ca8c Alexandre Belloni 2013-08-01 321 struct hx8357_data *lcd = lcd_get_data(lcdev); fb52566873ca8c Alexandre Belloni 2013-08-01 322 fb52566873ca8c Alexandre Belloni 2013-08-01 323 /* Reset the screen */ fb52566873ca8c Alexandre Belloni 2013-08-01 @324 gpio_set_value(lcd->reset, 1); fb52566873ca8c Alexandre Belloni 2013-08-01 325 usleep_range(10000, 12000); fb52566873ca8c Alexandre Belloni 2013-08-01 326 gpio_set_value(lcd->reset, 0); fb52566873ca8c Alexandre Belloni 2013-08-01 327 usleep_range(10000, 12000); fb52566873ca8c Alexandre Belloni 2013-08-01 328 gpio_set_value(lcd->reset, 1); fb52566873ca8c Alexandre Belloni 2013-08-01 329 fb52566873ca8c Alexandre Belloni 2013-08-01 330 /* The controller needs 120ms to recover from reset */ fb52566873ca8c Alexandre Belloni 2013-08-01 331 msleep(120); fb52566873ca8c Alexandre Belloni 2013-08-01 332 } fb52566873ca8c Alexandre Belloni 2013-08-01 333 8a6c1dd55168b5 Maxime Ripard 2013-02-21 334 static int hx8357_lcd_init(struct lcd_device *lcdev) 8a6c1dd55168b5 Maxime Ripard 2013-02-21 335 { 8a6c1dd55168b5 Maxime Ripard 2013-02-21 336 struct hx8357_data *lcd = lcd_get_data(lcdev); 8a6c1dd55168b5 Maxime Ripard 2013-02-21 337 int ret; 8a6c1dd55168b5 Maxime Ripard 2013-02-21 338 8a6c1dd55168b5 Maxime Ripard 2013-02-21 339 /* 8a6c1dd55168b5 Maxime Ripard 2013-02-21 340 * Set the interface selection pins to SPI mode, with three 8a6c1dd55168b5 Maxime Ripard 2013-02-21 341 * wires 8a6c1dd55168b5 Maxime Ripard 2013-02-21 342 */ ccf9901ffec4b4 Maxime Ripard 2013-08-01 343 if (lcd->use_im_pins) { 8a6c1dd55168b5 Maxime Ripard 2013-02-21 @344 gpio_set_value_cansleep(lcd->im_pins[0], 1); 8a6c1dd55168b5 Maxime Ripard 2013-02-21 345 gpio_set_value_cansleep(lcd->im_pins[1], 0); 8a6c1dd55168b5 Maxime Ripard 2013-02-21 346 gpio_set_value_cansleep(lcd->im_pins[2], 1); ccf9901ffec4b4 Maxime Ripard 2013-08-01 347 } 8a6c1dd55168b5 Maxime Ripard 2013-02-21 348 8a6c1dd55168b5 Maxime Ripard 2013-02-21 349 ret = hx8357_spi_write_array(lcdev, hx8357_seq_power, 8a6c1dd55168b5 Maxime Ripard 2013-02-21 350 ARRAY_SIZE(hx8357_seq_power)); 8a6c1dd55168b5 Maxime Ripard 2013-02-21 351 if (ret < 0) 8a6c1dd55168b5 Maxime Ripard 2013-02-21 352 return ret; 8a6c1dd55168b5 Maxime Ripard 2013-02-21 353 8a6c1dd55168b5 Maxime Ripard 2013-02-21 354 ret = hx8357_spi_write_array(lcdev, hx8357_seq_vcom, 8a6c1dd55168b5 Maxime Ripard 2013-02-21 355 ARRAY_SIZE(hx8357_seq_vcom)); 8a6c1dd55168b5 Maxime Ripard 2013-02-21 356 if (ret < 0) 8a6c1dd55168b5 Maxime Ripard 2013-02-21 357 return ret; 8a6c1dd55168b5 Maxime Ripard 2013-02-21 358 8a6c1dd55168b5 Maxime Ripard 2013-02-21 359 ret = hx8357_spi_write_array(lcdev, hx8357_seq_power_normal, 8a6c1dd55168b5 Maxime Ripard 2013-02-21 360 ARRAY_SIZE(hx8357_seq_power_normal)); 8a6c1dd55168b5 Maxime Ripard 2013-02-21 361 if (ret < 0) 8a6c1dd55168b5 Maxime Ripard 2013-02-21 362 return ret; 8a6c1dd55168b5 Maxime Ripard 2013-02-21 363 8a6c1dd55168b5 Maxime Ripard 2013-02-21 364 ret = hx8357_spi_write_array(lcdev, hx8357_seq_panel_driving, 8a6c1dd55168b5 Maxime Ripard 2013-02-21 365 ARRAY_SIZE(hx8357_seq_panel_driving)); 8a6c1dd55168b5 Maxime Ripard 2013-02-21 366 if (ret < 0) 8a6c1dd55168b5 Maxime Ripard 2013-02-21 367 return ret; 8a6c1dd55168b5 Maxime Ripard 2013-02-21 368 8a6c1dd55168b5 Maxime Ripard 2013-02-21 369 ret = hx8357_spi_write_array(lcdev, hx8357_seq_display_frame, 8a6c1dd55168b5 Maxime Ripard 2013-02-21 370 ARRAY_SIZE(hx8357_seq_display_frame)); 8a6c1dd55168b5 Maxime Ripard 2013-02-21 371 if (ret < 0) 8a6c1dd55168b5 Maxime Ripard 2013-02-21 372 return ret; 8a6c1dd55168b5 Maxime Ripard 2013-02-21 373 8a6c1dd55168b5 Maxime Ripard 2013-02-21 374 ret = hx8357_spi_write_array(lcdev, hx8357_seq_panel_related, 8a6c1dd55168b5 Maxime Ripard 2013-02-21 375 ARRAY_SIZE(hx8357_seq_panel_related)); 8a6c1dd55168b5 Maxime Ripard 2013-02-21 376 if (ret < 0) 8a6c1dd55168b5 Maxime Ripard 2013-02-21 377 return ret; 8a6c1dd55168b5 Maxime Ripard 2013-02-21 378 8a6c1dd55168b5 Maxime Ripard 2013-02-21 379 ret = hx8357_spi_write_array(lcdev, hx8357_seq_undefined1, 8a6c1dd55168b5 Maxime Ripard 2013-02-21 380 ARRAY_SIZE(hx8357_seq_undefined1)); 8a6c1dd55168b5 Maxime Ripard 2013-02-21 381 if (ret < 0) 8a6c1dd55168b5 Maxime Ripard 2013-02-21 382 return ret; 8a6c1dd55168b5 Maxime Ripard 2013-02-21 383 8a6c1dd55168b5 Maxime Ripard 2013-02-21 384 ret = hx8357_spi_write_array(lcdev, hx8357_seq_undefined2, 8a6c1dd55168b5 Maxime Ripard 2013-02-21 385 ARRAY_SIZE(hx8357_seq_undefined2)); 8a6c1dd55168b5 Maxime Ripard 2013-02-21 386 if (ret < 0) 8a6c1dd55168b5 Maxime Ripard 2013-02-21 387 return ret; 8a6c1dd55168b5 Maxime Ripard 2013-02-21 388 8a6c1dd55168b5 Maxime Ripard 2013-02-21 389 ret = hx8357_spi_write_array(lcdev, hx8357_seq_gamma, 8a6c1dd55168b5 Maxime Ripard 2013-02-21 390 ARRAY_SIZE(hx8357_seq_gamma)); 8a6c1dd55168b5 Maxime Ripard 2013-02-21 391 if (ret < 0) 8a6c1dd55168b5 Maxime Ripard 2013-02-21 392 return ret; 8a6c1dd55168b5 Maxime Ripard 2013-02-21 393 8a6c1dd55168b5 Maxime Ripard 2013-02-21 394 ret = hx8357_spi_write_array(lcdev, hx8357_seq_address_mode, 8a6c1dd55168b5 Maxime Ripard 2013-02-21 395 ARRAY_SIZE(hx8357_seq_address_mode)); 8a6c1dd55168b5 Maxime Ripard 2013-02-21 396 if (ret < 0) 8a6c1dd55168b5 Maxime Ripard 2013-02-21 397 return ret; 8a6c1dd55168b5 Maxime Ripard 2013-02-21 398 8a6c1dd55168b5 Maxime Ripard 2013-02-21 399 ret = hx8357_spi_write_array(lcdev, hx8357_seq_pixel_format, 8a6c1dd55168b5 Maxime Ripard 2013-02-21 400 ARRAY_SIZE(hx8357_seq_pixel_format)); 8a6c1dd55168b5 Maxime Ripard 2013-02-21 401 if (ret < 0) 8a6c1dd55168b5 Maxime Ripard 2013-02-21 402 return ret; 8a6c1dd55168b5 Maxime Ripard 2013-02-21 403 8a6c1dd55168b5 Maxime Ripard 2013-02-21 404 ret = hx8357_spi_write_array(lcdev, hx8357_seq_column_address, 8a6c1dd55168b5 Maxime Ripard 2013-02-21 405 ARRAY_SIZE(hx8357_seq_column_address)); 8a6c1dd55168b5 Maxime Ripard 2013-02-21 406 if (ret < 0) 8a6c1dd55168b5 Maxime Ripard 2013-02-21 407 return ret; 8a6c1dd55168b5 Maxime Ripard 2013-02-21 408 8a6c1dd55168b5 Maxime Ripard 2013-02-21 409 ret = hx8357_spi_write_array(lcdev, hx8357_seq_page_address, 8a6c1dd55168b5 Maxime Ripard 2013-02-21 410 ARRAY_SIZE(hx8357_seq_page_address)); 8a6c1dd55168b5 Maxime Ripard 2013-02-21 411 if (ret < 0) 8a6c1dd55168b5 Maxime Ripard 2013-02-21 412 return ret; 8a6c1dd55168b5 Maxime Ripard 2013-02-21 413 8a6c1dd55168b5 Maxime Ripard 2013-02-21 414 ret = hx8357_spi_write_array(lcdev, hx8357_seq_rgb, 8a6c1dd55168b5 Maxime Ripard 2013-02-21 415 ARRAY_SIZE(hx8357_seq_rgb)); 8a6c1dd55168b5 Maxime Ripard 2013-02-21 416 if (ret < 0) 8a6c1dd55168b5 Maxime Ripard 2013-02-21 417 return ret; 8a6c1dd55168b5 Maxime Ripard 2013-02-21 418 8a6c1dd55168b5 Maxime Ripard 2013-02-21 419 ret = hx8357_spi_write_array(lcdev, hx8357_seq_display_mode, 8a6c1dd55168b5 Maxime Ripard 2013-02-21 420 ARRAY_SIZE(hx8357_seq_display_mode)); 8a6c1dd55168b5 Maxime Ripard 2013-02-21 421 if (ret < 0) 8a6c1dd55168b5 Maxime Ripard 2013-02-21 422 return ret; 8a6c1dd55168b5 Maxime Ripard 2013-02-21 423 8a6c1dd55168b5 Maxime Ripard 2013-02-21 424 ret = hx8357_spi_write_byte(lcdev, HX8357_EXIT_SLEEP_MODE); 8a6c1dd55168b5 Maxime Ripard 2013-02-21 425 if (ret < 0) 8a6c1dd55168b5 Maxime Ripard 2013-02-21 426 return ret; 8a6c1dd55168b5 Maxime Ripard 2013-02-21 427 fb52566873ca8c Alexandre Belloni 2013-08-01 428 /* fb52566873ca8c Alexandre Belloni 2013-08-01 429 * The controller needs 120ms to fully recover from exiting sleep mode fb52566873ca8c Alexandre Belloni 2013-08-01 430 */ 8a6c1dd55168b5 Maxime Ripard 2013-02-21 431 msleep(120); 8a6c1dd55168b5 Maxime Ripard 2013-02-21 432 8a6c1dd55168b5 Maxime Ripard 2013-02-21 433 ret = hx8357_spi_write_byte(lcdev, HX8357_SET_DISPLAY_ON); 8a6c1dd55168b5 Maxime Ripard 2013-02-21 434 if (ret < 0) 8a6c1dd55168b5 Maxime Ripard 2013-02-21 435 return ret; 8a6c1dd55168b5 Maxime Ripard 2013-02-21 436 8a6c1dd55168b5 Maxime Ripard 2013-02-21 437 usleep_range(5000, 7000); 8a6c1dd55168b5 Maxime Ripard 2013-02-21 438 8a6c1dd55168b5 Maxime Ripard 2013-02-21 439 ret = hx8357_spi_write_byte(lcdev, HX8357_WRITE_MEMORY_START); 8a6c1dd55168b5 Maxime Ripard 2013-02-21 440 if (ret < 0) 8a6c1dd55168b5 Maxime Ripard 2013-02-21 441 return ret; 8a6c1dd55168b5 Maxime Ripard 2013-02-21 442 8a6c1dd55168b5 Maxime Ripard 2013-02-21 443 return 0; 8a6c1dd55168b5 Maxime Ripard 2013-02-21 444 } 8a6c1dd55168b5 Maxime Ripard 2013-02-21 445 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests