diff mbox series

[v2,1/2] spi: add DM_SPI_FLASH compatibility inline functions

Message ID 20241001-uboot-topic-dfu-sf-dt-v2-1-67f7acfa3ff5@linaro.org
State Accepted
Commit 0872ac098a400632f02ae442dde65d77cc7eb1cb
Headers show
Series dfu: sf: fix flash probe when DM_SPI_FLASH is enabled | expand

Commit Message

Neil Armstrong Oct. 1, 2024, 4:06 p.m. UTC
To smoothly handle the transition from the legacy SPI FLASH
API to the the driver model API, add the DM functions
as dummy inline functions.

Today, client code uses #if/#else conditionals, but it's better
to use if(IS_ENABLED()) to make sure all code builds fine
and avoid configuration hell, leaving the compiler remove
the dead code.

An example is cmd/sf, which could make use of those dummy
functions to drop the conditional compilation.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
---
 include/spi_flash.h | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

Comments

Mattijs Korpershoek Oct. 2, 2024, 7:29 a.m. UTC | #1
Hi Neil,

Thank you for the patch.

On mar., oct. 01, 2024 at 18:06, Neil Armstrong <neil.armstrong@linaro.org> wrote:

> To smoothly handle the transition from the legacy SPI FLASH
> API to the the driver model API, add the DM functions
> as dummy inline functions.
>
> Today, client code uses #if/#else conditionals, but it's better
> to use if(IS_ENABLED()) to make sure all code builds fine
> and avoid configuration hell, leaving the compiler remove
> the dead code.
>
> An example is cmd/sf, which could make use of those dummy
> functions to drop the conditional compilation.
>
> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>

Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>

