tree: git://git.infradead.org/users/hch/block.git remove-dma-mask-indirection head: 7f0f0d04b7c2d957bee8220cf37362ed7b956a3b commit: 7f0f0d04b7c2d957bee8220cf37362ed7b956a3b [2/2] device.h: make dma_mask a scalar instead of a pointer config: c6x-allyesconfig (attached as .config) compiler: c6x-elf-gcc (GCC) 9.2.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 7f0f0d04b7c2d957bee8220cf37362ed7b956a3b # save the attached .config to linux build tree GCC_VERSION=9.2.0 make.cross ARCH=c6x If you fix the issue, kindly add following tag Reported-by: kbuild test robot All warnings (new ones prefixed by >>): drivers//spi/spi-sifive.c: In function 'sifive_spi_probe': >> drivers//spi/spi-sifive.c:387:21: warning: assignment to 'u64' {aka 'long long unsigned int'} from 'void *' makes integer from pointer without a cast [-Wint-conversion] 387 | pdev->dev.dma_mask = NULL; | ^ -- drivers//mmc/host/owl-mmc.c: In function 'owl_mmc_probe': >> drivers//mmc/host/owl-mmc.c:618:21: warning: assignment to 'u64' {aka 'long long unsigned int'} from 'u64 *' {aka 'long long unsigned int *'} makes integer from pointer without a cast [-Wint-conversion] 618 | pdev->dev.dma_mask = &pdev->dev.coherent_dma_mask; | ^ -- drivers/mfd/omap-usb-host.c: In function 'omap_usbhs_alloc_child': >> drivers/mfd/omap-usb-host.c:171:23: warning: assignment to 'u64' {aka 'long long unsigned int'} from 'u64 *' {aka 'long long unsigned int *'} makes integer from pointer without a cast [-Wint-conversion] 171 | child->dev.dma_mask = &usbhs_dmamask; | ^ -- drivers/usb/musb/musb_dsps.c: In function 'dsps_create_musb_pdev': >> drivers/usb/musb/musb_dsps.c:758:22: warning: assignment to 'u64' {aka 'long long unsigned int'} from 'u64 *' {aka 'long long unsigned int *'} makes integer from pointer without a cast [-Wint-conversion] 758 | musb->dev.dma_mask = &musb_dmamask; | ^ -- drivers/usb/musb/ux500.c: In function 'ux500_probe': >> drivers/usb/musb/ux500.c:264:22: warning: assignment to 'u64' {aka 'long long unsigned int'} from 'u64 *' {aka 'long long unsigned int *'} makes integer from pointer without a cast [-Wint-conversion] 264 | musb->dev.dma_mask = &pdev->dev.coherent_dma_mask; | ^ vim +387 drivers//spi/spi-sifive.c 484a9a68d669f8 Yash Shah 2019-02-19 291 484a9a68d669f8 Yash Shah 2019-02-19 292 static int sifive_spi_probe(struct platform_device *pdev) 484a9a68d669f8 Yash Shah 2019-02-19 293 { 484a9a68d669f8 Yash Shah 2019-02-19 294 struct sifive_spi *spi; 484a9a68d669f8 Yash Shah 2019-02-19 295 int ret, irq, num_cs; 484a9a68d669f8 Yash Shah 2019-02-19 296 u32 cs_bits, max_bits_per_word; 484a9a68d669f8 Yash Shah 2019-02-19 297 struct spi_master *master; 484a9a68d669f8 Yash Shah 2019-02-19 298 484a9a68d669f8 Yash Shah 2019-02-19 299 master = spi_alloc_master(&pdev->dev, sizeof(struct sifive_spi)); 484a9a68d669f8 Yash Shah 2019-02-19 300 if (!master) { 484a9a68d669f8 Yash Shah 2019-02-19 301 dev_err(&pdev->dev, "out of memory\n"); 484a9a68d669f8 Yash Shah 2019-02-19 302 return -ENOMEM; 484a9a68d669f8 Yash Shah 2019-02-19 303 } 484a9a68d669f8 Yash Shah 2019-02-19 304 484a9a68d669f8 Yash Shah 2019-02-19 305 spi = spi_master_get_devdata(master); 484a9a68d669f8 Yash Shah 2019-02-19 306 init_completion(&spi->done); 484a9a68d669f8 Yash Shah 2019-02-19 307 platform_set_drvdata(pdev, master); 484a9a68d669f8 Yash Shah 2019-02-19 308 fa79f200471156 YueHaibing 2019-09-04 309 spi->regs = devm_platform_ioremap_resource(pdev, 0); 484a9a68d669f8 Yash Shah 2019-02-19 310 if (IS_ERR(spi->regs)) { 484a9a68d669f8 Yash Shah 2019-02-19 311 ret = PTR_ERR(spi->regs); 484a9a68d669f8 Yash Shah 2019-02-19 312 goto put_master; 484a9a68d669f8 Yash Shah 2019-02-19 313 } 484a9a68d669f8 Yash Shah 2019-02-19 314 484a9a68d669f8 Yash Shah 2019-02-19 315 spi->clk = devm_clk_get(&pdev->dev, NULL); 484a9a68d669f8 Yash Shah 2019-02-19 316 if (IS_ERR(spi->clk)) { 484a9a68d669f8 Yash Shah 2019-02-19 317 dev_err(&pdev->dev, "Unable to find bus clock\n"); 484a9a68d669f8 Yash Shah 2019-02-19 318 ret = PTR_ERR(spi->clk); 484a9a68d669f8 Yash Shah 2019-02-19 319 goto put_master; 484a9a68d669f8 Yash Shah 2019-02-19 320 } 484a9a68d669f8 Yash Shah 2019-02-19 321 484a9a68d669f8 Yash Shah 2019-02-19 322 irq = platform_get_irq(pdev, 0); 484a9a68d669f8 Yash Shah 2019-02-19 323 if (irq < 0) { 484a9a68d669f8 Yash Shah 2019-02-19 324 ret = irq; 484a9a68d669f8 Yash Shah 2019-02-19 325 goto put_master; 484a9a68d669f8 Yash Shah 2019-02-19 326 } 484a9a68d669f8 Yash Shah 2019-02-19 327 484a9a68d669f8 Yash Shah 2019-02-19 328 /* Optional parameters */ 484a9a68d669f8 Yash Shah 2019-02-19 329 ret = 484a9a68d669f8 Yash Shah 2019-02-19 330 of_property_read_u32(pdev->dev.of_node, "sifive,fifo-depth", 484a9a68d669f8 Yash Shah 2019-02-19 331 &spi->fifo_depth); 484a9a68d669f8 Yash Shah 2019-02-19 332 if (ret < 0) 484a9a68d669f8 Yash Shah 2019-02-19 333 spi->fifo_depth = SIFIVE_SPI_DEFAULT_DEPTH; 484a9a68d669f8 Yash Shah 2019-02-19 334 484a9a68d669f8 Yash Shah 2019-02-19 335 ret = 484a9a68d669f8 Yash Shah 2019-02-19 336 of_property_read_u32(pdev->dev.of_node, "sifive,max-bits-per-word", 484a9a68d669f8 Yash Shah 2019-02-19 337 &max_bits_per_word); 484a9a68d669f8 Yash Shah 2019-02-19 338 484a9a68d669f8 Yash Shah 2019-02-19 339 if (!ret && max_bits_per_word < 8) { 484a9a68d669f8 Yash Shah 2019-02-19 340 dev_err(&pdev->dev, "Only 8bit SPI words supported by the driver\n"); 484a9a68d669f8 Yash Shah 2019-02-19 341 ret = -EINVAL; 484a9a68d669f8 Yash Shah 2019-02-19 342 goto put_master; 484a9a68d669f8 Yash Shah 2019-02-19 343 } 484a9a68d669f8 Yash Shah 2019-02-19 344 484a9a68d669f8 Yash Shah 2019-02-19 345 /* Spin up the bus clock before hitting registers */ 484a9a68d669f8 Yash Shah 2019-02-19 346 ret = clk_prepare_enable(spi->clk); 484a9a68d669f8 Yash Shah 2019-02-19 347 if (ret) { 484a9a68d669f8 Yash Shah 2019-02-19 348 dev_err(&pdev->dev, "Unable to enable bus clock\n"); 484a9a68d669f8 Yash Shah 2019-02-19 349 goto put_master; 484a9a68d669f8 Yash Shah 2019-02-19 350 } 484a9a68d669f8 Yash Shah 2019-02-19 351 484a9a68d669f8 Yash Shah 2019-02-19 352 /* probe the number of CS lines */ 484a9a68d669f8 Yash Shah 2019-02-19 353 spi->cs_inactive = sifive_spi_read(spi, SIFIVE_SPI_REG_CSDEF); 484a9a68d669f8 Yash Shah 2019-02-19 354 sifive_spi_write(spi, SIFIVE_SPI_REG_CSDEF, 0xffffffffU); 484a9a68d669f8 Yash Shah 2019-02-19 355 cs_bits = sifive_spi_read(spi, SIFIVE_SPI_REG_CSDEF); 484a9a68d669f8 Yash Shah 2019-02-19 356 sifive_spi_write(spi, SIFIVE_SPI_REG_CSDEF, spi->cs_inactive); 484a9a68d669f8 Yash Shah 2019-02-19 357 if (!cs_bits) { 484a9a68d669f8 Yash Shah 2019-02-19 358 dev_err(&pdev->dev, "Could not auto probe CS lines\n"); 484a9a68d669f8 Yash Shah 2019-02-19 359 ret = -EINVAL; a725272bda77e6 Chuhong Yuan 2019-11-01 360 goto disable_clk; 484a9a68d669f8 Yash Shah 2019-02-19 361 } 484a9a68d669f8 Yash Shah 2019-02-19 362 484a9a68d669f8 Yash Shah 2019-02-19 363 num_cs = ilog2(cs_bits) + 1; 484a9a68d669f8 Yash Shah 2019-02-19 364 if (num_cs > SIFIVE_SPI_MAX_CS) { 484a9a68d669f8 Yash Shah 2019-02-19 365 dev_err(&pdev->dev, "Invalid number of spi slaves\n"); 484a9a68d669f8 Yash Shah 2019-02-19 366 ret = -EINVAL; a725272bda77e6 Chuhong Yuan 2019-11-01 367 goto disable_clk; 484a9a68d669f8 Yash Shah 2019-02-19 368 } 484a9a68d669f8 Yash Shah 2019-02-19 369 484a9a68d669f8 Yash Shah 2019-02-19 370 /* Define our master */ 484a9a68d669f8 Yash Shah 2019-02-19 371 master->dev.of_node = pdev->dev.of_node; 484a9a68d669f8 Yash Shah 2019-02-19 372 master->bus_num = pdev->id; 484a9a68d669f8 Yash Shah 2019-02-19 373 master->num_chipselect = num_cs; 484a9a68d669f8 Yash Shah 2019-02-19 374 master->mode_bits = SPI_CPHA | SPI_CPOL 484a9a68d669f8 Yash Shah 2019-02-19 375 | SPI_CS_HIGH | SPI_LSB_FIRST 484a9a68d669f8 Yash Shah 2019-02-19 376 | SPI_TX_DUAL | SPI_TX_QUAD 484a9a68d669f8 Yash Shah 2019-02-19 377 | SPI_RX_DUAL | SPI_RX_QUAD; 484a9a68d669f8 Yash Shah 2019-02-19 378 /* TODO: add driver support for bits_per_word < 8 484a9a68d669f8 Yash Shah 2019-02-19 379 * we need to "left-align" the bits (unless SPI_LSB_FIRST) 484a9a68d669f8 Yash Shah 2019-02-19 380 */ 484a9a68d669f8 Yash Shah 2019-02-19 381 master->bits_per_word_mask = SPI_BPW_MASK(8); 484a9a68d669f8 Yash Shah 2019-02-19 382 master->flags = SPI_CONTROLLER_MUST_TX | SPI_MASTER_GPIO_SS; 484a9a68d669f8 Yash Shah 2019-02-19 383 master->prepare_message = sifive_spi_prepare_message; 484a9a68d669f8 Yash Shah 2019-02-19 384 master->set_cs = sifive_spi_set_cs; 484a9a68d669f8 Yash Shah 2019-02-19 385 master->transfer_one = sifive_spi_transfer_one; 484a9a68d669f8 Yash Shah 2019-02-19 386 484a9a68d669f8 Yash Shah 2019-02-19 @387 pdev->dev.dma_mask = NULL; 484a9a68d669f8 Yash Shah 2019-02-19 388 /* Configure the SPI master hardware */ 484a9a68d669f8 Yash Shah 2019-02-19 389 sifive_spi_init(spi); 484a9a68d669f8 Yash Shah 2019-02-19 390 484a9a68d669f8 Yash Shah 2019-02-19 391 /* Register for SPI Interrupt */ 484a9a68d669f8 Yash Shah 2019-02-19 392 ret = devm_request_irq(&pdev->dev, irq, sifive_spi_irq, 0, 484a9a68d669f8 Yash Shah 2019-02-19 393 dev_name(&pdev->dev), spi); 484a9a68d669f8 Yash Shah 2019-02-19 394 if (ret) { 484a9a68d669f8 Yash Shah 2019-02-19 395 dev_err(&pdev->dev, "Unable to bind to interrupt\n"); a725272bda77e6 Chuhong Yuan 2019-11-01 396 goto disable_clk; 484a9a68d669f8 Yash Shah 2019-02-19 397 } 484a9a68d669f8 Yash Shah 2019-02-19 398 484a9a68d669f8 Yash Shah 2019-02-19 399 dev_info(&pdev->dev, "mapped; irq=%d, cs=%d\n", 484a9a68d669f8 Yash Shah 2019-02-19 400 irq, master->num_chipselect); 484a9a68d669f8 Yash Shah 2019-02-19 401 484a9a68d669f8 Yash Shah 2019-02-19 402 ret = devm_spi_register_master(&pdev->dev, master); 484a9a68d669f8 Yash Shah 2019-02-19 403 if (ret < 0) { 484a9a68d669f8 Yash Shah 2019-02-19 404 dev_err(&pdev->dev, "spi_register_master failed\n"); a725272bda77e6 Chuhong Yuan 2019-11-01 405 goto disable_clk; 484a9a68d669f8 Yash Shah 2019-02-19 406 } 484a9a68d669f8 Yash Shah 2019-02-19 407 484a9a68d669f8 Yash Shah 2019-02-19 408 return 0; 484a9a68d669f8 Yash Shah 2019-02-19 409 a725272bda77e6 Chuhong Yuan 2019-11-01 410 disable_clk: a725272bda77e6 Chuhong Yuan 2019-11-01 411 clk_disable_unprepare(spi->clk); 484a9a68d669f8 Yash Shah 2019-02-19 412 put_master: 484a9a68d669f8 Yash Shah 2019-02-19 413 spi_master_put(master); 484a9a68d669f8 Yash Shah 2019-02-19 414 484a9a68d669f8 Yash Shah 2019-02-19 415 return ret; 484a9a68d669f8 Yash Shah 2019-02-19 416 } 484a9a68d669f8 Yash Shah 2019-02-19 417 :::::: The code at line 387 was first introduced by commit :::::: 484a9a68d669f899657a97dbb369cb3e3be7e7f5 spi: sifive: Add driver for the SiFive SPI controller :::::: TO: Yash Shah :::::: CC: Mark Brown --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org