Open MingcongBai opened 3 weeks ago
详见日志(需要进行移植适配):
CC [M] drivers/spi/spi-phytium.o CC [M] drivers/spi/spi-phytium-pci.o CC [M] drivers/spi/spi-phytium-dma.o In file included from ./include/linux/bits.h:6, from ./include/linux/bitops.h:6, from ./include/linux/kernel.h:23, from ./include/linux/clk.h:13, from drivers/spi/spi-phytium.c:11: drivers/spi/spi-phytium.c: In function ‘phytium_spi_set_cs’: ./include/vdso/bits.h:7:40: error: invalid operands to binary << (have ‘long unsigned int’ and ‘u8 *’ {aka ‘unsigned char *’}) 7 | #define BIT(nr) (UL(1) << (nr)) | ^~ | | | u8 * {aka unsigned char *} drivers/spi/spi-phytium.c:56:42: note: in expansion of macro ‘BIT’ 56 | phytium_writel(fts, SER, BIT(spi->chip_select)); | ^~~ drivers/spi/spi-phytium.c:59:63: error: invalid operands to binary << (have ‘int’ and ‘u8 *’ {aka ‘unsigned char *’}) 59 | phytium_writel(fts, GCSR, origin | (1 << spi->chip_select)); | ^~ | | | u8 * {aka unsigned char *} drivers/spi/spi-phytium.c:64:64: error: invalid operands to binary << (have ‘int’ and ‘u8 *’ {aka ‘unsigned char *’}) 64 | phytium_writel(fts, GCSR, origin & ~(1 << spi->chip_select)); | ^~ | | | u8 * {aka unsigned char *} In file included from ./include/linux/device.h:15, from ./include/linux/platform_device.h:13, from drivers/spi/spi-phytium.c:17: drivers/spi/spi-phytium.c: In function ‘phytium_spi_check_status’: drivers/spi/spi-phytium.c:133:37: error: invalid use of undefined type ‘struct spi_master’ 133 | dev_err(&fts->master->dev, "RX FIFO overflow detected\n"); | ^~ ./include/linux/dev_printk.h:110:25: note: in definition of macro ‘dev_printk_index_wrap’ 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ drivers/spi/spi-phytium.c:133:17: note: in expansion of macro ‘dev_err’ 133 | dev_err(&fts->master->dev, "RX FIFO overflow detected\n"); | ^~~~~~~ drivers/spi/spi-phytium.c:138:37: error: invalid use of undefined type ‘struct spi_master’ 138 | dev_err(&fts->master->dev, "RX FIFO underflow detected\n"); | ^~ ./include/linux/dev_printk.h:110:25: note: in definition of macro ‘dev_printk_index_wrap’ 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ drivers/spi/spi-phytium.c:138:17: note: in expansion of macro ‘dev_err’ 138 | dev_err(&fts->master->dev, "RX FIFO underflow detected\n"); | ^~~~~~~ drivers/spi/spi-phytium.c:143:37: error: invalid use of undefined type ‘struct spi_master’ 143 | dev_err(&fts->master->dev, "TX FIFO overflow detected\n"); | ^~ ./include/linux/dev_printk.h:110:25: note: in definition of macro ‘dev_printk_index_wrap’ 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ drivers/spi/spi-phytium.c:143:17: note: in expansion of macro ‘dev_err’ 143 | dev_err(&fts->master->dev, "TX FIFO overflow detected\n"); | ^~~~~~~ drivers/spi/spi-phytium.c:150:32: error: invalid use of undefined type ‘struct spi_master’ 150 | if (fts->master->cur_msg) | ^~ drivers/spi/spi-phytium.c:151:36: error: invalid use of undefined type ‘struct spi_master’ 151 | fts->master->cur_msg->status = ret; | ^~ drivers/spi/spi-phytium.c: In function ‘int_error_stop’: drivers/spi/spi-phytium.c:161:29: error: invalid use of undefined type ‘struct spi_master’ 161 | dev_err(&fts->master->dev, "%s\n", msg); | ^~ ./include/linux/dev_printk.h:110:25: note: in definition of macro ‘dev_printk_index_wrap’ 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ drivers/spi/spi-phytium.c:161:9: note: in expansion of macro ‘dev_err’ 161 | dev_err(&fts->master->dev, "%s\n", msg); | ^~~~~~~ drivers/spi/spi-phytium.c:162:20: error: invalid use of undefined type ‘struct spi_master’ 162 | fts->master->cur_msg->status = -EIO; | ^~ drivers/spi/spi-phytium.c:163:42: error: passing argument 1 of ‘spi_finalize_current_transfer’ from incompatible pointer type [-Werror=incompatible-pointer-types] 163 | spi_finalize_current_transfer(fts->master); | ~~~^~~~~~~~ | | | struct spi_master * In file included from drivers/spi/spi-phytium.c:19: ./include/linux/spi/spi.h:821:66: note: expected ‘struct spi_controller *’ but argument is of type ‘struct spi_master *’ 821 | extern void spi_finalize_current_transfer(struct spi_controller *ctlr); | ~~~~~~~~~~~~~~~~~~~~~~~^~~~ drivers/spi/spi-phytium.c: In function ‘interrupt_transfer’: drivers/spi/spi-phytium.c:179:50: error: passing argument 1 of ‘spi_finalize_current_transfer’ from incompatible pointer type [-Werror=incompatible-pointer-types] 179 | spi_finalize_current_transfer(fts->master); | ~~~^~~~~~~~ | | | struct spi_master * ./include/linux/spi/spi.h:821:66: note: expected ‘struct spi_controller *’ but argument is of type ‘struct spi_master *’ 821 | extern void spi_finalize_current_transfer(struct spi_controller *ctlr); | ~~~~~~~~~~~~~~~~~~~~~~~^~~~ drivers/spi/spi-phytium.c: In function ‘phytium_spi_irq’: drivers/spi/spi-phytium.c:194:62: error: ‘controller’ undeclared (first use in this function); did you mean ‘spi_controller’? 194 | struct phytium_spi *fts = spi_controller_get_devdata(controller); | ^~~~~~~~~~ | spi_controller drivers/spi/spi-phytium.c:194:62: note: each undeclared identifier is reported only once for each function it appears in drivers/spi/spi-phytium-dma.c: In function ‘phytium_spi_dma_init’: drivers/spi/spi-phytium-dma.c:79:20: error: invalid use of undefined type ‘struct spi_master’ 79 | fts->master->dma_rx = fts->rxchan; | ^~ drivers/spi/spi-phytium.c:200:20: error: invalid use of undefined type ‘struct spi_master’ 200 | if (!master->cur_msg) { | ^~ drivers/spi/spi-phytium-dma.c:80:20: error: invalid use of undefined type ‘struct spi_master’ 80 | fts->master->dma_tx = fts->txchan; | ^~ drivers/spi/spi-phytium.c: In function ‘phytium_spi_transfer_one’: drivers/spi/spi-phytium.c:225:62: error: passing argument 1 of ‘spi_controller_get_devdata’ from incompatible pointer type [-Werror=incompatible-pointer-types] 225 | struct phytium_spi *fts = spi_controller_get_devdata(master); | ^~~~~~ | | | struct spi_master * ./include/linux/spi/spi.h:780:71: note: expected ‘struct spi_controller *’ but argument is of type ‘struct spi_master *’ 780 | static inline void *spi_controller_get_devdata(struct spi_controller *ctlr) | ~~~~~~~~~~~~~~~~~~~~~~~^~~~ In file included from ./include/linux/device.h:15, from ./include/linux/dma-mapping.h:8, from drivers/spi/spi-phytium-dma.c:8: drivers/spi/spi-phytium-dma.c: In function ‘phytium_spi_dma_wait’: drivers/spi/spi-phytium-dma.c:146:37: error: invalid use of undefined type ‘struct spi_master’ 146 | dev_err(&fts->master->cur_msg->spi->dev, | ^~ ./include/linux/dev_printk.h:110:25: note: in definition of macro ‘dev_printk_index_wrap’ 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ drivers/spi/spi-phytium-dma.c:146:17: note: in expansion of macro ‘dev_err’ 146 | dev_err(&fts->master->cur_msg->spi->dev, | ^~~~~~~ drivers/spi/spi-phytium.c:281:19: error: invalid use of undefined type ‘struct spi_master’ 281 | if (master->can_dma && master->can_dma(master, spi, transfer)) | ^~ drivers/spi/spi-phytium.c:281:38: error: invalid use of undefined type ‘struct spi_master’ 281 | if (master->can_dma && master->can_dma(master, spi, transfer)) | ^~ drivers/spi/spi-phytium.c:282:41: error: invalid use of undefined type ‘struct spi_master’ 282 | fts->dma_mapped = master->cur_msg_mapped; | ^~ drivers/spi/spi-phytium-dma.c: In function ‘phytium_spi_dma_wait_tx_done’: drivers/spi/spi-phytium-dma.c:190:37: error: invalid use of undefined type ‘struct spi_master’ 190 | dev_err(&fts->master->dev, "Tx hanged up\n"); | ^~ ./include/linux/dev_printk.h:110:25: note: in definition of macro ‘dev_printk_index_wrap’ 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ drivers/spi/spi-phytium-dma.c:190:17: note: in expansion of macro ‘dev_err’ 190 | dev_err(&fts->master->dev, "Tx hanged up\n"); | ^~~~~~~ drivers/spi/spi-phytium-dma.c: In function ‘phytium_spi_dma_wait_rx_done’: drivers/spi/spi-phytium.c: In function ‘phytium_spi_handle_err’: drivers/spi/spi-phytium.c:318:62: error: passing argument 1 of ‘spi_controller_get_devdata’ from incompatible pointer type [-Werror=incompatible-pointer-types] 318 | struct phytium_spi *fts = spi_controller_get_devdata(master); | ^~~~~~ | | | struct spi_master * ./include/linux/spi/spi.h:780:71: note: expected ‘struct spi_controller *’ but argument is of type ‘struct spi_master *’ 780 | static inline void *spi_controller_get_devdata(struct spi_controller *ctlr) | ~~~~~~~~~~~~~~~~~~~~~~~^~~~ drivers/spi/spi-phytium-dma.c:283:37: error: invalid use of undefined type ‘struct spi_master’ 283 | dev_err(&fts->master->dev, "Rx hanged up, nents = %d\n", nents); | ^~ ./include/linux/dev_printk.h:110:25: note: in definition of macro ‘dev_printk_index_wrap’ 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ drivers/spi/spi-phytium-dma.c:283:17: note: in expansion of macro ‘dev_err’ 283 | dev_err(&fts->master->dev, "Rx hanged up, nents = %d\n", nents); | ^~~~~~~ drivers/spi/spi-phytium.c: In function ‘phytium_spi_setup’: drivers/spi/spi-phytium.c:330:40: error: ‘struct spi_device’ has no member named ‘master’ 330 | struct spi_master *master = spi->master; | ^~ drivers/spi/spi-phytium.c:331:62: error: passing argument 1 of ‘spi_controller_get_devdata’ from incompatible pointer type [-Werror=incompatible-pointer-types] 331 | struct phytium_spi *fts = spi_controller_get_devdata(master); | ^~~~~~ | | | struct spi_master * ./include/linux/spi/spi.h:780:71: note: expected ‘struct spi_controller *’ but argument is of type ‘struct spi_master *’ 780 | static inline void *spi_controller_get_devdata(struct spi_controller *ctlr) | ~~~~~~~~~~~~~~~~~~~~~~~^~~~ drivers/spi/spi-phytium.c: In function ‘phytium_spi_add_host’: drivers/spi/spi-phytium.c:400:16: error: assignment to ‘struct spi_master *’ from incompatible pointer type ‘struct spi_controller *’ [-Werror=incompatible-pointer-types] 400 | master = spi_alloc_master(dev, 0); | ^ drivers/spi/spi-phytium.c:415:15: error: invalid use of undefined type ‘struct spi_master’ 415 | master->use_gpio_descriptors = true; | ^~ drivers/spi/spi-phytium.c:416:15: error: invalid use of undefined type ‘struct spi_master’ 416 | master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_LOOP; | ^~ drivers/spi/spi-phytium.c:417:15: error: invalid use of undefined type ‘struct spi_master’ 417 | master->bits_per_word_mask = SPI_BPW_MASK(8) | SPI_BPW_MASK(16); | ^~ drivers/spi/spi-phytium.c:418:15: error: invalid use of undefined type ‘struct spi_master’ 418 | master->bus_num = fts->bus_num; | ^~ drivers/spi/spi-phytium.c:419:15: error: invalid use of undefined type ‘struct spi_master’ 419 | master->num_chipselect = fts->num_cs; | ^~ drivers/spi/spi-phytium.c:420:15: error: invalid use of undefined type ‘struct spi_master’ 420 | master->setup = phytium_spi_setup; | ^~ drivers/spi/spi-phytium.c:421:15: error: invalid use of undefined type ‘struct spi_master’ 421 | master->cleanup = phytium_spi_cleanup; | ^~ drivers/spi/spi-phytium.c:422:15: error: invalid use of undefined type ‘struct spi_master’ 422 | master->set_cs = phytium_spi_set_cs; | ^~ drivers/spi/spi-phytium.c:423:15: error: invalid use of undefined type ‘struct spi_master’ 423 | master->transfer_one = phytium_spi_transfer_one; | ^~ drivers/spi/spi-phytium.c:424:15: error: invalid use of undefined type ‘struct spi_master’ 424 | master->handle_err = phytium_spi_handle_err; | ^~ drivers/spi/spi-phytium.c:425:15: error: invalid use of undefined type ‘struct spi_master’ 425 | master->max_speed_hz = fts->max_freq; | ^~ drivers/spi/spi-phytium.c:426:15: error: invalid use of undefined type ‘struct spi_master’ 426 | master->dev.of_node = dev->of_node; | ^~ drivers/spi/spi-phytium.c:427:15: error: invalid use of undefined type ‘struct spi_master’ 427 | master->dev.fwnode = dev->fwnode; | ^~ drivers/spi/spi-phytium.c:428:15: error: invalid use of undefined type ‘struct spi_master’ 428 | master->flags = SPI_CONTROLLER_GPIO_SS; | ^~ drivers/spi/spi-phytium.c:437:31: error: invalid use of undefined type ‘struct spi_master’ 437 | master->can_dma = fts->dma_ops->can_dma; | ^~ drivers/spi/spi-phytium.c:438:31: error: invalid use of undefined type ‘struct spi_master’ 438 | master->flags |= SPI_CONTROLLER_MUST_TX; | ^~ drivers/spi/spi-phytium.c:442:36: error: passing argument 1 of ‘spi_controller_set_devdata’ from incompatible pointer type [-Werror=incompatible-pointer-types] 442 | spi_controller_set_devdata(master, fts); | ^~~~~~ | | | struct spi_master * ./include/linux/spi/spi.h:785:70: note: expected ‘struct spi_controller *’ but argument is of type ‘struct spi_master *’ 785 | static inline void spi_controller_set_devdata(struct spi_controller *ctlr, | ~~~~~~~~~~~~~~~~~~~~~~~^~~~ drivers/spi/spi-phytium.c:443:39: error: passing argument 1 of ‘spi_register_controller’ from incompatible pointer type [-Werror=incompatible-pointer-types] 443 | ret = spi_register_controller(master); | ^~~~~~ | | | struct spi_master * ./include/linux/spi/spi.h:899:59: note: expected ‘struct spi_controller *’ but argument is of type ‘struct spi_master *’ 899 | extern int spi_register_controller(struct spi_controller *ctlr); | ~~~~~~~~~~~~~~~~~~~~~~~^~~~ drivers/spi/spi-phytium.c:445:32: error: invalid use of undefined type ‘struct spi_master’ 445 | dev_err(&master->dev, "problem registering spi master\n"); | ^~ ./include/linux/dev_printk.h:110:25: note: in definition of macro ‘dev_printk_index_wrap’ 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ drivers/spi/spi-phytium.c:445:17: note: in expansion of macro ‘dev_err’ 445 | dev_err(&master->dev, "problem registering spi master\n"); | ^~~~~~~ drivers/spi/spi-phytium-dma.c: In function ‘phytium_spi_dma_transfer’: drivers/spi/spi-phytium-dma.c:514:24: error: invalid use of undefined type ‘struct spi_master’ 514 | if (fts->master->cur_msg->status == -EINPROGRESS) { | ^~ drivers/spi/spi-phytium-dma.c:520:40: error: invalid use of undefined type ‘struct spi_master’ 520 | if (xfer->rx_buf && fts->master->cur_msg->status == -EINPROGRESS) | ^~ drivers/spi/spi-phytium-pci.c: In function ‘spi_suspend’: drivers/spi/spi-phytium-pci.c:92:62: error: ‘controller’ undeclared (first use in this function); did you mean ‘spi_controller’? 92 | struct phytium_spi *fts = spi_controller_get_devdata(controller); | ^~~~~~~~~~ | spi_controller drivers/spi/spi-phytium-pci.c:92:62: note: each undeclared identifier is reported only once for each function it appears in drivers/spi/spi-phytium-pci.c:91:28: error: unused variable ‘master’ [-Werror=unused-variable] 91 | struct spi_master *master = dev_get_drvdata(dev); | ^~~~~~ drivers/spi/spi-phytium-pci.c: In function ‘spi_resume’: drivers/spi/spi-phytium-pci.c:100:62: error: ‘spi_controller’ undeclared (first use in this function) 100 | struct phytium_spi *fts = spi_controller_get_devdata(spi_controller); | ^~~~~~~~~~~~~~ drivers/spi/spi-phytium-pci.c:99:28: error: unused variable ‘master’ [-Werror=unused-variable] 99 | struct spi_master *master = dev_get_drvdata(dev); | ^~~~~~ drivers/spi/spi-phytium.c:457:9: error: implicit declaration of function ‘spi_master_put’; did you mean ‘spi_dev_put’? [-Werror=implicit-function-declaration] 457 | spi_master_put(master); | ^~~~~~~~~~~~~~ | spi_dev_put drivers/spi/spi-phytium.c: In function ‘phytium_spi_remove_host’: drivers/spi/spi-phytium.c:468:38: error: passing argument 1 of ‘spi_unregister_controller’ from incompatible pointer type [-Werror=incompatible-pointer-types] 468 | spi_unregister_controller(fts->master); | ~~~^~~~~~~~ | | | struct spi_master * ./include/linux/spi/spi.h:902:62: note: expected ‘struct spi_controller *’ but argument is of type ‘struct spi_master *’ 902 | extern void spi_unregister_controller(struct spi_controller *ctlr); | ~~~~~~~~~~~~~~~~~~~~~~~^~~~ drivers/spi/spi-phytium.c: In function ‘phytium_spi_suspend_host’: drivers/spi/spi-phytium.c:478:41: error: passing argument 1 of ‘spi_controller_suspend’ from incompatible pointer type [-Werror=incompatible-pointer-types] 478 | ret = spi_controller_suspend(fts->master); | ~~~^~~~~~~~ | | | struct spi_master * ./include/linux/spi/spi.h:815:58: note: expected ‘struct spi_controller *’ but argument is of type ‘struct spi_master *’ 815 | extern int spi_controller_suspend(struct spi_controller *ctlr); | ~~~~~~~~~~~~~~~~~~~~~~~^~~~ drivers/spi/spi-phytium.c: In function ‘phytium_spi_resume_host’: drivers/spi/spi-phytium.c:491:33: error: invalid use of undefined type ‘struct spi_master’ 491 | spi_hw_init(&fts->master->dev, fts); | ^~ drivers/spi/spi-phytium.c:492:40: error: passing argument 1 of ‘spi_controller_resume’ from incompatible pointer type [-Werror=incompatible-pointer-types] 492 | ret = spi_controller_resume(fts->master); | ~~~^~~~~~~~ | | | struct spi_master * ./include/linux/spi/spi.h:816:57: note: expected ‘struct spi_controller *’ but argument is of type ‘struct spi_master *’ 816 | extern int spi_controller_resume(struct spi_controller *ctlr); | ~~~~~~~~~~~~~~~~~~~~~~~^~~~ drivers/spi/spi-phytium.c:494:37: error: invalid use of undefined type ‘struct spi_master’ 494 | dev_err(&fts->master->dev, "fail to start queue (%d)\n", ret); | ^~ ./include/linux/dev_printk.h:110:25: note: in definition of macro ‘dev_printk_index_wrap’ 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ drivers/spi/spi-phytium.c:494:17: note: in expansion of macro ‘dev_err’ 494 | dev_err(&fts->master->dev, "fail to start queue (%d)\n", ret); | ^~~~~~~ cc1: all warnings being treated as errors make[7]: *** [scripts/Makefile.build:244:drivers/spi/spi-phytium-dma.o] 错误 1 make[7]: *** 正在等待未完成的任务.... cc1: all warnings being treated as errors make[7]: *** [scripts/Makefile.build:244:drivers/spi/spi-phytium-pci.o] 错误 1 make[7]: *** [scripts/Makefile.build:244:drivers/spi/spi-phytium.o] 错误 1 make[6]: *** [scripts/Makefile.build:485:drivers/spi] 错误 2 make[6]: *** 正在等待未完成的任务.... CHK kernel/kheaders_data.tar.xz ^Cmake[7]: *** [scripts/Makefile.build:485: sound/soc/codecs] 中断 make[8]: *** [scripts/Makefile.build:485: drivers/gpu/drm/nouveau] 中断 make[8]: *** [scripts/Makefile.build:485: drivers/gpu/drm/amd/amdgpu] 中断 make[6]: *** [scripts/Makefile.build:485: sound/soc] 中断 make[8]: *** [scripts/Makefile.build:485: drivers/gpu/drm/i915] 中断 make[5]: *** [scripts/Makefile.build:485: sound] 中断 make[7]: *** [scripts/Makefile.build:485: drivers/gpu/drm] 中断 make[6]: *** [scripts/Makefile.build:485: drivers/gpu] 中断 make[5]: *** [scripts/Makefile.build:485: drivers] 中断 make[4]: *** [Makefile:1915: .] 中断 make[3]: *** [debian/rules:74: build-arch] 中断 dpkg-buildpackage: error: make -f debian/rules binary subprocess was killed by signal 2 make[2]: *** [scripts/Makefile.package:121: bindeb-pkg] 中断 make[1]: *** [/root/linux/Makefile:1537: bindeb-pkg] 中断 make: *** [Makefile:240: __sub-make] 中断 root@deepinci-amd7:~/linux# ^C root@deepinci-amd7:~/linux# nano +492 drivers/spi/spi-phytium.c root@deepinci-amd7:~/linux# make bindeb-pkg -j$(nproc) GEN debian dpkg-buildpackage --build=binary --no-pre-clean --unsigned-changes -R'make -f debian/rules' -j1 -a$(cat debian/arch) dpkg-buildpackage: info: source package linux-upstream dpkg-buildpackage: info: source version 23.01.01.01 dpkg-buildpackage: info: source distribution beige dpkg-buildpackage: info: source changed by root <root@deepinci-amd7> dpkg-buildpackage: info: host architecture amd64 dpkg-source --before-build . make -f debian/rules binary # # No change to .config # mkdir -p /root/linux/tools/objtool && make O=/root/linux subdir=tools/objtool --no-print-directory -C objtool mkdir -p /root/linux/tools/bpf/resolve_btfids && make O=/root/linux subdir=tools/bpf/resolve_btfids --no-print-directory -C bpf/resolve_btfids INSTALL libsubcmd_headers INSTALL libsubcmd_headers CALL scripts/checksyscalls.sh CC [M] drivers/spi/spi-phytium.o CC [M] drivers/spi/spi-phytium-pci.o CC [M] drivers/spi/spi-phytium-dma.o In file included from ./include/linux/bits.h:6, from ./include/linux/bitops.h:6, from ./include/linux/kernel.h:23, from ./include/linux/clk.h:13, from drivers/spi/spi-phytium.c:11: drivers/spi/spi-phytium.c: In function ‘phytium_spi_set_cs’: ./include/vdso/bits.h:7:40: error: invalid operands to binary << (have ‘long unsigned int’ and ‘u8 *’ {aka ‘unsigned char *’}) 7 | #define BIT(nr) (UL(1) << (nr)) | ^~ | | | u8 * {aka unsigned char *} drivers/spi/spi-phytium.c:56:42: note: in expansion of macro ‘BIT’ 56 | phytium_writel(fts, SER, BIT(spi->chip_select)); | ^~~ drivers/spi/spi-phytium.c:59:63: error: invalid operands to binary << (have ‘int’ and ‘u8 *’ {aka ‘unsigned char *’}) 59 | phytium_writel(fts, GCSR, origin | (1 << spi->chip_select)); | ^~ | | | u8 * {aka unsigned char *} drivers/spi/spi-phytium.c:64:64: error: invalid operands to binary << (have ‘int’ and ‘u8 *’ {aka ‘unsigned char *’}) 64 | phytium_writel(fts, GCSR, origin & ~(1 << spi->chip_select)); | ^~ | | | u8 * {aka unsigned char *} In file included from ./include/linux/device.h:15, from ./include/linux/platform_device.h:13, from drivers/spi/spi-phytium.c:17: drivers/spi/spi-phytium.c: In function ‘phytium_spi_check_status’: drivers/spi/spi-phytium.c:133:37: error: invalid use of undefined type ‘struct spi_master’ 133 | dev_err(&fts->master->dev, "RX FIFO overflow detected\n"); | ^~ ./include/linux/dev_printk.h:110:25: note: in definition of macro ‘dev_printk_index_wrap’ 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ drivers/spi/spi-phytium.c:133:17: note: in expansion of macro ‘dev_err’ 133 | dev_err(&fts->master->dev, "RX FIFO overflow detected\n"); | ^~~~~~~ drivers/spi/spi-phytium.c:138:37: error: invalid use of undefined type ‘struct spi_master’ 138 | dev_err(&fts->master->dev, "RX FIFO underflow detected\n"); | ^~ ./include/linux/dev_printk.h:110:25: note: in definition of macro ‘dev_printk_index_wrap’ 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ drivers/spi/spi-phytium.c:138:17: note: in expansion of macro ‘dev_err’ 138 | dev_err(&fts->master->dev, "RX FIFO underflow detected\n"); | ^~~~~~~ drivers/spi/spi-phytium.c:143:37: error: invalid use of undefined type ‘struct spi_master’ 143 | dev_err(&fts->master->dev, "TX FIFO overflow detected\n"); | ^~ ./include/linux/dev_printk.h:110:25: note: in definition of macro ‘dev_printk_index_wrap’ 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ drivers/spi/spi-phytium.c:143:17: note: in expansion of macro ‘dev_err’ 143 | dev_err(&fts->master->dev, "TX FIFO overflow detected\n"); | ^~~~~~~ drivers/spi/spi-phytium.c:150:32: error: invalid use of undefined type ‘struct spi_master’ 150 | if (fts->master->cur_msg) | ^~ drivers/spi/spi-phytium.c:151:36: error: invalid use of undefined type ‘struct spi_master’ 151 | fts->master->cur_msg->status = ret; | ^~ drivers/spi/spi-phytium.c: In function ‘int_error_stop’: drivers/spi/spi-phytium.c:161:29: error: invalid use of undefined type ‘struct spi_master’ 161 | dev_err(&fts->master->dev, "%s\n", msg); | ^~ ./include/linux/dev_printk.h:110:25: note: in definition of macro ‘dev_printk_index_wrap’ 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ drivers/spi/spi-phytium.c:161:9: note: in expansion of macro ‘dev_err’ 161 | dev_err(&fts->master->dev, "%s\n", msg); | ^~~~~~~ drivers/spi/spi-phytium.c:162:20: error: invalid use of undefined type ‘struct spi_master’ 162 | fts->master->cur_msg->status = -EIO; | ^~ drivers/spi/spi-phytium.c:163:42: error: passing argument 1 of ‘spi_finalize_current_transfer’ from incompatible pointer type [-Werror=incompatible-pointer-types] 163 | spi_finalize_current_transfer(fts->master); | ~~~^~~~~~~~ | | | struct spi_master * In file included from drivers/spi/spi-phytium.c:19: ./include/linux/spi/spi.h:821:66: note: expected ‘struct spi_controller *’ but argument is of type ‘struct spi_master *’ 821 | extern void spi_finalize_current_transfer(struct spi_controller *ctlr); | ~~~~~~~~~~~~~~~~~~~~~~~^~~~ drivers/spi/spi-phytium.c: In function ‘interrupt_transfer’: drivers/spi/spi-phytium.c:179:50: error: passing argument 1 of ‘spi_finalize_current_transfer’ from incompatible pointer type [-Werror=incompatible-pointer-types] 179 | spi_finalize_current_transfer(fts->master); | ~~~^~~~~~~~ | | | struct spi_master * ./include/linux/spi/spi.h:821:66: note: expected ‘struct spi_controller *’ but argument is of type ‘struct spi_master *’ 821 | extern void spi_finalize_current_transfer(struct spi_controller *ctlr); | ~~~~~~~~~~~~~~~~~~~~~~~^~~~ drivers/spi/spi-phytium.c: In function ‘phytium_spi_irq’: drivers/spi/spi-phytium.c:194:62: error: ‘controller’ undeclared (first use in this function); did you mean ‘spi_controller’? 194 | struct phytium_spi *fts = spi_controller_get_devdata(controller); | ^~~~~~~~~~ | spi_controller drivers/spi/spi-phytium.c:194:62: note: each undeclared identifier is reported only once for each function it appears in drivers/spi/spi-phytium.c:200:20: error: invalid use of undefined type ‘struct spi_master’ 200 | if (!master->cur_msg) { | ^~ drivers/spi/spi-phytium.c: In function ‘phytium_spi_transfer_one’: drivers/spi/spi-phytium.c:225:62: error: passing argument 1 of ‘spi_controller_get_devdata’ from incompatible pointer type [-Werror=incompatible-pointer-types] 225 | struct phytium_spi *fts = spi_controller_get_devdata(master); | ^~~~~~ | | | struct spi_master * ./include/linux/spi/spi.h:780:71: note: expected ‘struct spi_controller *’ but argument is of type ‘struct spi_master *’ 780 | static inline void *spi_controller_get_devdata(struct spi_controller *ctlr) | ~~~~~~~~~~~~~~~~~~~~~~~^~~~ drivers/spi/spi-phytium.c:281:19: error: invalid use of undefined type ‘struct spi_master’ 281 | if (master->can_dma && master->can_dma(master, spi, transfer)) | ^~ drivers/spi/spi-phytium.c:281:38: error: invalid use of undefined type ‘struct spi_master’ 281 | if (master->can_dma && master->can_dma(master, spi, transfer)) | ^~ drivers/spi/spi-phytium.c:282:41: error: invalid use of undefined type ‘struct spi_master’ 282 | fts->dma_mapped = master->cur_msg_mapped; | ^~ drivers/spi/spi-phytium.c: In function ‘phytium_spi_handle_err’: drivers/spi/spi-phytium.c:318:62: error: passing argument 1 of ‘spi_controller_get_devdata’ from incompatible pointer type [-Werror=incompatible-pointer-types] 318 | struct phytium_spi *fts = spi_controller_get_devdata(master); | ^~~~~~ | | | struct spi_master * ./include/linux/spi/spi.h:780:71: note: expected ‘struct spi_controller *’ but argument is of type ‘struct spi_master *’ 780 | static inline void *spi_controller_get_devdata(struct spi_controller *ctlr) | ~~~~~~~~~~~~~~~~~~~~~~~^~~~ drivers/spi/spi-phytium.c: In function ‘phytium_spi_setup’: drivers/spi/spi-phytium.c:330:40: error: ‘struct spi_device’ has no member named ‘master’ 330 | struct spi_master *master = spi->master; | ^~ drivers/spi/spi-phytium.c:331:62: error: passing argument 1 of ‘spi_controller_get_devdata’ from incompatible pointer type [-Werror=incompatible-pointer-types] 331 | struct phytium_spi *fts = spi_controller_get_devdata(master); | ^~~~~~ | | | struct spi_master * ./include/linux/spi/spi.h:780:71: note: expected ‘struct spi_controller *’ but argument is of type ‘struct spi_master *’ 780 | static inline void *spi_controller_get_devdata(struct spi_controller *ctlr) | ~~~~~~~~~~~~~~~~~~~~~~~^~~~ drivers/spi/spi-phytium.c: In function ‘phytium_spi_add_host’: drivers/spi/spi-phytium.c:400:16: error: assignment to ‘struct spi_master *’ from incompatible pointer type ‘struct spi_controller *’ [-Werror=incompatible-pointer-types] 400 | master = spi_alloc_master(dev, 0); | ^ drivers/spi/spi-phytium.c:415:15: error: invalid use of undefined type ‘struct spi_master’ 415 | master->use_gpio_descriptors = true; | ^~ drivers/spi/spi-phytium.c:416:15: error: invalid use of undefined type ‘struct spi_master’ 416 | master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_LOOP; | ^~ drivers/spi/spi-phytium.c:417:15: error: invalid use of undefined type ‘struct spi_master’ 417 | master->bits_per_word_mask = SPI_BPW_MASK(8) | SPI_BPW_MASK(16); | ^~ drivers/spi/spi-phytium.c:418:15: error: invalid use of undefined type ‘struct spi_master’ 418 | master->bus_num = fts->bus_num; | ^~ drivers/spi/spi-phytium.c:419:15: error: invalid use of undefined type ‘struct spi_master’ 419 | master->num_chipselect = fts->num_cs; | ^~ drivers/spi/spi-phytium.c:420:15: error: invalid use of undefined type ‘struct spi_master’ 420 | master->setup = phytium_spi_setup; | ^~ drivers/spi/spi-phytium.c:421:15: error: invalid use of undefined type ‘struct spi_master’ 421 | master->cleanup = phytium_spi_cleanup; | ^~ drivers/spi/spi-phytium.c:422:15: error: invalid use of undefined type ‘struct spi_master’ 422 | master->set_cs = phytium_spi_set_cs; | ^~ drivers/spi/spi-phytium.c:423:15: error: invalid use of undefined type ‘struct spi_master’ 423 | master->transfer_one = phytium_spi_transfer_one; | ^~ drivers/spi/spi-phytium.c:424:15: error: invalid use of undefined type ‘struct spi_master’ 424 | master->handle_err = phytium_spi_handle_err; | ^~ drivers/spi/spi-phytium.c:425:15: error: invalid use of undefined type ‘struct spi_master’ 425 | master->max_speed_hz = fts->max_freq; | ^~ drivers/spi/spi-phytium.c:426:15: error: invalid use of undefined type ‘struct spi_master’ 426 | master->dev.of_node = dev->of_node; | ^~ drivers/spi/spi-phytium.c:427:15: error: invalid use of undefined type ‘struct spi_master’ 427 | master->dev.fwnode = dev->fwnode; | ^~ drivers/spi/spi-phytium.c:428:15: error: invalid use of undefined type ‘struct spi_master’ 428 | master->flags = SPI_CONTROLLER_GPIO_SS; | ^~ drivers/spi/spi-phytium.c:437:31: error: invalid use of undefined type ‘struct spi_master’ 437 | master->can_dma = fts->dma_ops->can_dma; | ^~ drivers/spi/spi-phytium.c:438:31: error: invalid use of undefined type ‘struct spi_master’ 438 | master->flags |= SPI_CONTROLLER_MUST_TX; | ^~ drivers/spi/spi-phytium.c:442:36: error: passing argument 1 of ‘spi_controller_set_devdata’ from incompatible pointer type [-Werror=incompatible-pointer-types] 442 | spi_controller_set_devdata(master, fts); | ^~~~~~ | | | struct spi_master * ./include/linux/spi/spi.h:785:70: note: expected ‘struct spi_controller *’ but argument is of type ‘struct spi_master *’ 785 | static inline void spi_controller_set_devdata(struct spi_controller *ctlr, | ~~~~~~~~~~~~~~~~~~~~~~~^~~~ drivers/spi/spi-phytium.c:443:39: error: passing argument 1 of ‘spi_register_controller’ from incompatible pointer type [-Werror=incompatible-pointer-types] 443 | ret = spi_register_controller(master); | ^~~~~~ | | | struct spi_master * ./include/linux/spi/spi.h:899:59: note: expected ‘struct spi_controller *’ but argument is of type ‘struct spi_master *’ 899 | extern int spi_register_controller(struct spi_controller *ctlr); | ~~~~~~~~~~~~~~~~~~~~~~~^~~~ drivers/spi/spi-phytium.c:445:32: error: invalid use of undefined type ‘struct spi_master’ 445 | dev_err(&master->dev, "problem registering spi master\n"); | ^~ ./include/linux/dev_printk.h:110:25: note: in definition of macro ‘dev_printk_index_wrap’ 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ drivers/spi/spi-phytium.c:445:17: note: in expansion of macro ‘dev_err’ 445 | dev_err(&master->dev, "problem registering spi master\n"); | ^~~~~~~ drivers/spi/spi-phytium-pci.c: In function ‘spi_suspend’: drivers/spi/spi-phytium-pci.c:92:62: error: ‘controller’ undeclared (first use in this function); did you mean ‘spi_controller’? 92 | struct phytium_spi *fts = spi_controller_get_devdata(controller); | ^~~~~~~~~~ | spi_controller drivers/spi/spi-phytium-pci.c:92:62: note: each undeclared identifier is reported only once for each function it appears in drivers/spi/spi-phytium-pci.c:91:28: error: unused variable ‘master’ [-Werror=unused-variable] 91 | struct spi_master *master = dev_get_drvdata(dev); | ^~~~~~ drivers/spi/spi-phytium-dma.c: In function ‘phytium_spi_dma_init’: drivers/spi/spi-phytium-dma.c:79:20: error: invalid use of undefined type ‘struct spi_master’ 79 | fts->master->dma_rx = fts->rxchan; | ^~ drivers/spi/spi-phytium-dma.c:80:20: error: invalid use of undefined type ‘struct spi_master’ 80 | fts->master->dma_tx = fts->txchan; | ^~ In file included from ./include/linux/device.h:15, from ./include/linux/dma-mapping.h:8, from drivers/spi/spi-phytium-dma.c:8: drivers/spi/spi-phytium-dma.c: In function ‘phytium_spi_dma_wait’: drivers/spi/spi-phytium-dma.c:146:37: error: invalid use of undefined type ‘struct spi_master’ 146 | dev_err(&fts->master->cur_msg->spi->dev, | ^~ ./include/linux/dev_printk.h:110:25: note: in definition of macro ‘dev_printk_index_wrap’ 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ drivers/spi/spi-phytium-dma.c:146:17: note: in expansion of macro ‘dev_err’ 146 | dev_err(&fts->master->cur_msg->spi->dev, | ^~~~~~~ drivers/spi/spi-phytium-dma.c: In function ‘phytium_spi_dma_wait_tx_done’: drivers/spi/spi-phytium-dma.c:190:37: error: invalid use of undefined type ‘struct spi_master’ 190 | dev_err(&fts->master->dev, "Tx hanged up\n"); | ^~ ./include/linux/dev_printk.h:110:25: note: in definition of macro ‘dev_printk_index_wrap’ 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ drivers/spi/spi-phytium-dma.c:190:17: note: in expansion of macro ‘dev_err’ 190 | dev_err(&fts->master->dev, "Tx hanged up\n"); | ^~~~~~~ drivers/spi/spi-phytium-dma.c: In function ‘phytium_spi_dma_wait_rx_done’: drivers/spi/spi-phytium-dma.c:283:37: error: invalid use of undefined type ‘struct spi_master’ 283 | dev_err(&fts->master->dev, "Rx hanged up, nents = %d\n", nents); | ^~ ./include/linux/dev_printk.h:110:25: note: in definition of macro ‘dev_printk_index_wrap’ 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ drivers/spi/spi-phytium-dma.c:283:17: note: in expansion of macro ‘dev_err’ 283 | dev_err(&fts->master->dev, "Rx hanged up, nents = %d\n", nents); | ^~~~~~~ drivers/spi/spi-phytium.c:457:9: error: implicit declaration of function ‘spi_master_put’; did you mean ‘spi_dev_put’? [-Werror=implicit-function-declaration] 457 | spi_master_put(master); | ^~~~~~~~~~~~~~ | spi_dev_put drivers/spi/spi-phytium.c: In function ‘phytium_spi_remove_host’: drivers/spi/spi-phytium-pci.c: In function ‘spi_resume’: drivers/spi/spi-phytium-pci.c:100:62: error: ‘spi_controller’ undeclared (first use in this function) 100 | struct phytium_spi *fts = spi_controller_get_devdata(spi_controller); | ^~~~~~~~~~~~~~ drivers/spi/spi-phytium-pci.c:99:28: error: unused variable ‘master’ [-Werror=unused-variable] 99 | struct spi_master *master = dev_get_drvdata(dev); | ^~~~~~ drivers/spi/spi-phytium.c:468:38: error: passing argument 1 of ‘spi_unregister_controller’ from incompatible pointer type [-Werror=incompatible-pointer-types] 468 | spi_unregister_controller(fts->master); | ~~~^~~~~~~~ | | | struct spi_master * ./include/linux/spi/spi.h:902:62: note: expected ‘struct spi_controller *’ but argument is of type ‘struct spi_master *’ 902 | extern void spi_unregister_controller(struct spi_controller *ctlr); | ~~~~~~~~~~~~~~~~~~~~~~~^~~~ drivers/spi/spi-phytium.c: In function ‘phytium_spi_suspend_host’: drivers/spi/spi-phytium.c:478:41: error: passing argument 1 of ‘spi_controller_suspend’ from incompatible pointer type [-Werror=incompatible-pointer-types] 478 | ret = spi_controller_suspend(fts->master); | ~~~^~~~~~~~ | | | struct spi_master * ./include/linux/spi/spi.h:815:58: note: expected ‘struct spi_controller *’ but argument is of type ‘struct spi_master *’ 815 | extern int spi_controller_suspend(struct spi_controller *ctlr); | ~~~~~~~~~~~~~~~~~~~~~~~^~~~ drivers/spi/spi-phytium.c: In function ‘phytium_spi_resume_host’: drivers/spi/spi-phytium.c:491:33: error: invalid use of undefined type ‘struct spi_master’ 491 | spi_hw_init(&fts->master->dev, fts); | ^~ drivers/spi/spi-phytium-dma.c: In function ‘phytium_spi_dma_transfer’: drivers/spi/spi-phytium-dma.c:514:24: error: invalid use of undefined type ‘struct spi_master’ 514 | if (fts->master->cur_msg->status == -EINPROGRESS) { | ^~ drivers/spi/spi-phytium-dma.c:520:40: error: invalid use of undefined type ‘struct spi_master’ 520 | if (xfer->rx_buf && fts->master->cur_msg->status == -EINPROGRESS) | ^~ cc1: all warnings being treated as errors drivers/spi/spi-phytium.c:492:37: error: ‘controller’ undeclared (first use in this function); did you mean ‘spi_controller’? 492 | ret = spi_controller_resume(controller); | ^~~~~~~~~~ | spi_controller drivers/spi/spi-phytium.c:494:37: error: invalid use of undefined type ‘struct spi_master’ 494 | dev_err(&fts->master->dev, "fail to start queue (%d)\n", ret); | ^~ ./include/linux/dev_printk.h:110:25: note: in definition of macro ‘dev_printk_index_wrap’ 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ drivers/spi/spi-phytium.c:494:17: note: in expansion of macro ‘dev_err’ 494 | dev_err(&fts->master->dev, "fail to start queue (%d)\n", ret); | ^~~~~~~ cc1: all warnings being treated as errors make[7]: *** [scripts/Makefile.build:244:drivers/spi/spi-phytium-pci.o] 错误 1 make[7]: *** 正在等待未完成的任务.... make[7]: *** [scripts/Makefile.build:244:drivers/spi/spi-phytium-dma.o] 错误 1 make[7]: *** [scripts/Makefile.build:244:drivers/spi/spi-phytium.o] 错误 1 make[6]: *** [scripts/Makefile.build:485:drivers/spi] 错误 2 make[6]: *** 正在等待未完成的任务.... CHK kernel/kheaders_data.tar.xz ^Cmake[6]: *** [scripts/Makefile.build:485: fs/xfs] 中断 make[8]: *** [scripts/Makefile.build:485: drivers/gpu/drm/i915] 中断 make[9]: *** [scripts/Makefile.build:485: drivers/net/ethernet/mellanox/mlx5/core] 中断 make[8]: *** [scripts/Makefile.build:485: drivers/gpu/drm/nouveau] 中断 make[8]: *** [scripts/Makefile.build:485: drivers/gpu/drm/amd/amdgpu] 中断 make[8]: *** [scripts/Makefile.build:485: drivers/net/ethernet/mellanox] 中断 make[5]: *** [scripts/Makefile.build:485: fs] 中断 make[7]: *** [scripts/Makefile.build:485: drivers/net/ethernet] 中断 make[7]: *** [scripts/Makefile.build:485: sound/soc/codecs] 中断 make[7]: *** [scripts/Makefile.build:485: drivers/gpu/drm] 中断 make[6]: *** [scripts/Makefile.build:485: drivers/net] 中断 make[6]: *** [scripts/Makefile.build:485: drivers/gpu] 中断 make[6]: *** [scripts/Makefile.build:485: sound/soc] 中断 make[5]: *** [scripts/Makefile.build:485: drivers] 中断 make[5]: *** [scripts/Makefile.build:485: sound] 中断 make[4]: *** [Makefile:1915: .] 中断 make[3]: *** [debian/rules:74: build-arch] 中断 dpkg-buildpackage: error: make -f debian/rules binary subprocess was killed by signal 2 make[2]: *** [scripts/Makefile.package:121: bindeb-pkg] 中断 make[1]: *** [/root/linux/Makefile:1537: bindeb-pkg] 中断 make: *** [Makefile:240: __sub-make] 中断 root@deepinci-amd7:~/linux# ^C root@deepinci-amd7:~/linux# make bindeb-pkg -j$(nproc) GEN debian dpkg-buildpackage --build=binary --no-pre-clean --unsigned-changes -R'make -f debian/rules' -j1 -a$(cat debian/arch) ^Cmake[2]: *** [scripts/Makefile.package:121: bindeb-pkg] 中断 make[1]: *** [/root/linux/Makefile:1537: bindeb-pkg] 中断 make: *** [Makefile:240: __sub-make] 中断 root@deepinci-amd7:~/linux# nano +492 drivers/spi/spi-phytium.c root@deepinci-amd7:~/linux# nano +492 drivers/spi/spi-phytium.c root@deepinci-amd7:~/linux# make bindeb-pkg -j$(nproc) GEN debian dpkg-buildpackage --build=binary --no-pre-clean --unsigned-changes -R'make -f debian/rules' -j1 -a$(cat debian/arch) dpkg-buildpackage: info: source package linux-upstream dpkg-buildpackage: info: source version 23.01.01.01 dpkg-buildpackage: info: source distribution beige dpkg-buildpackage: info: source changed by root <root@deepinci-amd7> dpkg-buildpackage: info: host architecture amd64 dpkg-source --before-build . make -f debian/rules binary # # No change to .config # mkdir -p /root/linux/tools/objtool && make O=/root/linux subdir=tools/objtool --no-print-directory -C objtool mkdir -p /root/linux/tools/bpf/resolve_btfids && make O=/root/linux subdir=tools/bpf/resolve_btfids --no-print-directory -C bpf/resolve_btfids INSTALL libsubcmd_headers INSTALL libsubcmd_headers CALL scripts/checksyscalls.sh CC [M] drivers/spi/spi-phytium.o CC [M] drivers/spi/spi-phytium-pci.o CC [M] drivers/spi/spi-phytium-dma.o In file included from ./include/linux/bits.h:6, from ./include/linux/bitops.h:6, from ./include/linux/kernel.h:23, from ./include/linux/clk.h:13, from drivers/spi/spi-phytium.c:11: drivers/spi/spi-phytium.c: In function ‘phytium_spi_set_cs’: ./include/vdso/bits.h:7:40: error: invalid operands to binary << (have ‘long unsigned int’ and ‘u8 *’ {aka ‘unsigned char *’}) 7 | #define BIT(nr) (UL(1) << (nr)) | ^~ | | | u8 * {aka unsigned char *} drivers/spi/spi-phytium.c:56:42: note: in expansion of macro ‘BIT’ 56 | phytium_writel(fts, SER, BIT(spi->chip_select)); | ^~~ drivers/spi/spi-phytium.c:59:63: error: invalid operands to binary << (have ‘int’ and ‘u8 *’ {aka ‘unsigned char *’}) 59 | phytium_writel(fts, GCSR, origin | (1 << spi->chip_select)); | ^~ | | | u8 * {aka unsigned char *} drivers/spi/spi-phytium.c:64:64: error: invalid operands to binary << (have ‘int’ and ‘u8 *’ {aka ‘unsigned char *’}) 64 | phytium_writel(fts, GCSR, origin & ~(1 << spi->chip_select)); | ^~ | | | u8 * {aka unsigned char *} In file included from ./include/linux/device.h:15, from ./include/linux/platform_device.h:13, from drivers/spi/spi-phytium.c:17: drivers/spi/spi-phytium.c: In function ‘phytium_spi_check_status’: drivers/spi/spi-phytium.c:133:37: error: invalid use of undefined type ‘struct spi_master’ 133 | dev_err(&fts->master->dev, "RX FIFO overflow detected\n"); | ^~ ./include/linux/dev_printk.h:110:25: note: in definition of macro ‘dev_printk_index_wrap’ 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ drivers/spi/spi-phytium.c:133:17: note: in expansion of macro ‘dev_err’ 133 | dev_err(&fts->master->dev, "RX FIFO overflow detected\n"); | ^~~~~~~ drivers/spi/spi-phytium.c:138:37: error: invalid use of undefined type ‘struct spi_master’ 138 | dev_err(&fts->master->dev, "RX FIFO underflow detected\n"); | ^~ ./include/linux/dev_printk.h:110:25: note: in definition of macro ‘dev_printk_index_wrap’ 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ drivers/spi/spi-phytium.c:138:17: note: in expansion of macro ‘dev_err’ 138 | dev_err(&fts->master->dev, "RX FIFO underflow detected\n"); | ^~~~~~~ drivers/spi/spi-phytium.c:143:37: error: invalid use of undefined type ‘struct spi_master’ 143 | dev_err(&fts->master->dev, "TX FIFO overflow detected\n"); | ^~ ./include/linux/dev_printk.h:110:25: note: in definition of macro ‘dev_printk_index_wrap’ 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ drivers/spi/spi-phytium.c:143:17: note: in expansion of macro ‘dev_err’ 143 | dev_err(&fts->master->dev, "TX FIFO overflow detected\n"); | ^~~~~~~ drivers/spi/spi-phytium.c:150:32: error: invalid use of undefined type ‘struct spi_master’ 150 | if (fts->master->cur_msg) | ^~ drivers/spi/spi-phytium.c:151:36: error: invalid use of undefined type ‘struct spi_master’ 151 | fts->master->cur_msg->status = ret; | ^~ drivers/spi/spi-phytium.c: In function ‘int_error_stop’: drivers/spi/spi-phytium.c:161:29: error: invalid use of undefined type ‘struct spi_master’ 161 | dev_err(&fts->master->dev, "%s\n", msg); | ^~ ./include/linux/dev_printk.h:110:25: note: in definition of macro ‘dev_printk_index_wrap’ 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ drivers/spi/spi-phytium.c:161:9: note: in expansion of macro ‘dev_err’ 161 | dev_err(&fts->master->dev, "%s\n", msg); | ^~~~~~~ drivers/spi/spi-phytium.c:162:20: error: invalid use of undefined type ‘struct spi_master’ 162 | fts->master->cur_msg->status = -EIO; | ^~ drivers/spi/spi-phytium.c:163:42: error: passing argument 1 of ‘spi_finalize_current_transfer’ from incompatible pointer type [-Werror=incompatible-pointer-types] 163 | spi_finalize_current_transfer(fts->master); | ~~~^~~~~~~~ | | | struct spi_master * In file included from drivers/spi/spi-phytium.c:19: ./include/linux/spi/spi.h:821:66: note: expected ‘struct spi_controller *’ but argument is of type ‘struct spi_master *’ 821 | extern void spi_finalize_current_transfer(struct spi_controller *ctlr); | ~~~~~~~~~~~~~~~~~~~~~~~^~~~ drivers/spi/spi-phytium.c: In function ‘interrupt_transfer’: drivers/spi/spi-phytium.c:179:50: error: passing argument 1 of ‘spi_finalize_current_transfer’ from incompatible pointer type [-Werror=incompatible-pointer-types] 179 | spi_finalize_current_transfer(fts->master); | ~~~^~~~~~~~ | | | struct spi_master * ./include/linux/spi/spi.h:821:66: note: expected ‘struct spi_controller *’ but argument is of type ‘struct spi_master *’ 821 | extern void spi_finalize_current_transfer(struct spi_controller *ctlr); | ~~~~~~~~~~~~~~~~~~~~~~~^~~~ drivers/spi/spi-phytium-dma.c: In function ‘phytium_spi_dma_init’: drivers/spi/spi-phytium-dma.c:79:20: error: invalid use of undefined type ‘struct spi_master’ 79 | fts->master->dma_rx = fts->rxchan; | ^~ drivers/spi/spi-phytium-dma.c:80:20: error: invalid use of undefined type ‘struct spi_master’ 80 | fts->master->dma_tx = fts->txchan; | ^~ drivers/spi/spi-phytium.c: In function ‘phytium_spi_irq’: drivers/spi/spi-phytium.c:194:62: error: ‘controller’ undeclared (first use in this function); did you mean ‘spi_controller’? 194 | struct phytium_spi *fts = spi_controller_get_devdata(controller); | ^~~~~~~~~~ | spi_controller drivers/spi/spi-phytium.c:194:62: note: each undeclared identifier is reported only once for each function it appears in In file included from ./include/linux/device.h:15, from ./include/linux/dma-mapping.h:8, from drivers/spi/spi-phytium-dma.c:8: drivers/spi/spi-phytium-dma.c: In function ‘phytium_spi_dma_wait’: drivers/spi/spi-phytium.c:200:20: error: invalid use of undefined type ‘struct spi_master’ 200 | if (!master->cur_msg) { | ^~ drivers/spi/spi-phytium-dma.c:146:37: error: invalid use of undefined type ‘struct spi_master’ 146 | dev_err(&fts->master->cur_msg->spi->dev, | ^~ ./include/linux/dev_printk.h:110:25: note: in definition of macro ‘dev_printk_index_wrap’ 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ drivers/spi/spi-phytium-dma.c:146:17: note: in expansion of macro ‘dev_err’ 146 | dev_err(&fts->master->cur_msg->spi->dev, | ^~~~~~~ drivers/spi/spi-phytium.c: In function ‘phytium_spi_transfer_one’: drivers/spi/spi-phytium.c:225:62: error: passing argument 1 of ‘spi_controller_get_devdata’ from incompatible pointer type [-Werror=incompatible-pointer-types] 225 | struct phytium_spi *fts = spi_controller_get_devdata(master); | ^~~~~~ | | | struct spi_master * ./include/linux/spi/spi.h:780:71: note: expected ‘struct spi_controller *’ but argument is of type ‘struct spi_master *’ 780 | static inline void *spi_controller_get_devdata(struct spi_controller *ctlr) | ~~~~~~~~~~~~~~~~~~~~~~~^~~~ drivers/spi/spi-phytium-dma.c: In function ‘phytium_spi_dma_wait_tx_done’: drivers/spi/spi-phytium-dma.c:190:37: error: invalid use of undefined type ‘struct spi_master’ 190 | dev_err(&fts->master->dev, "Tx hanged up\n"); | ^~ ./include/linux/dev_printk.h:110:25: note: in definition of macro ‘dev_printk_index_wrap’ 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ drivers/spi/spi-phytium-dma.c:190:17: note: in expansion of macro ‘dev_err’ 190 | dev_err(&fts->master->dev, "Tx hanged up\n"); | ^~~~~~~ drivers/spi/spi-phytium.c:281:19: error: invalid use of undefined type ‘struct spi_master’ 281 | if (master->can_dma && master->can_dma(master, spi, transfer)) | ^~ drivers/spi/spi-phytium.c:281:38: error: invalid use of undefined type ‘struct spi_master’ 281 | if (master->can_dma && master->can_dma(master, spi, transfer)) | ^~ drivers/spi/spi-phytium.c:282:41: error: invalid use of undefined type ‘struct spi_master’ 282 | fts->dma_mapped = master->cur_msg_mapped; | ^~ drivers/spi/spi-phytium-dma.c: In function ‘phytium_spi_dma_wait_rx_done’: drivers/spi/spi-phytium-dma.c:283:37: error: invalid use of undefined type ‘struct spi_master’ 283 | dev_err(&fts->master->dev, "Rx hanged up, nents = %d\n", nents); | ^~ ./include/linux/dev_printk.h:110:25: note: in definition of macro ‘dev_printk_index_wrap’ 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ drivers/spi/spi-phytium-dma.c:283:17: note: in expansion of macro ‘dev_err’ 283 | dev_err(&fts->master->dev, "Rx hanged up, nents = %d\n", nents); | ^~~~~~~ drivers/spi/spi-phytium.c: In function ‘phytium_spi_handle_err’: drivers/spi/spi-phytium.c:318:62: error: passing argument 1 of ‘spi_controller_get_devdata’ from incompatible pointer type [-Werror=incompatible-pointer-types] 318 | struct phytium_spi *fts = spi_controller_get_devdata(master); | ^~~~~~ | | | struct spi_master * ./include/linux/spi/spi.h:780:71: note: expected ‘struct spi_controller *’ but argument is of type ‘struct spi_master *’ 780 | static inline void *spi_controller_get_devdata(struct spi_controller *ctlr) | ~~~~~~~~~~~~~~~~~~~~~~~^~~~ drivers/spi/spi-phytium.c: In function ‘phytium_spi_setup’: drivers/spi/spi-phytium.c:330:40: error: ‘struct spi_device’ has no member named ‘master’ 330 | struct spi_master *master = spi->master; | ^~ drivers/spi/spi-phytium.c:331:62: error: passing argument 1 of ‘spi_controller_get_devdata’ from incompatible pointer type [-Werror=incompatible-pointer-types] 331 | struct phytium_spi *fts = spi_controller_get_devdata(master); | ^~~~~~ | | | struct spi_master * ./include/linux/spi/spi.h:780:71: note: expected ‘struct spi_controller *’ but argument is of type ‘struct spi_master *’ 780 | static inline void *spi_controller_get_devdata(struct spi_controller *ctlr) | ~~~~~~~~~~~~~~~~~~~~~~~^~~~ drivers/spi/spi-phytium.c: In function ‘phytium_spi_add_host’: drivers/spi/spi-phytium.c:400:16: error: assignment to ‘struct spi_master *’ from incompatible pointer type ‘struct spi_controller *’ [-Werror=incompatible-pointer-types] 400 | master = spi_alloc_master(dev, 0); | ^ drivers/spi/spi-phytium.c:415:15: error: invalid use of undefined type ‘struct spi_master’ 415 | master->use_gpio_descriptors = true; | ^~ drivers/spi/spi-phytium.c:416:15: error: invalid use of undefined type ‘struct spi_master’ 416 | master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_LOOP; | ^~ drivers/spi/spi-phytium.c:417:15: error: invalid use of undefined type ‘struct spi_master’ 417 | master->bits_per_word_mask = SPI_BPW_MASK(8) | SPI_BPW_MASK(16); | ^~ drivers/spi/spi-phytium.c:418:15: error: invalid use of undefined type ‘struct spi_master’ 418 | master->bus_num = fts->bus_num; | ^~ drivers/spi/spi-phytium.c:419:15: error: invalid use of undefined type ‘struct spi_master’ 419 | master->num_chipselect = fts->num_cs; | ^~ drivers/spi/spi-phytium-pci.c: In function ‘spi_suspend’: drivers/spi/spi-phytium.c:420:15: error: invalid use of undefined type ‘struct spi_master’ 420 | master->setup = phytium_spi_setup; | ^~ drivers/spi/spi-phytium-pci.c:92:62: error: ‘controller’ undeclared (first use in this function); did you mean ‘spi_controller’? 92 | struct phytium_spi *fts = spi_controller_get_devdata(controller); | ^~~~~~~~~~ | spi_controller drivers/spi/spi-phytium.c:421:15: error: invalid use of undefined type ‘struct spi_master’ 421 | master->cleanup = phytium_spi_cleanup; | ^~ drivers/spi/spi-phytium-pci.c:92:62: note: each undeclared identifier is reported only once for each function it appears in drivers/spi/spi-phytium.c:422:15: error: invalid use of undefined type ‘struct spi_master’ 422 | master->set_cs = phytium_spi_set_cs; | ^~ drivers/spi/spi-phytium-pci.c:91:28: error: unused variable ‘master’ [-Werror=unused-variable] 91 | struct spi_master *master = dev_get_drvdata(dev); | ^~~~~~ drivers/spi/spi-phytium.c:423:15: error: invalid use of undefined type ‘struct spi_master’ 423 | master->transfer_one = phytium_spi_transfer_one; | ^~ drivers/spi/spi-phytium.c:424:15: error: invalid use of undefined type ‘struct spi_master’ 424 | master->handle_err = phytium_spi_handle_err; | ^~ drivers/spi/spi-phytium.c:425:15: error: invalid use of undefined type ‘struct spi_master’ 425 | master->max_speed_hz = fts->max_freq; | ^~ drivers/spi/spi-phytium.c:426:15: error: invalid use of undefined type ‘struct spi_master’ 426 | master->dev.of_node = dev->of_node; | ^~ drivers/spi/spi-phytium.c:427:15: error: invalid use of undefined type ‘struct spi_master’ 427 | master->dev.fwnode = dev->fwnode; | ^~ drivers/spi/spi-phytium.c:428:15: error: invalid use of undefined type ‘struct spi_master’ 428 | master->flags = SPI_CONTROLLER_GPIO_SS; | ^~ drivers/spi/spi-phytium.c:437:31: error: invalid use of undefined type ‘struct spi_master’ 437 | master->can_dma = fts->dma_ops->can_dma; | ^~ drivers/spi/spi-phytium.c:438:31: error: invalid use of undefined type ‘struct spi_master’ 438 | master->flags |= SPI_CONTROLLER_MUST_TX; | ^~ drivers/spi/spi-phytium.c:442:36: error: passing argument 1 of ‘spi_controller_set_devdata’ from incompatible pointer type [-Werror=incompatible-pointer-types] 442 | spi_controller_set_devdata(master, fts); | ^~~~~~ | | | struct spi_master * ./include/linux/spi/spi.h:785:70: note: expected ‘struct spi_controller *’ but argument is of type ‘struct spi_master *’ 785 | static inline void spi_controller_set_devdata(struct spi_controller *ctlr, | ~~~~~~~~~~~~~~~~~~~~~~~^~~~ drivers/spi/spi-phytium.c:443:39: error: passing argument 1 of ‘spi_register_controller’ from incompatible pointer type [-Werror=incompatible-pointer-types] 443 | ret = spi_register_controller(master); | ^~~~~~ | | | struct spi_master * ./include/linux/spi/spi.h:899:59: note: expected ‘struct spi_controller *’ but argument is of type ‘struct spi_master *’ 899 | extern int spi_register_controller(struct spi_controller *ctlr); | ~~~~~~~~~~~~~~~~~~~~~~~^~~~ drivers/spi/spi-phytium.c:445:32: error: invalid use of undefined type ‘struct spi_master’ 445 | dev_err(&master->dev, "problem registering spi master\n"); | ^~ ./include/linux/dev_printk.h:110:25: note: in definition of macro ‘dev_printk_index_wrap’ 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ drivers/spi/spi-phytium.c:445:17: note: in expansion of macro ‘dev_err’ 445 | dev_err(&master->dev, "problem registering spi master\n"); | ^~~~~~~ drivers/spi/spi-phytium-dma.c: In function ‘phytium_spi_dma_transfer’: drivers/spi/spi-phytium-dma.c:514:24: error: invalid use of undefined type ‘struct spi_master’ 514 | if (fts->master->cur_msg->status == -EINPROGRESS) { | ^~ drivers/spi/spi-phytium-dma.c:520:40: error: invalid use of undefined type ‘struct spi_master’ 520 | if (xfer->rx_buf && fts->master->cur_msg->status == -EINPROGRESS) | ^~ drivers/spi/spi-phytium-pci.c: In function ‘spi_resume’: drivers/spi/spi-phytium-pci.c:100:62: error: ‘spi_controller’ undeclared (first use in this function) 100 | struct phytium_spi *fts = spi_controller_get_devdata(spi_controller); | ^~~~~~~~~~~~~~ drivers/spi/spi-phytium-pci.c:99:28: error: unused variable ‘master’ [-Werror=unused-variable] 99 | struct spi_master *master = dev_get_drvdata(dev); | ^~~~~~ cc1: all warnings being treated as errors drivers/spi/spi-phytium.c:457:9: error: implicit declaration of function ‘spi_master_put’; did you mean ‘spi_dev_put’? [-Werror=implicit-function-declaration] 457 | spi_master_put(master); | ^~~~~~~~~~~~~~ | spi_dev_put drivers/spi/spi-phytium.c: In function ‘phytium_spi_remove_host’: drivers/spi/spi-phytium.c:468:38: error: passing argument 1 of ‘spi_unregister_controller’ from incompatible pointer type [-Werror=incompatible-pointer-types] 468 | spi_unregister_controller(fts->master); | ~~~^~~~~~~~ | | | struct spi_master * ./include/linux/spi/spi.h:902:62: note: expected ‘struct spi_controller *’ but argument is of type ‘struct spi_master *’ 902 | extern void spi_unregister_controller(struct spi_controller *ctlr); | ~~~~~~~~~~~~~~~~~~~~~~~^~~~ drivers/spi/spi-phytium.c: In function ‘phytium_spi_suspend_host’: drivers/spi/spi-phytium.c:478:41: error: passing argument 1 of ‘spi_controller_suspend’ from incompatible pointer type [-Werror=incompatible-pointer-types] 478 | ret = spi_controller_suspend(fts->master); | ~~~^~~~~~~~ | | | struct spi_master * ./include/linux/spi/spi.h:815:58: note: expected ‘struct spi_controller *’ but argument is of type ‘struct spi_master *’ 815 | extern int spi_controller_suspend(struct spi_controller *ctlr); | ~~~~~~~~~~~~~~~~~~~~~~~^~~~ drivers/spi/spi-phytium.c: In function ‘phytium_spi_resume_host’: drivers/spi/spi-phytium.c:491:33: error: invalid use of undefined type ‘struct spi_master’ 491 | spi_hw_init(&fts->master->dev, fts); | ^~ make[7]: *** [scripts/Makefile.build:244:drivers/spi/spi-phytium-dma.o] 错误 1 make[7]: *** 正在等待未完成的任务.... drivers/spi/spi-phytium.c:492:37: error: ‘spi_controller’ undeclared (first use in this function) 492 | ret = spi_controller_resume(spi_controller); | ^~~~~~~~~~~~~~ drivers/spi/spi-phytium.c:494:37: error: invalid use of undefined type ‘struct spi_master’ 494 | dev_err(&fts->master->dev, "fail to start queue (%d)\n", ret); | ^~ ./include/linux/dev_printk.h:110:25: note: in definition of macro ‘dev_printk_index_wrap’ 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ drivers/spi/spi-phytium.c:494:17: note: in expansion of macro ‘dev_err’ 494 | dev_err(&fts->master->dev, "fail to start queue (%d)\n", ret); | ^~~~~~~ make[7]: *** [scripts/Makefile.build:244:drivers/spi/spi-phytium-pci.o] 错误 1 cc1: all warnings being treated as errors make[7]: *** [scripts/Makefile.build:244:drivers/spi/spi-phytium.o] 错误 1 make[6]: *** [scripts/Makefile.build:485:drivers/spi] 错误 2 make[6]: *** 正在等待未完成的任务.... CHK kernel/kheaders_data.tar.xz make[5]: *** [scripts/Makefile.build:485:drivers] 错误 2 make[4]: *** [Makefile:1915:.] 错误 2 make[3]: *** [debian/rules:74:build-arch] 错误 2 dpkg-buildpackage: error: make -f debian/rules binary subprocess returned exit status 2 make[2]: *** [scripts/Makefile.package:121:bindeb-pkg] 错误 2 make[1]: *** [/root/linux/Makefile:1537:bindeb-pkg] 错误 2 make: *** [Makefile:240:__sub-make] 错误 2 root@deepinci-amd7:~/linux# ^C root@deepinci-amd7:~/linux# git checkout -- drivers root@deepinci-amd7:~/linux# make bindeb-pkg -j$(nproc) GEN debian dpkg-buildpackage --build=binary --no-pre-clean --unsigned-changes -R'make -f debian/rules' -j1 -a$(cat debian/arch) dpkg-buildpackage: info: source package linux-upstream dpkg-buildpackage: info: source version 23.01.01.01 dpkg-buildpackage: info: source distribution beige dpkg-buildpackage: info: source changed by root <root@deepinci-amd7> dpkg-buildpackage: info: host architecture amd64 dpkg-source --before-build . make -f debian/rules binary # # No change to .config # mkdir -p /root/linux/tools/objtool && make O=/root/linux subdir=tools/objtool --no-print-directory -C objtool mkdir -p /root/linux/tools/bpf/resolve_btfids && make O=/root/linux subdir=tools/bpf/resolve_btfids --no-print-directory -C bpf/resolve_btfids INSTALL libsubcmd_headers INSTALL libsubcmd_headers CALL scripts/checksyscalls.sh CC [M] drivers/spi/spi-phytium.o CC [M] drivers/spi/spi-phytium-pci.o CC [M] drivers/spi/spi-phytium-dma.o CHK kernel/kheaders_data.tar.xz drivers/spi/spi-phytium.c: In function ‘phytium_spi_set_cs’: drivers/spi/spi-phytium.c:48:35: error: implicit declaration of function ‘spi_master_get_devdata’; did you mean ‘spi_controller_get_devdata’? [-Werror=implicit-function-declaration] 48 | struct phytium_spi *fts = spi_master_get_devdata(spi->master); | ^~~~~~~~~~~~~~~~~~~~~~ | spi_controller_get_devdata drivers/spi/spi-phytium.c:48:61: error: ‘struct spi_device’ has no member named ‘master’ 48 | struct phytium_spi *fts = spi_master_get_devdata(spi->master); | ^~ In file included from ./include/linux/bits.h:6, from ./include/linux/bitops.h:6, from ./include/linux/kernel.h:23, from ./include/linux/clk.h:13, from drivers/spi/spi-phytium.c:11: ./include/vdso/bits.h:7:40: error: invalid operands to binary << (have ‘long unsigned int’ and ‘u8 *’ {aka ‘unsigned char *’}) 7 | #define BIT(nr) (UL(1) << (nr)) | ^~ | | | u8 * {aka unsigned char *} drivers/spi/spi-phytium.c:56:42: note: in expansion of macro ‘BIT’ 56 | phytium_writel(fts, SER, BIT(spi->chip_select)); | ^~~ drivers/spi/spi-phytium.c:59:63: error: invalid operands to binary << (have ‘int’ and ‘u8 *’ {aka ‘unsigned char *’}) 59 | phytium_writel(fts, GCSR, origin | (1 << spi->chip_select)); | ^~ | | | u8 * {aka unsigned char *} drivers/spi/spi-phytium.c:64:64: error: invalid operands to binary << (have ‘int’ and ‘u8 *’ {aka ‘unsigned char *’}) 64 | phytium_writel(fts, GCSR, origin & ~(1 << spi->chip_select)); | ^~ | | | u8 * {aka unsigned char *} In file included from ./include/linux/device.h:15, from ./include/linux/platform_device.h:13, from drivers/spi/spi-phytium.c:17: drivers/spi/spi-phytium.c: In function ‘phytium_spi_check_status’: drivers/spi/spi-phytium.c:133:37: error: invalid use of undefined type ‘struct spi_master’ 133 | dev_err(&fts->master->dev, "RX FIFO overflow detected\n"); | ^~ ./include/linux/dev_printk.h:110:25: note: in definition of macro ‘dev_printk_index_wrap’ 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ drivers/spi/spi-phytium.c:133:17: note: in expansion of macro ‘dev_err’ 133 | dev_err(&fts->master->dev, "RX FIFO overflow detected\n"); | ^~~~~~~ drivers/spi/spi-phytium.c:138:37: error: invalid use of undefined type ‘struct spi_master’ 138 | dev_err(&fts->master->dev, "RX FIFO underflow detected\n"); | ^~ ./include/linux/dev_printk.h:110:25: note: in definition of macro ‘dev_printk_index_wrap’ 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ drivers/spi/spi-phytium.c:138:17: note: in expansion of macro ‘dev_err’ 138 | dev_err(&fts->master->dev, "RX FIFO underflow detected\n"); | ^~~~~~~ drivers/spi/spi-phytium.c:143:37: error: invalid use of undefined type ‘struct spi_master’ 143 | dev_err(&fts->master->dev, "TX FIFO overflow detected\n"); | ^~ ./include/linux/dev_printk.h:110:25: note: in definition of macro ‘dev_printk_index_wrap’ 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ drivers/spi/spi-phytium.c:143:17: note: in expansion of macro ‘dev_err’ 143 | dev_err(&fts->master->dev, "TX FIFO overflow detected\n"); | ^~~~~~~ drivers/spi/spi-phytium.c:150:32: error: invalid use of undefined type ‘struct spi_master’ 150 | if (fts->master->cur_msg) | ^~ drivers/spi/spi-phytium.c:151:36: error: invalid use of undefined type ‘struct spi_master’ 151 | fts->master->cur_msg->status = ret; | ^~ drivers/spi/spi-phytium.c: In function ‘int_error_stop’: drivers/spi/spi-phytium.c:161:29: error: invalid use of undefined type ‘struct spi_master’ 161 | dev_err(&fts->master->dev, "%s\n", msg); | ^~ ./include/linux/dev_printk.h:110:25: note: in definition of macro ‘dev_printk_index_wrap’ 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ drivers/spi/spi-phytium.c:161:9: note: in expansion of macro ‘dev_err’ 161 | dev_err(&fts->master->dev, "%s\n", msg); | ^~~~~~~ drivers/spi/spi-phytium.c:162:20: error: invalid use of undefined type ‘struct spi_master’ 162 | fts->master->cur_msg->status = -EIO; | ^~ drivers/spi/spi-phytium.c:163:42: error: passing argument 1 of ‘spi_finalize_current_transfer’ from incompatible pointer type [-Werror=incompatible-pointer-types] 163 | spi_finalize_current_transfer(fts->master); | ~~~^~~~~~~~ | | | struct spi_master * In file included from drivers/spi/spi-phytium.c:19: ./include/linux/spi/spi.h:821:66: note: expected ‘struct spi_controller *’ but argument is of type ‘struct spi_master *’ 821 | extern void spi_finalize_current_transfer(struct spi_controller *ctlr); | ~~~~~~~~~~~~~~~~~~~~~~~^~~~ drivers/spi/spi-phytium.c: In function ‘interrupt_transfer’: drivers/spi/spi-phytium.c:179:50: error: passing argument 1 of ‘spi_finalize_current_transfer’ from incompatible pointer type [-Werror=incompatible-pointer-types] 179 | spi_finalize_current_transfer(fts->master); | ~~~^~~~~~~~ | | | struct spi_master * ./include/linux/spi/spi.h:821:66: note: expected ‘struct spi_controller *’ but argument is of type ‘struct spi_master *’ 821 | extern void spi_finalize_current_transfer(struct spi_controller *ctlr); | ~~~~~~~~~~~~~~~~~~~~~~~^~~~ drivers/spi/spi-phytium.c: In function ‘phytium_spi_irq’: drivers/spi/spi-phytium.c:194:35: error: initialization of ‘struct phytium_spi *’ from ‘int’ makes pointer from integer without a cast [-Werror=int-conversion] 194 | struct phytium_spi *fts = spi_master_get_devdata(master); | ^~~~~~~~~~~~~~~~~~~~~~ drivers/spi/spi-phytium.c:200:20: error: invalid use of undefined type ‘struct spi_master’ 200 | if (!master->cur_msg) { | ^~ drivers/spi/spi-phytium.c: In function ‘phytium_spi_transfer_one’: drivers/spi/spi-phytium.c:225:35: error: initialization of ‘struct phytium_spi *’ from ‘int’ makes pointer from integer without a cast [-Werror=int-conversion] 225 | struct phytium_spi *fts = spi_master_get_devdata(master); | ^~~~~~~~~~~~~~~~~~~~~~ drivers/spi/spi-phytium.c:281:19: error: invalid use of undefined type ‘struct spi_master’ 281 | if (master->can_dma && master->can_dma(master, spi, transfer)) | ^~ drivers/spi/spi-phytium.c:281:38: error: invalid use of undefined type ‘struct spi_master’ 281 | if (master->can_dma && master->can_dma(master, spi, transfer)) | ^~ drivers/spi/spi-phytium.c:282:41: error: invalid use of undefined type ‘struct spi_master’ 282 | fts->dma_mapped = master->cur_msg_mapped; | ^~ drivers/spi/spi-phytium.c: In function ‘phytium_spi_handle_err’: drivers/spi/spi-phytium.c:318:35: error: initialization of ‘struct phytium_spi *’ from ‘int’ makes pointer from integer without a cast [-Werror=int-conversion] 318 | struct phytium_spi *fts = spi_master_get_devdata(master); | ^~~~~~~~~~~~~~~~~~~~~~ drivers/spi/spi-phytium.c: In function ‘phytium_spi_setup’: drivers/spi/spi-phytium.c:330:40: error: ‘struct spi_device’ has no member named ‘master’ 330 | struct spi_master *master = spi->master; | ^~ drivers/spi/spi-phytium.c:331:35: error: initialization of ‘struct phytium_spi *’ from ‘int’ makes pointer from integer without a cast [-Werror=int-conversion] 331 | struct phytium_spi *fts = spi_master_get_devdata(master); | ^~~~~~~~~~~~~~~~~~~~~~ drivers/spi/spi-phytium.c: In function ‘phytium_spi_add_host’: drivers/spi/spi-phytium.c:400:16: error: assignment to ‘struct spi_master *’ from incompatible pointer type ‘struct spi_controller *’ [-Werror=incompatible-pointer-types] 400 | master = spi_alloc_master(dev, 0); | ^ drivers/spi/spi-phytium.c:415:15: error: invalid use of undefined type ‘struct spi_master’ 415 | master->use_gpio_descriptors = true; | ^~ drivers/spi/spi-phytium.c:416:15: error: invalid use of undefined type ‘struct spi_master’ 416 | master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_LOOP; | ^~ drivers/spi/spi-phytium.c:417:15: error: invalid use of undefined type ‘struct spi_master’ 417 | master->bits_per_word_mask = SPI_BPW_MASK(8) | SPI_BPW_MASK(16); | ^~ drivers/spi/spi-phytium.c:418:15: error: invalid use of undefined type ‘struct spi_master’ 418 | master->bus_num = fts->bus_num; | ^~ drivers/spi/spi-phytium.c:419:15: error: invalid use of undefined type ‘struct spi_master’ 419 | master->num_chipselect = fts->num_cs; | ^~ drivers/spi/spi-phytium.c:420:15: error: invalid use of undefined type ‘struct spi_master’ 420 | master->setup = phytium_spi_setup; | ^~ drivers/spi/spi-phytium.c:421:15: error: invalid use of undefined type ‘struct spi_master’ 421 | master->cleanup = phytium_spi_cleanup; | ^~ drivers/spi/spi-phytium.c:422:15: error: invalid use of undefined type ‘struct spi_master’ 422 | master->set_cs = phytium_spi_set_cs; | ^~ drivers/spi/spi-phytium.c:423:15: error: invalid use of undefined type ‘struct spi_master’ 423 | master->transfer_one = phytium_spi_transfer_one; | ^~ drivers/spi/spi-phytium.c:424:15: error: invalid use of undefined type ‘struct spi_master’ 424 | master->handle_err = phytium_spi_handle_err; | ^~ drivers/spi/spi-phytium.c:425:15: error: invalid use of undefined type ‘struct spi_master’ 425 | master->max_speed_hz = fts->max_freq; | ^~ drivers/spi/spi-phytium.c:426:15: error: invalid use of undefined type ‘struct spi_master’ 426 | master->dev.of_node = dev->of_node; | ^~ drivers/spi/spi-phytium.c:427:15: error: invalid use of undefined type ‘struct spi_master’ 427 | master->dev.fwnode = dev->fwnode; | ^~ drivers/spi/spi-phytium.c:428:15: error: invalid use of undefined type ‘struct spi_master’ 428 | master->flags = SPI_CONTROLLER_GPIO_SS; | ^~ drivers/spi/spi-phytium.c:437:31: error: invalid use of undefined type ‘struct spi_master’ 437 | master->can_dma = fts->dma_ops->can_dma; | ^~ drivers/spi/spi-phytium.c:438:31: error: invalid use of undefined type ‘struct spi_master’ 438 | master->flags |= SPI_CONTROLLER_MUST_TX; | ^~ drivers/spi/spi-phytium-dma.c: In function ‘phytium_spi_dma_init’: drivers/spi/spi-phytium-dma.c:79:20: error: invalid use of undefined type ‘struct spi_master’ 79 | fts->master->dma_rx = fts->rxchan; | ^~ drivers/spi/spi-phytium-dma.c:80:20: error: invalid use of undefined type ‘struct spi_master’ 80 | fts->master->dma_tx = fts->txchan; | ^~ In file included from ./include/linux/device.h:15, from ./include/linux/dma-mapping.h:8, from drivers/spi/spi-phytium-dma.c:8: drivers/spi/spi-phytium-dma.c: In function ‘phytium_spi_dma_wait’: drivers/spi/spi-phytium-dma.c:146:37: error: invalid use of undefined type ‘struct spi_master’ 146 | dev_err(&fts->master->cur_msg->spi->dev, | ^~ ./include/linux/dev_printk.h:110:25: note: in definition of macro ‘dev_printk_index_wrap’ 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ drivers/spi/spi-phytium-dma.c:146:17: note: in expansion of macro ‘dev_err’ 146 | dev_err(&fts->master->cur_msg->spi->dev, | ^~~~~~~ drivers/spi/spi-phytium-dma.c: In function ‘phytium_spi_dma_wait_tx_done’: drivers/spi/spi-phytium-dma.c:190:37: error: invalid use of undefined type ‘struct spi_master’ 190 | dev_err(&fts->master->dev, "Tx hanged up\n"); | ^~ ./include/linux/dev_printk.h:110:25: note: in definition of macro ‘dev_printk_index_wrap’ 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ drivers/spi/spi-phytium-dma.c:190:17: note: in expansion of macro ‘dev_err’ 190 | dev_err(&fts->master->dev, "Tx hanged up\n"); | ^~~~~~~ drivers/spi/spi-phytium-dma.c: In function ‘phytium_spi_dma_wait_rx_done’: drivers/spi/spi-phytium-dma.c:283:37: error: invalid use of undefined type ‘struct spi_master’ 283 | dev_err(&fts->master->dev, "Rx hanged up, nents = %d\n", nents); | ^~ ./include/linux/dev_printk.h:110:25: note: in definition of macro ‘dev_printk_index_wrap’ 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ drivers/spi/spi-phytium-dma.c:283:17: note: in expansion of macro ‘dev_err’ 283 | dev_err(&fts->master->dev, "Rx hanged up, nents = %d\n", nents); | ^~~~~~~ drivers/spi/spi-phytium-dma.c: In function ‘phytium_spi_dma_transfer’: drivers/spi/spi-phytium-dma.c:514:24: error: invalid use of undefined type ‘struct spi_master’ 514 | if (fts->master->cur_msg->status == -EINPROGRESS) { | ^~ drivers/spi/spi-phytium-pci.c: In function ‘spi_suspend’: drivers/spi/spi-phytium-pci.c:92:35: error: implicit declaration of function ‘spi_master_get_devdata’; did you mean ‘spi_controller_get_devdata’? [-Werror=implicit-function-declaration] 92 | struct phytium_spi *fts = spi_master_get_devdata(master); | ^~~~~~~~~~~~~~~~~~~~~~ | spi_controller_get_devdata drivers/spi/spi-phytium-pci.c:92:35: error: initialization of ‘struct phytium_spi *’ from ‘int’ makes pointer from integer without a cast [-Werror=int-conversion] drivers/spi/spi-phytium-dma.c:520:40: error: invalid use of undefined type ‘struct spi_master’ 520 | if (xfer->rx_buf && fts->master->cur_msg->status == -EINPROGRESS) | ^~ drivers/spi/spi-phytium-pci.c: In function ‘spi_resume’: drivers/spi/spi-phytium-pci.c:100:35: error: initialization of ‘struct phytium_spi *’ from ‘int’ makes pointer from integer without a cast [-Werror=int-conversion] 100 | struct phytium_spi *fts = spi_master_get_devdata(master); | ^~~~~~~~~~~~~~~~~~~~~~ drivers/spi/spi-phytium.c:442:9: error: implicit declaration of function ‘spi_master_set_devdata’; did you mean ‘spi_controller_set_devdata’? [-Werror=implicit-function-declaration] 442 | spi_master_set_devdata(master, fts); | ^~~~~~~~~~~~~~~~~~~~~~ | spi_controller_set_devdata drivers/spi/spi-phytium.c:443:39: error: passing argument 1 of ‘spi_register_controller’ from incompatible pointer type [-Werror=incompatible-pointer-types] 443 | ret = spi_register_controller(master); | ^~~~~~ | | | struct spi_master * ./include/linux/spi/spi.h:899:59: note: expected ‘struct spi_controller *’ but argument is of type ‘struct spi_master *’ 899 | extern int spi_register_controller(struct spi_controller *ctlr); | ~~~~~~~~~~~~~~~~~~~~~~~^~~~ drivers/spi/spi-phytium.c:445:32: error: invalid use of undefined type ‘struct spi_master’ 445 | dev_err(&master->dev, "problem registering spi master\n"); | ^~ ./include/linux/dev_printk.h:110:25: note: in definition of macro ‘dev_printk_index_wrap’ 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ drivers/spi/spi-phytium.c:445:17: note: in expansion of macro ‘dev_err’ 445 | dev_err(&master->dev, "problem registering spi master\n"); | ^~~~~~~ make[7]: *** [scripts/Makefile.build:244:drivers/spi/spi-phytium-dma.o] 错误 1 make[7]: *** 正在等待未完成的任务.... drivers/spi/spi-phytium.c:457:9: error: implicit declaration of function ‘spi_master_put’; did you mean ‘spi_dev_put’? [-Werror=implicit-function-declaration] 457 | spi_master_put(master); | ^~~~~~~~~~~~~~ | spi_dev_put drivers/spi/spi-phytium.c: In function ‘phytium_spi_remove_host’: drivers/spi/spi-phytium.c:468:38: error: passing argument 1 of ‘spi_unregister_controller’ from incompatible pointer type [-Werror=incompatible-pointer-types] 468 | spi_unregister_controller(fts->master); | ~~~^~~~~~~~ | | | struct spi_master * ./include/linux/spi/spi.h:902:62: note: expected ‘struct spi_controller *’ but argument is of type ‘struct spi_master *’ 902 | extern void spi_unregister_controller(struct spi_controller *ctlr); | ~~~~~~~~~~~~~~~~~~~~~~~^~~~ drivers/spi/spi-phytium.c: In function ‘phytium_spi_suspend_host’: drivers/spi/spi-phytium.c:478:41: error: passing argument 1 of ‘spi_controller_suspend’ from incompatible pointer type [-Werror=incompatible-pointer-types] 478 | ret = spi_controller_suspend(fts->master); | ~~~^~~~~~~~ | | | struct spi_master * ./include/linux/spi/spi.h:815:58: note: expected ‘struct spi_controller *’ but argument is of type ‘struct spi_master *’ 815 | extern int spi_controller_suspend(struct spi_controller *ctlr); | ~~~~~~~~~~~~~~~~~~~~~~~^~~~ cc1: all warnings being treated as errors drivers/spi/spi-phytium.c: In function ‘phytium_spi_resume_host’: drivers/spi/spi-phytium.c:491:33: error: invalid use of undefined type ‘struct spi_master’ 491 | spi_hw_init(&fts->master->dev, fts); | ^~ drivers/spi/spi-phytium.c:492:40: error: passing argument 1 of ‘spi_controller_resume’ from incompatible pointer type [-Werror=incompatible-pointer-types] 492 | ret = spi_controller_resume(fts->master); | ~~~^~~~~~~~ | | | struct spi_master * ./include/linux/spi/spi.h:816:57: note: expected ‘struct spi_controller *’ but argument is of type ‘struct spi_master *’ 816 | extern int spi_controller_resume(struct spi_controller *ctlr); | ~~~~~~~~~~~~~~~~~~~~~~~^~~~ drivers/spi/spi-phytium.c:494:37: error: invalid use of undefined type ‘struct spi_master’ 494 | dev_err(&fts->master->dev, "fail to start queue (%d)\n", ret); | ^~ ./include/linux/dev_printk.h:110:25: note: in definition of macro ‘dev_printk_index_wrap’ 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ drivers/spi/spi-phytium.c:494:17: note: in expansion of macro ‘dev_err’ 494 | dev_err(&fts->master->dev, "fail to start queue (%d)\n", ret); | ^~~~~~~ cc1: all warnings being treated as errors make[7]: *** [scripts/Makefile.build:244:drivers/spi/spi-phytium-pci.o] 错误 1 make[7]: *** [scripts/Makefile.build:244:drivers/spi/spi-phytium.o] 错误 1 make[6]: *** [scripts/Makefile.build:485:drivers/spi] 错误 2 make[6]: *** 正在等待未完成的任务.... make[5]: *** [scripts/Makefile.build:485:drivers] 错误 2 make[4]: *** [Makefile:1915:.] 错误 2 make[3]: *** [debian/rules:74:build-arch] 错误 2 dpkg-buildpackage: error: make -f debian/rules binary subprocess returned exit status 2 make[2]: *** [scripts/Makefile.package:121:bindeb-pkg] 错误 2 make[1]: *** [/root/linux/Makefile:1537:bindeb-pkg] 错误 2 make: *** [Makefile:240:__sub-make] 错误 2
详见日志(需要进行移植适配):