tree: https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git gpio-descriptors-spi head: d52781e8bf3600398a5da184d4df22072a8e5e57 commit: d52781e8bf3600398a5da184d4df22072a8e5e57 [14/14] slask config: arm-allmodconfig (attached as .config) compiler: arm-linux-gnueabi-gcc (GCC) 7.4.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross git checkout d52781e8bf3600398a5da184d4df22072a8e5e57 # save the attached .config to linux build tree GCC_VERSION=7.4.0 make.cross ARCH=arm If you fix the issue, kindly add following tag Reported-by: kbuild test robot <lkp@xxxxxxxxx> All errors (new ones prefixed by >>): In file included from include/linux/bitops.h:5:0, from include/linux/kernel.h:12, from include/linux/list.h:9, from include/linux/module.h:9, from drivers//spi/spi-pl022.c:26: drivers//spi/spi-pl022.c: In function 'pl022_set_cs': >> drivers//spi/spi-pl022.c:451:22: error: 'struct pl022' has no member named 'cur_cs'; did you mean 'cur_msg'? tmp &= ~BIT(pl022->cur_cs); ^ include/linux/bits.h:6:28: note: in definition of macro 'BIT' #define BIT(nr) (1UL << (nr)) ^~ drivers//spi/spi-pl022.c:453:21: error: 'struct pl022' has no member named 'cur_cs'; did you mean 'cur_msg'? tmp |= BIT(pl022->cur_cs); ^ include/linux/bits.h:6:28: note: in definition of macro 'BIT' #define BIT(nr) (1UL << (nr)) ^~ drivers//spi/spi-pl022.c: In function 'giveback': >> drivers//spi/spi-pl022.c:502:4: error: implicit declaration of function 'pl022_cs_control'; did you mean 'pl022_set_cs'? [-Werror=implicit-function-declaration] pl022_cs_control(pl022, SSP_CHIP_DESELECT); ^~~~~~~~~~~~~~~~ pl022_set_cs drivers//spi/spi-pl022.c: In function 'pl022_transfer_one_message': drivers//spi/spi-pl022.c:1580:9: error: 'struct pl022' has no member named 'cur_cs'; did you mean 'cur_msg'? pl022->cur_cs = pl022->chipselects[msg->spi->chip_select]; ^~~~~~ cur_msg >> drivers//spi/spi-pl022.c:1580:23: error: 'struct pl022' has no member named 'chipselects' pl022->cur_cs = pl022->chipselects[msg->spi->chip_select]; ^~ drivers//spi/spi-pl022.c: In function 'pl022_setup': >> drivers//spi/spi-pl022.c:1861:4: error: implicit declaration of function 'of_property_read_u32' [-Werror=implicit-function-declaration] of_property_read_u32(np, "pl022,interface", ^~~~~~~~~~~~~~~~~~~~ >> drivers//spi/spi-pl022.c:1923:7: error: implicit declaration of function 'gpio_is_valid'; did you mean 'uuid_is_valid'? [-Werror=implicit-function-declaration] if (!gpio_is_valid(pl022->chipselects[spi->chip_select])) ^~~~~~~~~~~~~ uuid_is_valid drivers//spi/spi-pl022.c:1923:26: error: 'struct pl022' has no member named 'chipselects' if (!gpio_is_valid(pl022->chipselects[spi->chip_select])) ^~ drivers//spi/spi-pl022.c: In function 'pl022_platform_data_dt_get': >> drivers//spi/spi-pl022.c:2090:11: error: implicit declaration of function 'of_property_read_bool' [-Werror=implicit-function-declaration] pd->rt = of_property_read_bool(np, "pl022,rt"); ^~~~~~~~~~~~~~~~~~~~~ drivers//spi/spi-pl022.c: In function 'pl022_probe': drivers//spi/spi-pl022.c:2134:7: error: 'struct pl022' has no member named 'chipselects' pl022->chipselects = devm_kcalloc(dev, num_cs, sizeof(int), ^~ drivers//spi/spi-pl022.c:2136:12: error: 'struct pl022' has no member named 'chipselects' if (!pl022->chipselects) { ^~ drivers//spi/spi-pl022.c:2146:8: warning: statement with no effect [-Wunused-value] master->use_gpio_descriptors; ~~~~~~^~~~~~~~~~~~~~~~~~~~~~ drivers//spi/spi-pl022.c:2159:9: error: 'struct pl022' has no member named 'chipselects' pl022->chipselects[i] = i; ^~ >> drivers//spi/spi-pl022.c:2162:18: error: implicit declaration of function 'of_get_named_gpio'; did you mean 'fwnode_get_named_gpiod'? [-Werror=implicit-function-declaration] int cs_gpio = of_get_named_gpio(np, "cs-gpios", i); ^~~~~~~~~~~~~~~~~ fwnode_get_named_gpiod drivers//spi/spi-pl022.c:2169:9: error: 'struct pl022' has no member named 'chipselects' pl022->chipselects[i] = cs_gpio; ^~ >> drivers//spi/spi-pl022.c:2172:9: error: implicit declaration of function 'devm_gpio_request'; did you mean 'devm_gpiod_put'? [-Werror=implicit-function-declaration] if (devm_gpio_request(dev, cs_gpio, "ssp-pl022")) ^~~~~~~~~~~~~~~~~ devm_gpiod_put >> drivers//spi/spi-pl022.c:2176:14: error: implicit declaration of function 'gpio_direction_output'; did you mean 'gpiod_direction_output'? [-Werror=implicit-function-declaration] else if (gpio_direction_output(cs_gpio, 1)) ^~~~~~~~~~~~~~~~~~~~~ gpiod_direction_output cc1: some warnings being treated as errors vim +451 drivers//spi/spi-pl022.c b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 430 d52781e8b drivers/spi/spi-pl022.c Linus Walleij 2019-06-25 431 static void pl022_set_cs(struct spi_device *spi, bool enable) db4fa45ed drivers/spi/spi-pl022.c Anders Berg 2014-09-17 432 { d52781e8b drivers/spi/spi-pl022.c Linus Walleij 2019-06-25 433 struct pl022 *pl022 = spi_controller_get_devdata(spi->controller); db4fa45ed drivers/spi/spi-pl022.c Anders Berg 2014-09-17 434 u32 tmp; db4fa45ed drivers/spi/spi-pl022.c Anders Berg 2014-09-17 435 d52781e8b drivers/spi/spi-pl022.c Linus Walleij 2019-06-25 436 /* d52781e8b drivers/spi/spi-pl022.c Linus Walleij 2019-06-25 437 * This callback will ONLY be called of no GPIO descriptors were found d52781e8b drivers/spi/spi-pl022.c Linus Walleij 2019-06-25 438 * for the device, so we know we are dealing exclusively with variants d52781e8b drivers/spi/spi-pl022.c Linus Walleij 2019-06-25 439 * that have internal CS control here, but just to be sure: extra check d52781e8b drivers/spi/spi-pl022.c Linus Walleij 2019-06-25 440 * for now. d52781e8b drivers/spi/spi-pl022.c Linus Walleij 2019-06-25 441 */ d52781e8b drivers/spi/spi-pl022.c Linus Walleij 2019-06-25 442 if (!pl022->vendor->internal_cs_ctrl) { d52781e8b drivers/spi/spi-pl022.c Linus Walleij 2019-06-25 443 dev_err(&spi->dev, d52781e8b drivers/spi/spi-pl022.c Linus Walleij 2019-06-25 444 "called internal CS control on unsupported device\n"); d52781e8b drivers/spi/spi-pl022.c Linus Walleij 2019-06-25 445 return; d52781e8b drivers/spi/spi-pl022.c Linus Walleij 2019-06-25 446 } d52781e8b drivers/spi/spi-pl022.c Linus Walleij 2019-06-25 447 d52781e8b drivers/spi/spi-pl022.c Linus Walleij 2019-06-25 448 /* We draw a line low here to imply we enable it */ db4fa45ed drivers/spi/spi-pl022.c Anders Berg 2014-09-17 449 tmp = readw(SSP_CSR(pl022->virtbase)); d52781e8b drivers/spi/spi-pl022.c Linus Walleij 2019-06-25 450 if (enable) db4fa45ed drivers/spi/spi-pl022.c Anders Berg 2014-09-17 @451 tmp &= ~BIT(pl022->cur_cs); db4fa45ed drivers/spi/spi-pl022.c Anders Berg 2014-09-17 452 else db4fa45ed drivers/spi/spi-pl022.c Anders Berg 2014-09-17 @453 tmp |= BIT(pl022->cur_cs); db4fa45ed drivers/spi/spi-pl022.c Anders Berg 2014-09-17 454 writew(tmp, SSP_CSR(pl022->virtbase)); db4fa45ed drivers/spi/spi-pl022.c Anders Berg 2014-09-17 455 } db4fa45ed drivers/spi/spi-pl022.c Anders Berg 2014-09-17 456 b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 457 /** b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 458 * giveback - current spi_message is over, schedule next message and call b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 459 * callback of this message. Assumes that caller already b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 460 * set message->status; dma and pio irqs are blocked b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 461 * @pl022: SSP driver private data structure b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 462 */ b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 463 static void giveback(struct pl022 *pl022) b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 464 { b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 465 struct spi_transfer *last_transfer; 8b8d71916 drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2011-11-10 466 pl022->next_msg_cs_active = false; b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 467 23e2c2aa4 drivers/spi/spi-pl022.c Axel Lin 2014-02-12 468 last_transfer = list_last_entry(&pl022->cur_msg->transfers, 23e2c2aa4 drivers/spi/spi-pl022.c Axel Lin 2014-02-12 469 struct spi_transfer, transfer_list); b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 470 b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 471 /* Delay if requested before any change in chip select */ b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 472 if (last_transfer->delay_usecs) b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 473 /* b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 474 * FIXME: This runs in interrupt context. b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 475 * Is this really smart? b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 476 */ b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 477 udelay(last_transfer->delay_usecs); b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 478 8b8d71916 drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2011-11-10 479 if (!last_transfer->cs_change) { b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 480 struct spi_message *next_msg; b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 481 8b8d71916 drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2011-11-10 482 /* 8b8d71916 drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2011-11-10 483 * cs_change was not set. We can keep the chip select 8b8d71916 drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2011-11-10 484 * enabled if there is message in the queue and it is 8b8d71916 drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2011-11-10 485 * for the same spi device. b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 486 * b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 487 * We cannot postpone this until pump_messages, because b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 488 * after calling msg->complete (below) the driver that b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 489 * sent the current message could be unloaded, which b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 490 * could invalidate the cs_control() callback... b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 491 */ b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 492 /* get a pointer to the next message, if any */ ffbbdd213 drivers/spi/spi-pl022.c Linus Walleij 2012-02-22 493 next_msg = spi_get_next_queued_message(pl022->master); b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 494 8b8d71916 drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2011-11-10 495 /* 8b8d71916 drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2011-11-10 496 * see if the next and current messages point 8b8d71916 drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2011-11-10 497 * to the same spi device. b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 498 */ 8b8d71916 drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2011-11-10 499 if (next_msg && next_msg->spi != pl022->cur_msg->spi) b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 500 next_msg = NULL; 8b8d71916 drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2011-11-10 501 if (!next_msg || pl022->cur_msg->state == STATE_ERROR) f6f46de10 drivers/spi/spi-pl022.c Roland Stigge 2012-08-22 @502 pl022_cs_control(pl022, SSP_CHIP_DESELECT); 8b8d71916 drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2011-11-10 503 else 8b8d71916 drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2011-11-10 504 pl022->next_msg_cs_active = true; ffbbdd213 drivers/spi/spi-pl022.c Linus Walleij 2012-02-22 505 b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 506 } 8b8d71916 drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2011-11-10 507 8b8d71916 drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2011-11-10 508 pl022->cur_msg = NULL; 8b8d71916 drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2011-11-10 509 pl022->cur_transfer = NULL; 8b8d71916 drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2011-11-10 510 pl022->cur_chip = NULL; fd316941c drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2012-06-12 511 fd316941c drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2012-06-12 512 /* disable the SPI/SSP operation */ fd316941c drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2012-06-12 513 writew((readw(SSP_CR1(pl022->virtbase)) & fd316941c drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2012-06-12 514 (~SSP_CR1_MASK_SSE)), SSP_CR1(pl022->virtbase)); fd316941c drivers/spi/spi-pl022.c Virupax Sadashivpetimath 2012-06-12 515 cd6fa8d2c drivers/spi/spi-pl022.c Alexander Sverdlin 2015-02-27 516 spi_finalize_current_message(pl022->master); b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 517 } b43d65f7e drivers/spi/amba-pl022.c Linus Walleij 2009-06-09 518 :::::: The code at line 451 was first introduced by commit :::::: db4fa45ed3182d8206af241811dfc99369ffa849 spi: pl022: Add support for chip select extension :::::: TO: Anders Berg <anders.berg@xxxxxxxxxxxxx> :::::: CC: Mark Brown <broonie@xxxxxxxxxx> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip