
Hi Matthew,
Subject: [PATCH 1/3] mem: spi-mem: define spi_mem_default_supports_op
Nitpick: You are declaring spi_mem_default_supports_op() here. It is already defined.
On 18/01/21 11:52PM, Mathew McBride wrote:
spi_mem_default_supports_op is used internally by controller drivers to verify operation semantics are correct.
Signed-off-by: Mathew McBride matt@traverse.com.au
include/spi-mem.h | 10 ++++++++++ 1 file changed, 10 insertions(+)
diff --git a/include/spi-mem.h b/include/spi-mem.h index ca0f55c8fd..92c640dabe 100644 --- a/include/spi-mem.h +++ b/include/spi-mem.h @@ -216,6 +216,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);
This block of code was imported verbatim from the Linux driver and then wrapped around with a #ifndef __UBOOT__ to avoid compilation errors. So it will never get "enabled" in U-Boot ever. No driver can use the prototypes you have added.
And I tested this by applying your patch series and building the fsl_qspi driver using ls1012aqds_qspi_defconfig. Sure enough, the compiler reported "implicit declaration of function spi_mem_default_supports_op". Strangely, the linker did not complain and went through without errors. Not sure which function it would end up linking there.
Move the declaration outside this ifdef, right beside where spi_mem_supports_op() is declared. No need to have the variant below. It is safe to assume CONFIG_SPI_MEM is enabled if spi-mem.h is included.
#else static inline int spi_controller_dma_map_mem_op_data(struct spi_controller *ctlr, @@ -231,6 +235,12 @@ 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)
+{
- return false;
+} #endif /* CONFIG_SPI_MEM */ #endif /* __UBOOT__ */
-- 2.30.0