> ---
>  include/spi_flash.h | 34 ++++++++++++++++++++++++++++++++++
>  1 file changed, 34 insertions(+)
>
> diff --git a/include/spi_flash.h b/include/spi_flash.h
> index 10d19fd4b11..2e703e85250 100644
> --- a/include/spi_flash.h
> +++ b/include/spi_flash.h
> @@ -139,6 +139,40 @@ int sandbox_sf_bind_emul(struct sandbox_state *state, int busnum, int cs,
>  void sandbox_sf_unbind_emul(struct sandbox_state *state, int busnum, int cs);
>  
>  #else
> +/* Compatibility functions for when DM_SPI_FLASH is disabled */
> +static inline int spi_flash_probe_bus_cs(unsigned int busnum, unsigned int cs,
> +					 struct udevice **devp)
> +{
> +	return -ENODEV;
> +}
> +
> +static inline int spi_flash_read_dm(struct udevice *dev, u32 offset, size_t len,
> +				    void *buf)
> +{
> +	return -ENODEV;
> +}
> +
> +static inline int spi_flash_write_dm(struct udevice *dev, u32 offset, size_t len,
> +				     const void *buf)
> +{
> +	return -ENODEV;
> +}
> +
> +static inline int spi_flash_erase_dm(struct udevice *dev, u32 offset, size_t len)
> +{
> +	return -ENODEV;
> +}
> +
> +static inline int spl_flash_get_sw_write_prot(struct udevice *dev)
> +{
> +	return -ENODEV;
> +}
> +
> +static inline int spi_flash_std_probe(struct udevice *dev)
> +{
> +	return -ENODEV;
> +}
> +
>  struct spi_flash *spi_flash_probe(unsigned int bus, unsigned int cs,
>  		unsigned int max_hz, unsigned int spi_mode);
>  
>
> -- 
> 2.34.1
Mattijs Korpershoek Oct. 10, 2024, 8:09 a.m. UTC | #2
Hi Jagan, Vignesh,

On mar., oct. 01, 2024 at 18:06, Neil Armstrong <neil.armstrong@linaro.org> wrote:

> To smoothly handle the transition from the legacy SPI FLASH
> API to the the driver model API, add the DM functions
> as dummy inline functions.
>
> Today, client code uses #if/#else conditionals, but it's better
> to use if(IS_ENABLED()) to make sure all code builds fine
> and avoid configuration hell, leaving the compiler remove
> the dead code.
>
> An example is cmd/sf, which could make use of those dummy
> functions to drop the conditional compilation.
>
> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>

I'd like to submit this through u-boot-dfu but before that i'd prefer to
have an Acked-by from one of you.

Any opinion on this ?

Thank you for your time!

> ---
>  include/spi_flash.h | 34 ++++++++++++++++++++++++++++++++++
>  1 file changed, 34 insertions(+)
>
> diff --git a/include/spi_flash.h b/include/spi_flash.h
> index 10d19fd4b11..2e703e85250 100644
> --- a/include/spi_flash.h
> +++ b/include/spi_flash.h
> @@ -139,6 +139,40 @@ int sandbox_sf_bind_emul(struct sandbox_state *state, int busnum, int cs,
>  void sandbox_sf_unbind_emul(struct sandbox_state *state, int busnum, int cs);
>  
>  #else
> +/* Compatibility functions for when DM_SPI_FLASH is disabled */
> +static inline int spi_flash_probe_bus_cs(unsigned int busnum, unsigned int cs,
> +					 struct udevice **devp)
> +{
> +	return -ENODEV;
> +}
> +
> +static inline int spi_flash_read_dm(struct udevice *dev, u32 offset, size_t len,
> +				    void *buf)
> +{
> +	return -ENODEV;
> +}
> +
> +static inline int spi_flash_write_dm(struct udevice *dev, u32 offset, size_t len,
> +				     const void *buf)
> +{
> +	return -ENODEV;
> +}
> +
> +static inline int spi_flash_erase_dm(struct udevice *dev, u32 offset, size_t len)
> +{
> +	return -ENODEV;
> +}
> +
> +static inline int spl_flash_get_sw_write_prot(struct udevice *dev)
> +{
> +	return -ENODEV;
> +}
> +
> +static inline int spi_flash_std_probe(struct udevice *dev)
> +{
> +	return -ENODEV;
> +}
> +
>  struct spi_flash *spi_flash_probe(unsigned int bus, unsigned int cs,
>  		unsigned int max_hz, unsigned int spi_mode);
>  
>
> -- 
> 2.34.1
diff mbox series

Patch

diff --git a/include/spi_flash.h b/include/spi_flash.h
index 10d19fd4b11..2e703e85250 100644
--- a/include/spi_flash.h
+++ b/include/spi_flash.h
@@ -139,6 +139,40 @@  int sandbox_sf_bind_emul(struct sandbox_state *state, int busnum, int cs,
 void sandbox_sf_unbind_emul(struct sandbox_state *state, int busnum, int cs);
 
 #else
+/* Compatibility functions for when DM_SPI_FLASH is disabled */
+static inline int spi_flash_probe_bus_cs(unsigned int busnum, unsigned int cs,
+					 struct udevice **devp)
+{
+	return -ENODEV;
+}
+
+static inline int spi_flash_read_dm(struct udevice *dev, u32 offset, size_t len,
+				    void *buf)
+{
+	return -ENODEV;
+}
+
+static inline int spi_flash_write_dm(struct udevice *dev, u32 offset, size_t len,
+				     const void *buf)
+{
+	return -ENODEV;
+}
+
+static inline int spi_flash_erase_dm(struct udevice *dev, u32 offset, size_t len)
+{
+	return -ENODEV;
+}
+
+static inline int spl_flash_get_sw_write_prot(struct udevice *dev)
+{
+	return -ENODEV;
+}
+
+static inline int spi_flash_std_probe(struct udevice *dev)
+{
+	return -ENODEV;
+}
+
 struct spi_flash *spi_flash_probe(unsigned int bus, unsigned int cs,
 		unsigned int max_hz, unsigned int spi_mode);