On Wed, Sep 30, 2020 at 09:55:26PM +0300, Serge Semin wrote: > Currently DWC SSI core is supported by means of setting up the > core-specific update_cr0() callback. It isn't suitable for multiple > reasons. First of all having exported several methods doing the same thing > but for different chips makes the code harder to maintain. Secondly the > spi-dw-core driver exports the methods, then the spi-dw-mmio driver sets This doesn't build with current code in an x86 defconfig, please check and resend (looks like you forgot to update dw-pci): mnt/kernel/drivers/spi/spi-dw-pci.c: In function 'spi_mid_init': /mnt/kernel/drivers/spi/spi-dw-pci.c:52:5: error: 'struct dw_spi' has no member named 'update_cr0' dws->update_cr0 = dw_spi_update_cr0; ^~ /mnt/kernel/drivers/spi/spi-dw-pci.c:52:20: error: 'dw_spi_update_cr0' undeclared (first use in this function); did you mean 'dw_spi_set_cs'? dws->update_cr0 = dw_spi_update_cr0; ^~~~~~~~~~~~~~~~~ dw_spi_set_cs /mnt/kernel/drivers/spi/spi-dw-pci.c:52:20: note: each undeclared identifier is reported only once for each function it appears in /mnt/kernel/drivers/spi/spi-dw-pci.c: In function 'spi_generic_init': /mnt/kernel/drivers/spi/spi-dw-pci.c:62:5: error: 'struct dw_spi' has no member named 'update_cr0' dws->update_cr0 = dw_spi_update_cr0; ^~ /mnt/kernel/drivers/spi/spi-dw-pci.c:62:20: error: 'dw_spi_update_cr0' undeclared (first use in this function); did you mean 'dw_spi_set_cs'? dws->update_cr0 = dw_spi_update_cr0; ^~~~~~~~~~~~~~~~~ dw_spi_set_cs make[3]: *** [/mnt/kernel/scripts/Makefile.build:283: drivers/spi/spi-dw-pci.o] Error 1 make[2]: *** [/mnt/kernel/scripts/Makefile.build:500: drivers/spi] Error 2 make[2]: *** Waiting for unfinished jobs.... make[1]: *** [/mnt/kernel/Makefile:1788: drivers] Error 2 make[1]: *** Waiting for unfinished jobs.... make: *** [Makefile:185: __sub-make] Error 2