Skip to content

【6.9】飞腾 SPI 驱动无法构建 #2

@MingcongBai

Description

@MingcongBai

详见日志(需要进行移植适配):

  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 functionphytium_spi_set_cs’:
./include/vdso/bits.h:7:40: error: invalid operands to binary << (have ‘long unsigned intandu8 *’ {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 macroBIT56 |                 phytium_writel(fts, SER, BIT(spi->chip_select));
      |                                          ^~~
drivers/spi/spi-phytium.c:59:63: error: invalid operands to binary << (haveintandu8 *’ {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 << (haveintandu8 *’ {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 functionphytium_spi_check_status’:
drivers/spi/spi-phytium.c:133:37: error: invalid use of undefined typestruct spi_master133 |                 dev_err(&fts->master->dev, "RX FIFO overflow detected\n");
      |                                     ^~
./include/linux/dev_printk.h:110:25: note: in definition of macrodev_printk_index_wrap110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
      |                         ^~~
drivers/spi/spi-phytium.c:133:17: note: in expansion of macrodev_err133 |                 dev_err(&fts->master->dev, "RX FIFO overflow detected\n");
      |                 ^~~~~~~
drivers/spi/spi-phytium.c:138:37: error: invalid use of undefined typestruct spi_master138 |                 dev_err(&fts->master->dev, "RX FIFO underflow detected\n");
      |                                     ^~
./include/linux/dev_printk.h:110:25: note: in definition of macrodev_printk_index_wrap110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
      |                         ^~~
drivers/spi/spi-phytium.c:138:17: note: in expansion of macrodev_err138 |                 dev_err(&fts->master->dev, "RX FIFO underflow detected\n");
      |                 ^~~~~~~
drivers/spi/spi-phytium.c:143:37: error: invalid use of undefined typestruct spi_master143 |                 dev_err(&fts->master->dev, "TX FIFO overflow detected\n");
      |                                     ^~
./include/linux/dev_printk.h:110:25: note: in definition of macrodev_printk_index_wrap110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
      |                         ^~~
drivers/spi/spi-phytium.c:143:17: note: in expansion of macrodev_err143 |                 dev_err(&fts->master->dev, "TX FIFO overflow detected\n");
      |                 ^~~~~~~
drivers/spi/spi-phytium.c:150:32: error: invalid use of undefined typestruct spi_master150 |                 if (fts->master->cur_msg)
      |                                ^~
drivers/spi/spi-phytium.c:151:36: error: invalid use of undefined typestruct spi_master151 |                         fts->master->cur_msg->status = ret;
      |                                    ^~
drivers/spi/spi-phytium.c: In functionint_error_stop’:
drivers/spi/spi-phytium.c:161:29: error: invalid use of undefined typestruct spi_master161 |         dev_err(&fts->master->dev, "%s\n", msg);
      |                             ^~
./include/linux/dev_printk.h:110:25: note: in definition of macrodev_printk_index_wrap110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
      |                         ^~~
drivers/spi/spi-phytium.c:161:9: note: in expansion of macrodev_err161 |         dev_err(&fts->master->dev, "%s\n", msg);
      |         ^~~~~~~
drivers/spi/spi-phytium.c:162:20: error: invalid use of undefined typestruct spi_master162 |         fts->master->cur_msg->status = -EIO;
      |                    ^~
drivers/spi/spi-phytium.c:163:42: error: passing argument 1 ofspi_finalize_current_transferfrom 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: expectedstruct spi_controller *but argument is of typestruct spi_master *821 | extern void spi_finalize_current_transfer(struct spi_controller *ctlr);
      |                                           ~~~~~~~~~~~~~~~~~~~~~~~^~~~
drivers/spi/spi-phytium.c: In functioninterrupt_transfer’:
drivers/spi/spi-phytium.c:179:50: error: passing argument 1 ofspi_finalize_current_transferfrom 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: expectedstruct spi_controller *but argument is of typestruct spi_master *821 | extern void spi_finalize_current_transfer(struct spi_controller *ctlr);
      |                                           ~~~~~~~~~~~~~~~~~~~~~~~^~~~
drivers/spi/spi-phytium.c: In functionphytium_spi_irq’:
drivers/spi/spi-phytium.c:194:62: error: ‘controllerundeclared (first use in this function); did you meanspi_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 functionphytium_spi_dma_init’:
drivers/spi/spi-phytium-dma.c:79:20: error: invalid use of undefined typestruct spi_master79 |         fts->master->dma_rx = fts->rxchan;
      |                    ^~
drivers/spi/spi-phytium.c:200:20: error: invalid use of undefined typestruct spi_master200 |         if (!master->cur_msg) {
      |                    ^~
drivers/spi/spi-phytium-dma.c:80:20: error: invalid use of undefined typestruct spi_master80 |         fts->master->dma_tx = fts->txchan;
      |                    ^~
drivers/spi/spi-phytium.c: In functionphytium_spi_transfer_one’:
drivers/spi/spi-phytium.c:225:62: error: passing argument 1 ofspi_controller_get_devdatafrom 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: expectedstruct spi_controller *but argument is of typestruct 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 functionphytium_spi_dma_wait’:
drivers/spi/spi-phytium-dma.c:146:37: error: invalid use of undefined typestruct spi_master146 |                 dev_err(&fts->master->cur_msg->spi->dev,
      |                                     ^~
./include/linux/dev_printk.h:110:25: note: in definition of macrodev_printk_index_wrap110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
      |                         ^~~
drivers/spi/spi-phytium-dma.c:146:17: note: in expansion of macrodev_err146 |                 dev_err(&fts->master->cur_msg->spi->dev,
      |                 ^~~~~~~
drivers/spi/spi-phytium.c:281:19: error: invalid use of undefined typestruct spi_master281 |         if (master->can_dma && master->can_dma(master, spi, transfer))
      |                   ^~
drivers/spi/spi-phytium.c:281:38: error: invalid use of undefined typestruct spi_master281 |         if (master->can_dma && master->can_dma(master, spi, transfer))
      |                                      ^~
drivers/spi/spi-phytium.c:282:41: error: invalid use of undefined typestruct spi_master282 |                 fts->dma_mapped = master->cur_msg_mapped;
      |                                         ^~
drivers/spi/spi-phytium-dma.c: In functionphytium_spi_dma_wait_tx_done’:
drivers/spi/spi-phytium-dma.c:190:37: error: invalid use of undefined typestruct spi_master190 |                 dev_err(&fts->master->dev, "Tx hanged up\n");
      |                                     ^~
./include/linux/dev_printk.h:110:25: note: in definition of macrodev_printk_index_wrap110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
      |                         ^~~
drivers/spi/spi-phytium-dma.c:190:17: note: in expansion of macrodev_err190 |                 dev_err(&fts->master->dev, "Tx hanged up\n");
      |                 ^~~~~~~
drivers/spi/spi-phytium-dma.c: In functionphytium_spi_dma_wait_rx_done’:
drivers/spi/spi-phytium.c: In functionphytium_spi_handle_err’:
drivers/spi/spi-phytium.c:318:62: error: passing argument 1 ofspi_controller_get_devdatafrom 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: expectedstruct spi_controller *but argument is of typestruct 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 typestruct spi_master283 |                 dev_err(&fts->master->dev, "Rx hanged up, nents = %d\n", nents);
      |                                     ^~
./include/linux/dev_printk.h:110:25: note: in definition of macrodev_printk_index_wrap110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
      |                         ^~~
drivers/spi/spi-phytium-dma.c:283:17: note: in expansion of macrodev_err283 |                 dev_err(&fts->master->dev, "Rx hanged up, nents = %d\n", nents);
      |                 ^~~~~~~
drivers/spi/spi-phytium.c: In functionphytium_spi_setup’:
drivers/spi/spi-phytium.c:330:40: error: ‘struct spi_devicehas no member namedmaster330 |         struct spi_master *master = spi->master;
      |                                        ^~
drivers/spi/spi-phytium.c:331:62: error: passing argument 1 ofspi_controller_get_devdatafrom 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: expectedstruct spi_controller *but argument is of typestruct spi_master *780 | static inline void *spi_controller_get_devdata(struct spi_controller *ctlr)
      |                                                ~~~~~~~~~~~~~~~~~~~~~~~^~~~
drivers/spi/spi-phytium.c: In functionphytium_spi_add_host’:
drivers/spi/spi-phytium.c:400:16: error: assignment tostruct spi_master *from incompatible pointer typestruct 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 typestruct spi_master415 |         master->use_gpio_descriptors = true;
      |               ^~
drivers/spi/spi-phytium.c:416:15: error: invalid use of undefined typestruct spi_master416 |         master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_LOOP;
      |               ^~
drivers/spi/spi-phytium.c:417:15: error: invalid use of undefined typestruct spi_master417 |         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 typestruct spi_master418 |         master->bus_num = fts->bus_num;
      |               ^~
drivers/spi/spi-phytium.c:419:15: error: invalid use of undefined typestruct spi_master419 |         master->num_chipselect = fts->num_cs;
      |               ^~
drivers/spi/spi-phytium.c:420:15: error: invalid use of undefined typestruct spi_master420 |         master->setup = phytium_spi_setup;
      |               ^~
drivers/spi/spi-phytium.c:421:15: error: invalid use of undefined typestruct spi_master421 |         master->cleanup = phytium_spi_cleanup;
      |               ^~
drivers/spi/spi-phytium.c:422:15: error: invalid use of undefined typestruct spi_master422 |         master->set_cs = phytium_spi_set_cs;
      |               ^~
drivers/spi/spi-phytium.c:423:15: error: invalid use of undefined typestruct spi_master423 |         master->transfer_one = phytium_spi_transfer_one;
      |               ^~
drivers/spi/spi-phytium.c:424:15: error: invalid use of undefined typestruct spi_master424 |         master->handle_err = phytium_spi_handle_err;
      |               ^~
drivers/spi/spi-phytium.c:425:15: error: invalid use of undefined typestruct spi_master425 |         master->max_speed_hz = fts->max_freq;
      |               ^~
drivers/spi/spi-phytium.c:426:15: error: invalid use of undefined typestruct spi_master426 |         master->dev.of_node = dev->of_node;
      |               ^~
drivers/spi/spi-phytium.c:427:15: error: invalid use of undefined typestruct spi_master427 |         master->dev.fwnode = dev->fwnode;
      |               ^~
drivers/spi/spi-phytium.c:428:15: error: invalid use of undefined typestruct spi_master428 |         master->flags = SPI_CONTROLLER_GPIO_SS;
      |               ^~
drivers/spi/spi-phytium.c:437:31: error: invalid use of undefined typestruct spi_master437 |                         master->can_dma = fts->dma_ops->can_dma;
      |                               ^~
drivers/spi/spi-phytium.c:438:31: error: invalid use of undefined typestruct spi_master438 |                         master->flags |= SPI_CONTROLLER_MUST_TX;
      |                               ^~
drivers/spi/spi-phytium.c:442:36: error: passing argument 1 ofspi_controller_set_devdatafrom 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: expectedstruct spi_controller *but argument is of typestruct 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 ofspi_register_controllerfrom incompatible pointer type [-Werror=incompatible-pointer-types]
  443 |         ret = spi_register_controller(master);
      |                                       ^~~~~~
      |                                       |
      |                                       struct spi_master *
./include/linux/spi/spi.h:899:59: note: expectedstruct spi_controller *but argument is of typestruct spi_master *899 | extern int spi_register_controller(struct spi_controller *ctlr);
      |                                    ~~~~~~~~~~~~~~~~~~~~~~~^~~~
drivers/spi/spi-phytium.c:445:32: error: invalid use of undefined typestruct spi_master445 |                 dev_err(&master->dev, "problem registering spi master\n");
      |                                ^~
./include/linux/dev_printk.h:110:25: note: in definition of macrodev_printk_index_wrap110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
      |                         ^~~
drivers/spi/spi-phytium.c:445:17: note: in expansion of macrodev_err445 |                 dev_err(&master->dev, "problem registering spi master\n");
      |                 ^~~~~~~
drivers/spi/spi-phytium-dma.c: In functionphytium_spi_dma_transfer’:
drivers/spi/spi-phytium-dma.c:514:24: error: invalid use of undefined typestruct spi_master514 |         if (fts->master->cur_msg->status == -EINPROGRESS) {
      |                        ^~
drivers/spi/spi-phytium-dma.c:520:40: error: invalid use of undefined typestruct spi_master520 |         if (xfer->rx_buf && fts->master->cur_msg->status == -EINPROGRESS)
      |                                        ^~
drivers/spi/spi-phytium-pci.c: In functionspi_suspend’:
drivers/spi/spi-phytium-pci.c:92:62: error: ‘controllerundeclared (first use in this function); did you meanspi_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 variablemaster’ [-Werror=unused-variable]
   91 |         struct spi_master *master = dev_get_drvdata(dev);
      |                            ^~~~~~
drivers/spi/spi-phytium-pci.c: In functionspi_resume’:
drivers/spi/spi-phytium-pci.c:100:62: error: ‘spi_controllerundeclared (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 variablemaster’ [-Werror=unused-variable]
   99 |         struct spi_master *master = dev_get_drvdata(dev);
      |                            ^~~~~~
drivers/spi/spi-phytium.c:457:9: error: implicit declaration of functionspi_master_put’; did you meanspi_dev_put’? [-Werror=implicit-function-declaration]
  457 |         spi_master_put(master);
      |         ^~~~~~~~~~~~~~
      |         spi_dev_put
drivers/spi/spi-phytium.c: In functionphytium_spi_remove_host’:
drivers/spi/spi-phytium.c:468:38: error: passing argument 1 ofspi_unregister_controllerfrom incompatible pointer type [-Werror=incompatible-pointer-types]
  468 |         spi_unregister_controller(fts->master);
      |                                   ~~~^~~~~~~~
      |                                      |
      |                                      struct spi_master *
./include/linux/spi/spi.h:902:62: note: expectedstruct spi_controller *but argument is of typestruct spi_master *902 | extern void spi_unregister_controller(struct spi_controller *ctlr);
      |                                       ~~~~~~~~~~~~~~~~~~~~~~~^~~~
drivers/spi/spi-phytium.c: In functionphytium_spi_suspend_host’:
drivers/spi/spi-phytium.c:478:41: error: passing argument 1 ofspi_controller_suspendfrom 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: expectedstruct spi_controller *but argument is of typestruct spi_master *815 | extern int spi_controller_suspend(struct spi_controller *ctlr);
      |                                   ~~~~~~~~~~~~~~~~~~~~~~~^~~~
drivers/spi/spi-phytium.c: In functionphytium_spi_resume_host’:
drivers/spi/spi-phytium.c:491:33: error: invalid use of undefined typestruct spi_master491 |         spi_hw_init(&fts->master->dev, fts);
      |                                 ^~
drivers/spi/spi-phytium.c:492:40: error: passing argument 1 ofspi_controller_resumefrom 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: expectedstruct spi_controller *but argument is of typestruct spi_master *816 | extern int spi_controller_resume(struct spi_controller *ctlr);
      |                                  ~~~~~~~~~~~~~~~~~~~~~~~^~~~
drivers/spi/spi-phytium.c:494:37: error: invalid use of undefined typestruct spi_master494 |                 dev_err(&fts->master->dev, "fail to start queue (%d)\n", ret);
      |                                     ^~
./include/linux/dev_printk.h:110:25: note: in definition of macrodev_printk_index_wrap110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
      |                         ^~~
drivers/spi/spi-phytium.c:494:17: note: in expansion of macrodev_err494 |                 dev_err(&fts->master->dev, "fail to start queue (%d)\n", ret);
      |                 ^~~~~~~
cc1: all warnings being treated as errors
make[7]: *** [scripts/Makefile.build:244drivers/spi/spi-phytium-dma.o] 错误 1
make[7]: *** 正在等待未完成的任务....
cc1: all warnings being treated as errors
make[7]: *** [scripts/Makefile.build:244drivers/spi/spi-phytium-pci.o] 错误 1
make[7]: *** [scripts/Makefile.build:244drivers/spi/spi-phytium.o] 错误 1
make[6]: *** [scripts/Makefile.build:485drivers/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 functionphytium_spi_set_cs’:
./include/vdso/bits.h:7:40: error: invalid operands to binary << (have ‘long unsigned intandu8 *’ {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 macroBIT56 |                 phytium_writel(fts, SER, BIT(spi->chip_select));
      |                                          ^~~
drivers/spi/spi-phytium.c:59:63: error: invalid operands to binary << (haveintandu8 *’ {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 << (haveintandu8 *’ {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 functionphytium_spi_check_status’:
drivers/spi/spi-phytium.c:133:37: error: invalid use of undefined typestruct spi_master133 |                 dev_err(&fts->master->dev, "RX FIFO overflow detected\n");
      |                                     ^~
./include/linux/dev_printk.h:110:25: note: in definition of macrodev_printk_index_wrap110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
      |                         ^~~
drivers/spi/spi-phytium.c:133:17: note: in expansion of macrodev_err133 |                 dev_err(&fts->master->dev, "RX FIFO overflow detected\n");
      |                 ^~~~~~~
drivers/spi/spi-phytium.c:138:37: error: invalid use of undefined typestruct spi_master138 |                 dev_err(&fts->master->dev, "RX FIFO underflow detected\n");
      |                                     ^~
./include/linux/dev_printk.h:110:25: note: in definition of macrodev_printk_index_wrap110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
      |                         ^~~
drivers/spi/spi-phytium.c:138:17: note: in expansion of macrodev_err138 |                 dev_err(&fts->master->dev, "RX FIFO underflow detected\n");
      |                 ^~~~~~~
drivers/spi/spi-phytium.c:143:37: error: invalid use of undefined typestruct spi_master143 |                 dev_err(&fts->master->dev, "TX FIFO overflow detected\n");
      |                                     ^~
./include/linux/dev_printk.h:110:25: note: in definition of macrodev_printk_index_wrap110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
      |                         ^~~
drivers/spi/spi-phytium.c:143:17: note: in expansion of macrodev_err143 |                 dev_err(&fts->master->dev, "TX FIFO overflow detected\n");
      |                 ^~~~~~~
drivers/spi/spi-phytium.c:150:32: error: invalid use of undefined typestruct spi_master150 |                 if (fts->master->cur_msg)
      |                                ^~
drivers/spi/spi-phytium.c:151:36: error: invalid use of undefined typestruct spi_master151 |                         fts->master->cur_msg->status = ret;
      |                                    ^~
drivers/spi/spi-phytium.c: In functionint_error_stop’:
drivers/spi/spi-phytium.c:161:29: error: invalid use of undefined typestruct spi_master161 |         dev_err(&fts->master->dev, "%s\n", msg);
      |                             ^~
./include/linux/dev_printk.h:110:25: note: in definition of macrodev_printk_index_wrap110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
      |                         ^~~
drivers/spi/spi-phytium.c:161:9: note: in expansion of macrodev_err161 |         dev_err(&fts->master->dev, "%s\n", msg);
      |         ^~~~~~~
drivers/spi/spi-phytium.c:162:20: error: invalid use of undefined typestruct spi_master162 |         fts->master->cur_msg->status = -EIO;
      |                    ^~
drivers/spi/spi-phytium.c:163:42: error: passing argument 1 ofspi_finalize_current_transferfrom 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: expectedstruct spi_controller *but argument is of typestruct spi_master *821 | extern void spi_finalize_current_transfer(struct spi_controller *ctlr);
      |                                           ~~~~~~~~~~~~~~~~~~~~~~~^~~~
drivers/spi/spi-phytium.c: In functioninterrupt_transfer’:
drivers/spi/spi-phytium.c:179:50: error: passing argument 1 ofspi_finalize_current_transferfrom 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: expectedstruct spi_controller *but argument is of typestruct spi_master *821 | extern void spi_finalize_current_transfer(struct spi_controller *ctlr);
      |                                           ~~~~~~~~~~~~~~~~~~~~~~~^~~~
drivers/spi/spi-phytium.c: In functionphytium_spi_irq’:
drivers/spi/spi-phytium.c:194:62: error: ‘controllerundeclared (first use in this function); did you meanspi_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 typestruct spi_master200 |         if (!master->cur_msg) {
      |                    ^~
drivers/spi/spi-phytium.c: In functionphytium_spi_transfer_one’:
drivers/spi/spi-phytium.c:225:62: error: passing argument 1 ofspi_controller_get_devdatafrom 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: expectedstruct spi_controller *but argument is of typestruct 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 typestruct spi_master281 |         if (master->can_dma && master->can_dma(master, spi, transfer))
      |                   ^~
drivers/spi/spi-phytium.c:281:38: error: invalid use of undefined typestruct spi_master281 |         if (master->can_dma && master->can_dma(master, spi, transfer))
      |                                      ^~
drivers/spi/spi-phytium.c:282:41: error: invalid use of undefined typestruct spi_master282 |                 fts->dma_mapped = master->cur_msg_mapped;
      |                                         ^~
drivers/spi/spi-phytium.c: In functionphytium_spi_handle_err’:
drivers/spi/spi-phytium.c:318:62: error: passing argument 1 ofspi_controller_get_devdatafrom 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: expectedstruct spi_controller *but argument is of typestruct spi_master *780 | static inline void *spi_controller_get_devdata(struct spi_controller *ctlr)
      |                                                ~~~~~~~~~~~~~~~~~~~~~~~^~~~
drivers/spi/spi-phytium.c: In functionphytium_spi_setup’:
drivers/spi/spi-phytium.c:330:40: error: ‘struct spi_devicehas no member namedmaster330 |         struct spi_master *master = spi->master;
      |                                        ^~
drivers/spi/spi-phytium.c:331:62: error: passing argument 1 ofspi_controller_get_devdatafrom 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: expectedstruct spi_controller *but argument is of typestruct spi_master *780 | static inline void *spi_controller_get_devdata(struct spi_controller *ctlr)
      |                                                ~~~~~~~~~~~~~~~~~~~~~~~^~~~
drivers/spi/spi-phytium.c: In functionphytium_spi_add_host’:
drivers/spi/spi-phytium.c:400:16: error: assignment tostruct spi_master *from incompatible pointer typestruct 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 typestruct spi_master415 |         master->use_gpio_descriptors = true;
      |               ^~
drivers/spi/spi-phytium.c:416:15: error: invalid use of undefined typestruct spi_master416 |         master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_LOOP;
      |               ^~
drivers/spi/spi-phytium.c:417:15: error: invalid use of undefined typestruct spi_master417 |         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 typestruct spi_master418 |         master->bus_num = fts->bus_num;
      |               ^~
drivers/spi/spi-phytium.c:419:15: error: invalid use of undefined typestruct spi_master419 |         master->num_chipselect = fts->num_cs;
      |               ^~
drivers/spi/spi-phytium.c:420:15: error: invalid use of undefined typestruct spi_master420 |         master->setup = phytium_spi_setup;
      |               ^~
drivers/spi/spi-phytium.c:421:15: error: invalid use of undefined typestruct spi_master421 |         master->cleanup = phytium_spi_cleanup;
      |               ^~
drivers/spi/spi-phytium.c:422:15: error: invalid use of undefined typestruct spi_master422 |         master->set_cs = phytium_spi_set_cs;
      |               ^~
drivers/spi/spi-phytium.c:423:15: error: invalid use of undefined typestruct spi_master423 |         master->transfer_one = phytium_spi_transfer_one;
      |               ^~
drivers/spi/spi-phytium.c:424:15: error: invalid use of undefined typestruct spi_master424 |         master->handle_err = phytium_spi_handle_err;
      |               ^~
drivers/spi/spi-phytium.c:425:15: error: invalid use of undefined typestruct spi_master425 |         master->max_speed_hz = fts->max_freq;
      |               ^~
drivers/spi/spi-phytium.c:426:15: error: invalid use of undefined typestruct spi_master426 |         master->dev.of_node = dev->of_node;
      |               ^~
drivers/spi/spi-phytium.c:427:15: error: invalid use of undefined typestruct spi_master427 |         master->dev.fwnode = dev->fwnode;
      |               ^~
drivers/spi/spi-phytium.c:428:15: error: invalid use of undefined typestruct spi_master428 |         master->flags = SPI_CONTROLLER_GPIO_SS;
      |               ^~
drivers/spi/spi-phytium.c:437:31: error: invalid use of undefined typestruct spi_master437 |                         master->can_dma = fts->dma_ops->can_dma;
      |                               ^~
drivers/spi/spi-phytium.c:438:31: error: invalid use of undefined typestruct spi_master438 |                         master->flags |= SPI_CONTROLLER_MUST_TX;
      |                               ^~
drivers/spi/spi-phytium.c:442:36: error: passing argument 1 ofspi_controller_set_devdatafrom 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: expectedstruct spi_controller *but argument is of typestruct 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 ofspi_register_controllerfrom incompatible pointer type [-Werror=incompatible-pointer-types]
  443 |         ret = spi_register_controller(master);
      |                                       ^~~~~~
      |                                       |
      |                                       struct spi_master *
./include/linux/spi/spi.h:899:59: note: expectedstruct spi_controller *but argument is of typestruct spi_master *899 | extern int spi_register_controller(struct spi_controller *ctlr);
      |                                    ~~~~~~~~~~~~~~~~~~~~~~~^~~~
drivers/spi/spi-phytium.c:445:32: error: invalid use of undefined typestruct spi_master445 |                 dev_err(&master->dev, "problem registering spi master\n");
      |                                ^~
./include/linux/dev_printk.h:110:25: note: in definition of macrodev_printk_index_wrap110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
      |                         ^~~
drivers/spi/spi-phytium.c:445:17: note: in expansion of macrodev_err445 |                 dev_err(&master->dev, "problem registering spi master\n");
      |                 ^~~~~~~
drivers/spi/spi-phytium-pci.c: In functionspi_suspend’:
drivers/spi/spi-phytium-pci.c:92:62: error: ‘controllerundeclared (first use in this function); did you meanspi_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 variablemaster’ [-Werror=unused-variable]
   91 |         struct spi_master *master = dev_get_drvdata(dev);
      |                            ^~~~~~
drivers/spi/spi-phytium-dma.c: In functionphytium_spi_dma_init’:
drivers/spi/spi-phytium-dma.c:79:20: error: invalid use of undefined typestruct spi_master79 |         fts->master->dma_rx = fts->rxchan;
      |                    ^~
drivers/spi/spi-phytium-dma.c:80:20: error: invalid use of undefined typestruct spi_master80 |         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 functionphytium_spi_dma_wait’:
drivers/spi/spi-phytium-dma.c:146:37: error: invalid use of undefined typestruct spi_master146 |                 dev_err(&fts->master->cur_msg->spi->dev,
      |                                     ^~
./include/linux/dev_printk.h:110:25: note: in definition of macrodev_printk_index_wrap110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
      |                         ^~~
drivers/spi/spi-phytium-dma.c:146:17: note: in expansion of macrodev_err146 |                 dev_err(&fts->master->cur_msg->spi->dev,
      |                 ^~~~~~~
drivers/spi/spi-phytium-dma.c: In functionphytium_spi_dma_wait_tx_done’:
drivers/spi/spi-phytium-dma.c:190:37: error: invalid use of undefined typestruct spi_master190 |                 dev_err(&fts->master->dev, "Tx hanged up\n");
      |                                     ^~
./include/linux/dev_printk.h:110:25: note: in definition of macrodev_printk_index_wrap110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
      |                         ^~~
drivers/spi/spi-phytium-dma.c:190:17: note: in expansion of macrodev_err190 |                 dev_err(&fts->master->dev, "Tx hanged up\n");
      |                 ^~~~~~~
drivers/spi/spi-phytium-dma.c: In functionphytium_spi_dma_wait_rx_done’:
drivers/spi/spi-phytium-dma.c:283:37: error: invalid use of undefined typestruct spi_master283 |                 dev_err(&fts->master->dev, "Rx hanged up, nents = %d\n", nents);
      |                                     ^~
./include/linux/dev_printk.h:110:25: note: in definition of macrodev_printk_index_wrap110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
      |                         ^~~
drivers/spi/spi-phytium-dma.c:283:17: note: in expansion of macrodev_err283 |                 dev_err(&fts->master->dev, "Rx hanged up, nents = %d\n", nents);
      |                 ^~~~~~~
drivers/spi/spi-phytium.c:457:9: error: implicit declaration of functionspi_master_put’; did you meanspi_dev_put’? [-Werror=implicit-function-declaration]
  457 |         spi_master_put(master);
      |         ^~~~~~~~~~~~~~
      |         spi_dev_put
drivers/spi/spi-phytium.c: In functionphytium_spi_remove_host’:
drivers/spi/spi-phytium-pci.c: In functionspi_resume’:
drivers/spi/spi-phytium-pci.c:100:62: error: ‘spi_controllerundeclared (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 variablemaster’ [-Werror=unused-variable]
   99 |         struct spi_master *master = dev_get_drvdata(dev);
      |                            ^~~~~~
drivers/spi/spi-phytium.c:468:38: error: passing argument 1 ofspi_unregister_controllerfrom incompatible pointer type [-Werror=incompatible-pointer-types]
  468 |         spi_unregister_controller(fts->master);
      |                                   ~~~^~~~~~~~
      |                                      |
      |                                      struct spi_master *
./include/linux/spi/spi.h:902:62: note: expectedstruct spi_controller *but argument is of typestruct spi_master *902 | extern void spi_unregister_controller(struct spi_controller *ctlr);
      |                                       ~~~~~~~~~~~~~~~~~~~~~~~^~~~
drivers/spi/spi-phytium.c: In functionphytium_spi_suspend_host’:
drivers/spi/spi-phytium.c:478:41: error: passing argument 1 ofspi_controller_suspendfrom 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: expectedstruct spi_controller *but argument is of typestruct spi_master *815 | extern int spi_controller_suspend(struct spi_controller *ctlr);
      |                                   ~~~~~~~~~~~~~~~~~~~~~~~^~~~
drivers/spi/spi-phytium.c: In functionphytium_spi_resume_host’:
drivers/spi/spi-phytium.c:491:33: error: invalid use of undefined typestruct spi_master491 |         spi_hw_init(&fts->master->dev, fts);
      |                                 ^~
drivers/spi/spi-phytium-dma.c: In functionphytium_spi_dma_transfer’:
drivers/spi/spi-phytium-dma.c:514:24: error: invalid use of undefined typestruct spi_master514 |         if (fts->master->cur_msg->status == -EINPROGRESS) {
      |                        ^~
drivers/spi/spi-phytium-dma.c:520:40: error: invalid use of undefined typestruct spi_master520 |         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: ‘controllerundeclared (first use in this function); did you meanspi_controller’?
  492 |         ret = spi_controller_resume(controller);
      |                                     ^~~~~~~~~~
      |                                     spi_controller
drivers/spi/spi-phytium.c:494:37: error: invalid use of undefined typestruct spi_master494 |                 dev_err(&fts->master->dev, "fail to start queue (%d)\n", ret);
      |                                     ^~
./include/linux/dev_printk.h:110:25: note: in definition of macrodev_printk_index_wrap110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
      |                         ^~~
drivers/spi/spi-phytium.c:494:17: note: in expansion of macrodev_err494 |                 dev_err(&fts->master->dev, "fail to start queue (%d)\n", ret);
      |                 ^~~~~~~
cc1: all warnings being treated as errors
make[7]: *** [scripts/Makefile.build:244drivers/spi/spi-phytium-pci.o] 错误 1
make[7]: *** 正在等待未完成的任务....
make[7]: *** [scripts/Makefile.build:244drivers/spi/spi-phytium-dma.o] 错误 1
make[7]: *** [scripts/Makefile.build:244drivers/spi/spi-phytium.o] 错误 1
make[6]: *** [scripts/Makefile.build:485drivers/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 functionphytium_spi_set_cs’:
./include/vdso/bits.h:7:40: error: invalid operands to binary << (have ‘long unsigned intandu8 *’ {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 macroBIT56 |                 phytium_writel(fts, SER, BIT(spi->chip_select));
      |                                          ^~~
drivers/spi/spi-phytium.c:59:63: error: invalid operands to binary << (haveintandu8 *’ {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 << (haveintandu8 *’ {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 functionphytium_spi_check_status’:
drivers/spi/spi-phytium.c:133:37: error: invalid use of undefined typestruct spi_master133 |                 dev_err(&fts->master->dev, "RX FIFO overflow detected\n");
      |                                     ^~
./include/linux/dev_printk.h:110:25: note: in definition of macrodev_printk_index_wrap110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
      |                         ^~~
drivers/spi/spi-phytium.c:133:17: note: in expansion of macrodev_err133 |                 dev_err(&fts->master->dev, "RX FIFO overflow detected\n");
      |                 ^~~~~~~
drivers/spi/spi-phytium.c:138:37: error: invalid use of undefined typestruct spi_master138 |                 dev_err(&fts->master->dev, "RX FIFO underflow detected\n");
      |                                     ^~
./include/linux/dev_printk.h:110:25: note: in definition of macrodev_printk_index_wrap110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
      |                         ^~~
drivers/spi/spi-phytium.c:138:17: note: in expansion of macrodev_err138 |                 dev_err(&fts->master->dev, "RX FIFO underflow detected\n");
      |                 ^~~~~~~
drivers/spi/spi-phytium.c:143:37: error: invalid use of undefined typestruct spi_master143 |                 dev_err(&fts->master->dev, "TX FIFO overflow detected\n");
      |                                     ^~
./include/linux/dev_printk.h:110:25: note: in definition of macrodev_printk_index_wrap110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
      |                         ^~~
drivers/spi/spi-phytium.c:143:17: note: in expansion of macrodev_err143 |                 dev_err(&fts->master->dev, "TX FIFO overflow detected\n");
      |                 ^~~~~~~
drivers/spi/spi-phytium.c:150:32: error: invalid use of undefined typestruct spi_master150 |                 if (fts->master->cur_msg)
      |                                ^~
drivers/spi/spi-phytium.c:151:36: error: invalid use of undefined typestruct spi_master151 |                         fts->master->cur_msg->status = ret;
      |                                    ^~
drivers/spi/spi-phytium.c: In functionint_error_stop’:
drivers/spi/spi-phytium.c:161:29: error: invalid use of undefined typestruct spi_master161 |         dev_err(&fts->master->dev, "%s\n", msg);
      |                             ^~
./include/linux/dev_printk.h:110:25: note: in definition of macrodev_printk_index_wrap110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
      |                         ^~~
drivers/spi/spi-phytium.c:161:9: note: in expansion of macrodev_err161 |         dev_err(&fts->master->dev, "%s\n", msg);
      |         ^~~~~~~
drivers/spi/spi-phytium.c:162:20: error: invalid use of undefined typestruct spi_master162 |         fts->master->cur_msg->status = -EIO;
      |                    ^~
drivers/spi/spi-phytium.c:163:42: error: passing argument 1 ofspi_finalize_current_transferfrom 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: expectedstruct spi_controller *but argument is of typestruct spi_master *821 | extern void spi_finalize_current_transfer(struct spi_controller *ctlr);
      |                                           ~~~~~~~~~~~~~~~~~~~~~~~^~~~
drivers/spi/spi-phytium.c: In functioninterrupt_transfer’:
drivers/spi/spi-phytium.c:179:50: error: passing argument 1 ofspi_finalize_current_transferfrom 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: expectedstruct spi_controller *but argument is of typestruct spi_master *821 | extern void spi_finalize_current_transfer(struct spi_controller *ctlr);
      |                                           ~~~~~~~~~~~~~~~~~~~~~~~^~~~
drivers/spi/spi-phytium-dma.c: In functionphytium_spi_dma_init’:
drivers/spi/spi-phytium-dma.c:79:20: error: invalid use of undefined typestruct spi_master79 |         fts->master->dma_rx = fts->rxchan;
      |                    ^~
drivers/spi/spi-phytium-dma.c:80:20: error: invalid use of undefined typestruct spi_master80 |         fts->master->dma_tx = fts->txchan;
      |                    ^~
drivers/spi/spi-phytium.c: In functionphytium_spi_irq’:
drivers/spi/spi-phytium.c:194:62: error: ‘controllerundeclared (first use in this function); did you meanspi_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 functionphytium_spi_dma_wait’:
drivers/spi/spi-phytium.c:200:20: error: invalid use of undefined typestruct spi_master200 |         if (!master->cur_msg) {
      |                    ^~
drivers/spi/spi-phytium-dma.c:146:37: error: invalid use of undefined typestruct spi_master146 |                 dev_err(&fts->master->cur_msg->spi->dev,
      |                                     ^~
./include/linux/dev_printk.h:110:25: note: in definition of macrodev_printk_index_wrap110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
      |                         ^~~
drivers/spi/spi-phytium-dma.c:146:17: note: in expansion of macrodev_err146 |                 dev_err(&fts->master->cur_msg->spi->dev,
      |                 ^~~~~~~
drivers/spi/spi-phytium.c: In functionphytium_spi_transfer_one’:
drivers/spi/spi-phytium.c:225:62: error: passing argument 1 ofspi_controller_get_devdatafrom 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: expectedstruct spi_controller *but argument is of typestruct spi_master *780 | static inline void *spi_controller_get_devdata(struct spi_controller *ctlr)
      |                                                ~~~~~~~~~~~~~~~~~~~~~~~^~~~
drivers/spi/spi-phytium-dma.c: In functionphytium_spi_dma_wait_tx_done’:
drivers/spi/spi-phytium-dma.c:190:37: error: invalid use of undefined typestruct spi_master190 |                 dev_err(&fts->master->dev, "Tx hanged up\n");
      |                                     ^~
./include/linux/dev_printk.h:110:25: note: in definition of macrodev_printk_index_wrap110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
      |                         ^~~
drivers/spi/spi-phytium-dma.c:190:17: note: in expansion of macrodev_err190 |                 dev_err(&fts->master->dev, "Tx hanged up\n");
      |                 ^~~~~~~
drivers/spi/spi-phytium.c:281:19: error: invalid use of undefined typestruct spi_master281 |         if (master->can_dma && master->can_dma(master, spi, transfer))
      |                   ^~
drivers/spi/spi-phytium.c:281:38: error: invalid use of undefined typestruct spi_master281 |         if (master->can_dma && master->can_dma(master, spi, transfer))
      |                                      ^~
drivers/spi/spi-phytium.c:282:41: error: invalid use of undefined typestruct spi_master282 |                 fts->dma_mapped = master->cur_msg_mapped;
      |                                         ^~
drivers/spi/spi-phytium-dma.c: In functionphytium_spi_dma_wait_rx_done’:
drivers/spi/spi-phytium-dma.c:283:37: error: invalid use of undefined typestruct spi_master283 |                 dev_err(&fts->master->dev, "Rx hanged up, nents = %d\n", nents);
      |                                     ^~
./include/linux/dev_printk.h:110:25: note: in definition of macrodev_printk_index_wrap110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
      |                         ^~~
drivers/spi/spi-phytium-dma.c:283:17: note: in expansion of macrodev_err283 |                 dev_err(&fts->master->dev, "Rx hanged up, nents = %d\n", nents);
      |                 ^~~~~~~
drivers/spi/spi-phytium.c: In functionphytium_spi_handle_err’:
drivers/spi/spi-phytium.c:318:62: error: passing argument 1 ofspi_controller_get_devdatafrom 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: expectedstruct spi_controller *but argument is of typestruct spi_master *780 | static inline void *spi_controller_get_devdata(struct spi_controller *ctlr)
      |                                                ~~~~~~~~~~~~~~~~~~~~~~~^~~~
drivers/spi/spi-phytium.c: In functionphytium_spi_setup’:
drivers/spi/spi-phytium.c:330:40: error: ‘struct spi_devicehas no member namedmaster330 |         struct spi_master *master = spi->master;
      |                                        ^~
drivers/spi/spi-phytium.c:331:62: error: passing argument 1 ofspi_controller_get_devdatafrom 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: expectedstruct spi_controller *but argument is of typestruct spi_master *780 | static inline void *spi_controller_get_devdata(struct spi_controller *ctlr)
      |                                                ~~~~~~~~~~~~~~~~~~~~~~~^~~~
drivers/spi/spi-phytium.c: In functionphytium_spi_add_host’:
drivers/spi/spi-phytium.c:400:16: error: assignment tostruct spi_master *from incompatible pointer typestruct 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 typestruct spi_master415 |         master->use_gpio_descriptors = true;
      |               ^~
drivers/spi/spi-phytium.c:416:15: error: invalid use of undefined typestruct spi_master416 |         master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_LOOP;
      |               ^~
drivers/spi/spi-phytium.c:417:15: error: invalid use of undefined typestruct spi_master417 |         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 typestruct spi_master418 |         master->bus_num = fts->bus_num;
      |               ^~
drivers/spi/spi-phytium.c:419:15: error: invalid use of undefined typestruct spi_master419 |         master->num_chipselect = fts->num_cs;
      |               ^~
drivers/spi/spi-phytium-pci.c: In functionspi_suspend’:
drivers/spi/spi-phytium.c:420:15: error: invalid use of undefined typestruct spi_master420 |         master->setup = phytium_spi_setup;
      |               ^~
drivers/spi/spi-phytium-pci.c:92:62: error: ‘controllerundeclared (first use in this function); did you meanspi_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 typestruct spi_master421 |         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 typestruct spi_master422 |         master->set_cs = phytium_spi_set_cs;
      |               ^~
drivers/spi/spi-phytium-pci.c:91:28: error: unused variablemaster’ [-Werror=unused-variable]
   91 |         struct spi_master *master = dev_get_drvdata(dev);
      |                            ^~~~~~
drivers/spi/spi-phytium.c:423:15: error: invalid use of undefined typestruct spi_master423 |         master->transfer_one = phytium_spi_transfer_one;
      |               ^~
drivers/spi/spi-phytium.c:424:15: error: invalid use of undefined typestruct spi_master424 |         master->handle_err = phytium_spi_handle_err;
      |               ^~
drivers/spi/spi-phytium.c:425:15: error: invalid use of undefined typestruct spi_master425 |         master->max_speed_hz = fts->max_freq;
      |               ^~
drivers/spi/spi-phytium.c:426:15: error: invalid use of undefined typestruct spi_master426 |         master->dev.of_node = dev->of_node;
      |               ^~
drivers/spi/spi-phytium.c:427:15: error: invalid use of undefined typestruct spi_master427 |         master->dev.fwnode = dev->fwnode;
      |               ^~
drivers/spi/spi-phytium.c:428:15: error: invalid use of undefined typestruct spi_master428 |         master->flags = SPI_CONTROLLER_GPIO_SS;
      |               ^~
drivers/spi/spi-phytium.c:437:31: error: invalid use of undefined typestruct spi_master437 |                         master->can_dma = fts->dma_ops->can_dma;
      |                               ^~
drivers/spi/spi-phytium.c:438:31: error: invalid use of undefined typestruct spi_master438 |                         master->flags |= SPI_CONTROLLER_MUST_TX;
      |                               ^~
drivers/spi/spi-phytium.c:442:36: error: passing argument 1 ofspi_controller_set_devdatafrom 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: expectedstruct spi_controller *but argument is of typestruct 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 ofspi_register_controllerfrom incompatible pointer type [-Werror=incompatible-pointer-types]
  443 |         ret = spi_register_controller(master);
      |                                       ^~~~~~
      |                                       |
      |                                       struct spi_master *
./include/linux/spi/spi.h:899:59: note: expectedstruct spi_controller *but argument is of typestruct spi_master *899 | extern int spi_register_controller(struct spi_controller *ctlr);
      |                                    ~~~~~~~~~~~~~~~~~~~~~~~^~~~
drivers/spi/spi-phytium.c:445:32: error: invalid use of undefined typestruct spi_master445 |                 dev_err(&master->dev, "problem registering spi master\n");
      |                                ^~
./include/linux/dev_printk.h:110:25: note: in definition of macrodev_printk_index_wrap110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
      |                         ^~~
drivers/spi/spi-phytium.c:445:17: note: in expansion of macrodev_err445 |                 dev_err(&master->dev, "problem registering spi master\n");
      |                 ^~~~~~~
drivers/spi/spi-phytium-dma.c: In functionphytium_spi_dma_transfer’:
drivers/spi/spi-phytium-dma.c:514:24: error: invalid use of undefined typestruct spi_master514 |         if (fts->master->cur_msg->status == -EINPROGRESS) {
      |                        ^~
drivers/spi/spi-phytium-dma.c:520:40: error: invalid use of undefined typestruct spi_master520 |         if (xfer->rx_buf && fts->master->cur_msg->status == -EINPROGRESS)
      |                                        ^~
drivers/spi/spi-phytium-pci.c: In functionspi_resume’:
drivers/spi/spi-phytium-pci.c:100:62: error: ‘spi_controllerundeclared (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 variablemaster’ [-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 functionspi_master_put’; did you meanspi_dev_put’? [-Werror=implicit-function-declaration]
  457 |         spi_master_put(master);
      |         ^~~~~~~~~~~~~~
      |         spi_dev_put
drivers/spi/spi-phytium.c: In functionphytium_spi_remove_host’:
drivers/spi/spi-phytium.c:468:38: error: passing argument 1 ofspi_unregister_controllerfrom incompatible pointer type [-Werror=incompatible-pointer-types]
  468 |         spi_unregister_controller(fts->master);
      |                                   ~~~^~~~~~~~
      |                                      |
      |                                      struct spi_master *
./include/linux/spi/spi.h:902:62: note: expectedstruct spi_controller *but argument is of typestruct spi_master *902 | extern void spi_unregister_controller(struct spi_controller *ctlr);
      |                                       ~~~~~~~~~~~~~~~~~~~~~~~^~~~
drivers/spi/spi-phytium.c: In functionphytium_spi_suspend_host’:
drivers/spi/spi-phytium.c:478:41: error: passing argument 1 ofspi_controller_suspendfrom 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: expectedstruct spi_controller *but argument is of typestruct spi_master *815 | extern int spi_controller_suspend(struct spi_controller *ctlr);
      |                                   ~~~~~~~~~~~~~~~~~~~~~~~^~~~
drivers/spi/spi-phytium.c: In functionphytium_spi_resume_host’:
drivers/spi/spi-phytium.c:491:33: error: invalid use of undefined typestruct spi_master491 |         spi_hw_init(&fts->master->dev, fts);
      |                                 ^~
make[7]: *** [scripts/Makefile.build:244drivers/spi/spi-phytium-dma.o] 错误 1
make[7]: *** 正在等待未完成的任务....
drivers/spi/spi-phytium.c:492:37: error: ‘spi_controllerundeclared (first use in this function)
  492 |         ret = spi_controller_resume(spi_controller);
      |                                     ^~~~~~~~~~~~~~
drivers/spi/spi-phytium.c:494:37: error: invalid use of undefined typestruct spi_master494 |                 dev_err(&fts->master->dev, "fail to start queue (%d)\n", ret);
      |                                     ^~
./include/linux/dev_printk.h:110:25: note: in definition of macrodev_printk_index_wrap110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
      |                         ^~~
drivers/spi/spi-phytium.c:494:17: note: in expansion of macrodev_err494 |                 dev_err(&fts->master->dev, "fail to start queue (%d)\n", ret);
      |                 ^~~~~~~
make[7]: *** [scripts/Makefile.build:244drivers/spi/spi-phytium-pci.o] 错误 1
cc1: all warnings being treated as errors
make[7]: *** [scripts/Makefile.build:244drivers/spi/spi-phytium.o] 错误 1
make[6]: *** [scripts/Makefile.build:485drivers/spi] 错误 2
make[6]: *** 正在等待未完成的任务....
  CHK     kernel/kheaders_data.tar.xz
make[5]: *** [scripts/Makefile.build:485drivers] 错误 2
make[4]: *** [Makefile:1915:.] 错误 2
make[3]: *** [debian/rules:74build-arch] 错误 2
dpkg-buildpackage: error: make -f debian/rules binary subprocess returned exit status 2
make[2]: *** [scripts/Makefile.package:121bindeb-pkg] 错误 2
make[1]: *** [/root/linux/Makefile:1537bindeb-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 functionphytium_spi_set_cs’:
drivers/spi/spi-phytium.c:48:35: error: implicit declaration of functionspi_master_get_devdata’; did you meanspi_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_devicehas no member namedmaster48 |         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 intandu8 *’ {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 macroBIT56 |                 phytium_writel(fts, SER, BIT(spi->chip_select));
      |                                          ^~~
drivers/spi/spi-phytium.c:59:63: error: invalid operands to binary << (haveintandu8 *’ {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 << (haveintandu8 *’ {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 functionphytium_spi_check_status’:
drivers/spi/spi-phytium.c:133:37: error: invalid use of undefined typestruct spi_master133 |                 dev_err(&fts->master->dev, "RX FIFO overflow detected\n");
      |                                     ^~
./include/linux/dev_printk.h:110:25: note: in definition of macrodev_printk_index_wrap110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
      |                         ^~~
drivers/spi/spi-phytium.c:133:17: note: in expansion of macrodev_err133 |                 dev_err(&fts->master->dev, "RX FIFO overflow detected\n");
      |                 ^~~~~~~
drivers/spi/spi-phytium.c:138:37: error: invalid use of undefined typestruct spi_master138 |                 dev_err(&fts->master->dev, "RX FIFO underflow detected\n");
      |                                     ^~
./include/linux/dev_printk.h:110:25: note: in definition of macrodev_printk_index_wrap110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
      |                         ^~~
drivers/spi/spi-phytium.c:138:17: note: in expansion of macrodev_err138 |                 dev_err(&fts->master->dev, "RX FIFO underflow detected\n");
      |                 ^~~~~~~
drivers/spi/spi-phytium.c:143:37: error: invalid use of undefined typestruct spi_master143 |                 dev_err(&fts->master->dev, "TX FIFO overflow detected\n");
      |                                     ^~
./include/linux/dev_printk.h:110:25: note: in definition of macrodev_printk_index_wrap110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
      |                         ^~~
drivers/spi/spi-phytium.c:143:17: note: in expansion of macrodev_err143 |                 dev_err(&fts->master->dev, "TX FIFO overflow detected\n");
      |                 ^~~~~~~
drivers/spi/spi-phytium.c:150:32: error: invalid use of undefined typestruct spi_master150 |                 if (fts->master->cur_msg)
      |                                ^~
drivers/spi/spi-phytium.c:151:36: error: invalid use of undefined typestruct spi_master151 |                         fts->master->cur_msg->status = ret;
      |                                    ^~
drivers/spi/spi-phytium.c: In functionint_error_stop’:
drivers/spi/spi-phytium.c:161:29: error: invalid use of undefined typestruct spi_master161 |         dev_err(&fts->master->dev, "%s\n", msg);
      |                             ^~
./include/linux/dev_printk.h:110:25: note: in definition of macrodev_printk_index_wrap110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
      |                         ^~~
drivers/spi/spi-phytium.c:161:9: note: in expansion of macrodev_err161 |         dev_err(&fts->master->dev, "%s\n", msg);
      |         ^~~~~~~
drivers/spi/spi-phytium.c:162:20: error: invalid use of undefined typestruct spi_master162 |         fts->master->cur_msg->status = -EIO;
      |                    ^~
drivers/spi/spi-phytium.c:163:42: error: passing argument 1 ofspi_finalize_current_transferfrom 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: expectedstruct spi_controller *but argument is of typestruct spi_master *821 | extern void spi_finalize_current_transfer(struct spi_controller *ctlr);
      |                                           ~~~~~~~~~~~~~~~~~~~~~~~^~~~
drivers/spi/spi-phytium.c: In functioninterrupt_transfer’:
drivers/spi/spi-phytium.c:179:50: error: passing argument 1 ofspi_finalize_current_transferfrom 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: expectedstruct spi_controller *but argument is of typestruct spi_master *821 | extern void spi_finalize_current_transfer(struct spi_controller *ctlr);
      |                                           ~~~~~~~~~~~~~~~~~~~~~~~^~~~
drivers/spi/spi-phytium.c: In functionphytium_spi_irq’:
drivers/spi/spi-phytium.c:194:35: error: initialization ofstruct phytium_spi *fromintmakes 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 typestruct spi_master200 |         if (!master->cur_msg) {
      |                    ^~
drivers/spi/spi-phytium.c: In functionphytium_spi_transfer_one’:
drivers/spi/spi-phytium.c:225:35: error: initialization ofstruct phytium_spi *fromintmakes 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 typestruct spi_master281 |         if (master->can_dma && master->can_dma(master, spi, transfer))
      |                   ^~
drivers/spi/spi-phytium.c:281:38: error: invalid use of undefined typestruct spi_master281 |         if (master->can_dma && master->can_dma(master, spi, transfer))
      |                                      ^~
drivers/spi/spi-phytium.c:282:41: error: invalid use of undefined typestruct spi_master282 |                 fts->dma_mapped = master->cur_msg_mapped;
      |                                         ^~
drivers/spi/spi-phytium.c: In functionphytium_spi_handle_err’:
drivers/spi/spi-phytium.c:318:35: error: initialization ofstruct phytium_spi *fromintmakes 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 functionphytium_spi_setup’:
drivers/spi/spi-phytium.c:330:40: error: ‘struct spi_devicehas no member namedmaster330 |         struct spi_master *master = spi->master;
      |                                        ^~
drivers/spi/spi-phytium.c:331:35: error: initialization ofstruct phytium_spi *fromintmakes 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 functionphytium_spi_add_host’:
drivers/spi/spi-phytium.c:400:16: error: assignment tostruct spi_master *from incompatible pointer typestruct 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 typestruct spi_master415 |         master->use_gpio_descriptors = true;
      |               ^~
drivers/spi/spi-phytium.c:416:15: error: invalid use of undefined typestruct spi_master416 |         master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_LOOP;
      |               ^~
drivers/spi/spi-phytium.c:417:15: error: invalid use of undefined typestruct spi_master417 |         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 typestruct spi_master418 |         master->bus_num = fts->bus_num;
      |               ^~
drivers/spi/spi-phytium.c:419:15: error: invalid use of undefined typestruct spi_master419 |         master->num_chipselect = fts->num_cs;
      |               ^~
drivers/spi/spi-phytium.c:420:15: error: invalid use of undefined typestruct spi_master420 |         master->setup = phytium_spi_setup;
      |               ^~
drivers/spi/spi-phytium.c:421:15: error: invalid use of undefined typestruct spi_master421 |         master->cleanup = phytium_spi_cleanup;
      |               ^~
drivers/spi/spi-phytium.c:422:15: error: invalid use of undefined typestruct spi_master422 |         master->set_cs = phytium_spi_set_cs;
      |               ^~
drivers/spi/spi-phytium.c:423:15: error: invalid use of undefined typestruct spi_master423 |         master->transfer_one = phytium_spi_transfer_one;
      |               ^~
drivers/spi/spi-phytium.c:424:15: error: invalid use of undefined typestruct spi_master424 |         master->handle_err = phytium_spi_handle_err;
      |               ^~
drivers/spi/spi-phytium.c:425:15: error: invalid use of undefined typestruct spi_master425 |         master->max_speed_hz = fts->max_freq;
      |               ^~
drivers/spi/spi-phytium.c:426:15: error: invalid use of undefined typestruct spi_master426 |         master->dev.of_node = dev->of_node;
      |               ^~
drivers/spi/spi-phytium.c:427:15: error: invalid use of undefined typestruct spi_master427 |         master->dev.fwnode = dev->fwnode;
      |               ^~
drivers/spi/spi-phytium.c:428:15: error: invalid use of undefined typestruct spi_master428 |         master->flags = SPI_CONTROLLER_GPIO_SS;
      |               ^~
drivers/spi/spi-phytium.c:437:31: error: invalid use of undefined typestruct spi_master437 |                         master->can_dma = fts->dma_ops->can_dma;
      |                               ^~
drivers/spi/spi-phytium.c:438:31: error: invalid use of undefined typestruct spi_master438 |                         master->flags |= SPI_CONTROLLER_MUST_TX;
      |                               ^~
drivers/spi/spi-phytium-dma.c: In functionphytium_spi_dma_init’:
drivers/spi/spi-phytium-dma.c:79:20: error: invalid use of undefined typestruct spi_master79 |         fts->master->dma_rx = fts->rxchan;
      |                    ^~
drivers/spi/spi-phytium-dma.c:80:20: error: invalid use of undefined typestruct spi_master80 |         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 functionphytium_spi_dma_wait’:
drivers/spi/spi-phytium-dma.c:146:37: error: invalid use of undefined typestruct spi_master146 |                 dev_err(&fts->master->cur_msg->spi->dev,
      |                                     ^~
./include/linux/dev_printk.h:110:25: note: in definition of macrodev_printk_index_wrap110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
      |                         ^~~
drivers/spi/spi-phytium-dma.c:146:17: note: in expansion of macrodev_err146 |                 dev_err(&fts->master->cur_msg->spi->dev,
      |                 ^~~~~~~
drivers/spi/spi-phytium-dma.c: In functionphytium_spi_dma_wait_tx_done’:
drivers/spi/spi-phytium-dma.c:190:37: error: invalid use of undefined typestruct spi_master190 |                 dev_err(&fts->master->dev, "Tx hanged up\n");
      |                                     ^~
./include/linux/dev_printk.h:110:25: note: in definition of macrodev_printk_index_wrap110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
      |                         ^~~
drivers/spi/spi-phytium-dma.c:190:17: note: in expansion of macrodev_err190 |                 dev_err(&fts->master->dev, "Tx hanged up\n");
      |                 ^~~~~~~
drivers/spi/spi-phytium-dma.c: In functionphytium_spi_dma_wait_rx_done’:
drivers/spi/spi-phytium-dma.c:283:37: error: invalid use of undefined typestruct spi_master283 |                 dev_err(&fts->master->dev, "Rx hanged up, nents = %d\n", nents);
      |                                     ^~
./include/linux/dev_printk.h:110:25: note: in definition of macrodev_printk_index_wrap110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
      |                         ^~~
drivers/spi/spi-phytium-dma.c:283:17: note: in expansion of macrodev_err283 |                 dev_err(&fts->master->dev, "Rx hanged up, nents = %d\n", nents);
      |                 ^~~~~~~
drivers/spi/spi-phytium-dma.c: In functionphytium_spi_dma_transfer’:
drivers/spi/spi-phytium-dma.c:514:24: error: invalid use of undefined typestruct spi_master514 |         if (fts->master->cur_msg->status == -EINPROGRESS) {
      |                        ^~
drivers/spi/spi-phytium-pci.c: In functionspi_suspend’:
drivers/spi/spi-phytium-pci.c:92:35: error: implicit declaration of functionspi_master_get_devdata’; did you meanspi_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 ofstruct phytium_spi *fromintmakes pointer from integer without a cast [-Werror=int-conversion]
drivers/spi/spi-phytium-dma.c:520:40: error: invalid use of undefined typestruct spi_master520 |         if (xfer->rx_buf && fts->master->cur_msg->status == -EINPROGRESS)
      |                                        ^~
drivers/spi/spi-phytium-pci.c: In functionspi_resume’:
drivers/spi/spi-phytium-pci.c:100:35: error: initialization ofstruct phytium_spi *fromintmakes 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 functionspi_master_set_devdata’; did you meanspi_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 ofspi_register_controllerfrom incompatible pointer type [-Werror=incompatible-pointer-types]
  443 |         ret = spi_register_controller(master);
      |                                       ^~~~~~
      |                                       |
      |                                       struct spi_master *
./include/linux/spi/spi.h:899:59: note: expectedstruct spi_controller *but argument is of typestruct spi_master *899 | extern int spi_register_controller(struct spi_controller *ctlr);
      |                                    ~~~~~~~~~~~~~~~~~~~~~~~^~~~
drivers/spi/spi-phytium.c:445:32: error: invalid use of undefined typestruct spi_master445 |                 dev_err(&master->dev, "problem registering spi master\n");
      |                                ^~
./include/linux/dev_printk.h:110:25: note: in definition of macrodev_printk_index_wrap110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
      |                         ^~~
drivers/spi/spi-phytium.c:445:17: note: in expansion of macrodev_err445 |                 dev_err(&master->dev, "problem registering spi master\n");
      |                 ^~~~~~~
make[7]: *** [scripts/Makefile.build:244drivers/spi/spi-phytium-dma.o] 错误 1
make[7]: *** 正在等待未完成的任务....
drivers/spi/spi-phytium.c:457:9: error: implicit declaration of functionspi_master_put’; did you meanspi_dev_put’? [-Werror=implicit-function-declaration]
  457 |         spi_master_put(master);
      |         ^~~~~~~~~~~~~~
      |         spi_dev_put
drivers/spi/spi-phytium.c: In functionphytium_spi_remove_host’:
drivers/spi/spi-phytium.c:468:38: error: passing argument 1 ofspi_unregister_controllerfrom incompatible pointer type [-Werror=incompatible-pointer-types]
  468 |         spi_unregister_controller(fts->master);
      |                                   ~~~^~~~~~~~
      |                                      |
      |                                      struct spi_master *
./include/linux/spi/spi.h:902:62: note: expectedstruct spi_controller *but argument is of typestruct spi_master *902 | extern void spi_unregister_controller(struct spi_controller *ctlr);
      |                                       ~~~~~~~~~~~~~~~~~~~~~~~^~~~
drivers/spi/spi-phytium.c: In functionphytium_spi_suspend_host’:
drivers/spi/spi-phytium.c:478:41: error: passing argument 1 ofspi_controller_suspendfrom 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: expectedstruct spi_controller *but argument is of typestruct 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 functionphytium_spi_resume_host’:
drivers/spi/spi-phytium.c:491:33: error: invalid use of undefined typestruct spi_master491 |         spi_hw_init(&fts->master->dev, fts);
      |                                 ^~
drivers/spi/spi-phytium.c:492:40: error: passing argument 1 ofspi_controller_resumefrom 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: expectedstruct spi_controller *but argument is of typestruct spi_master *816 | extern int spi_controller_resume(struct spi_controller *ctlr);
      |                                  ~~~~~~~~~~~~~~~~~~~~~~~^~~~
drivers/spi/spi-phytium.c:494:37: error: invalid use of undefined typestruct spi_master494 |                 dev_err(&fts->master->dev, "fail to start queue (%d)\n", ret);
      |                                     ^~
./include/linux/dev_printk.h:110:25: note: in definition of macrodev_printk_index_wrap110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
      |                         ^~~
drivers/spi/spi-phytium.c:494:17: note: in expansion of macrodev_err494 |                 dev_err(&fts->master->dev, "fail to start queue (%d)\n", ret);
      |                 ^~~~~~~
cc1: all warnings being treated as errors
make[7]: *** [scripts/Makefile.build:244drivers/spi/spi-phytium-pci.o] 错误 1
make[7]: *** [scripts/Makefile.build:244drivers/spi/spi-phytium.o] 错误 1
make[6]: *** [scripts/Makefile.build:485drivers/spi] 错误 2
make[6]: *** 正在等待未完成的任务....
make[5]: *** [scripts/Makefile.build:485drivers] 错误 2
make[4]: *** [Makefile:1915:.] 错误 2
make[3]: *** [debian/rules:74build-arch] 错误 2
dpkg-buildpackage: error: make -f debian/rules binary subprocess returned exit status 2
make[2]: *** [scripts/Makefile.package:121bindeb-pkg] 错误 2
make[1]: *** [/root/linux/Makefile:1537bindeb-pkg] 错误 2
make: *** [Makefile:240__sub-make] 错误 2

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions