On 2019/4/10 0:30, Vignesh Raghavendra wrote: > On 08/04/19 8:09 PM, Yue Haibing wrote: >> From: YueHaibing <yuehaibing@xxxxxxxxxx> >> >> When building with CONFIG_SPI_MEM is not set >> gc warns this: >> >> drivers/spi/spi-zynq-qspi.o: In function `zynq_qspi_supports_op': >> spi-zynq-qspi.c:(.text+0x1da): undefined reference to `spi_mem_default_supports_op' >> >> Fixes: 67dca5e580f1 ("spi: spi-mem: Add support for Zynq QSPI controller") >> Signed-off-by: YueHaibing <yuehaibing@xxxxxxxxxx> >> --- >> include/linux/spi/spi-mem.h | 14 +++++++++++--- >> 1 file changed, 11 insertions(+), 3 deletions(-) >> >> diff --git a/include/linux/spi/spi-mem.h b/include/linux/spi/spi-mem.h >> index c845cd6..1941b84 100644 >> --- a/include/linux/spi/spi-mem.h >> +++ b/include/linux/spi/spi-mem.h >> @@ -295,6 +295,10 @@ int spi_controller_dma_map_mem_op_data(struct spi_controller *ctlr, >> void spi_controller_dma_unmap_mem_op_data(struct spi_controller *ctlr, >> const struct spi_mem_op *op, >> struct sg_table *sg); >> + >> +bool spi_mem_default_supports_op(struct spi_mem *mem, >> + const struct spi_mem_op *op); >> + >> #else >> static inline int >> spi_controller_dma_map_mem_op_data(struct spi_controller *ctlr, >> @@ -310,6 +314,13 @@ spi_controller_dma_unmap_mem_op_data(struct spi_controller *ctlr, >> struct sg_table *sg) >> { >> } >> + >> +bool spi_mem_default_supports_op(struct spi_mem *mem, >> + const struct spi_mem_op *op) > > This needs to be declared static inline to avoid multiple definitions. > Right? Indeed, thanks! > >> +{ >> + return false; >> +} >> + >> #endif /* CONFIG_SPI_MEM */ >> >> int spi_mem_adjust_op_size(struct spi_mem *mem, struct spi_mem_op *op); >> @@ -341,9 +352,6 @@ int spi_mem_driver_register_with_owner(struct spi_mem_driver *drv, >> >> void spi_mem_driver_unregister(struct spi_mem_driver *drv); >> >> -bool spi_mem_default_supports_op(struct spi_mem *mem, >> - const struct spi_mem_op *op); >> - >> #define spi_mem_driver_register(__drv) \ >> spi_mem_driver_register_with_owner(__drv, THIS_MODULE) >> >> >