[u-boot][PATCH] spi: spi-mem: Add SPI_MEM_NO_DATA to the spi_mem_data_dir enum

Jagan Teki jagan at amarulasolutions.com
Fri Apr 3 16:56:07 CEST 2020


On Fri, Mar 20, 2020 at 3:05 PM <Tudor.Ambarus at microchip.com> wrote:
>
> From: Tudor Ambarus <tudor.ambarus at microchip.com>
>
> Commit: 0ebb261a0b2d ("spi: spi-mem: Add SPI_MEM_NO_DATA to the spi_mem_data_dir enum")
> in linux.
>
> When defining spi_mem_op templates we don't necessarily know the size
> that will be passed when the template is actually used, and basing the
> supports_op() check on op->data.nbytes to know whether there will be
> data transferred for a specific operation is not possible.
>
> Add SPI_MEM_NO_DATA to the spi_mem_data_dir enum so that we can base
> our checks on op->data.dir instead of op->data.nbytes.
>
> This also fixes a bug identified with the atmel-quaspi driver.
> The spi-nor core, when erasing sectors, fills the spi_mem_op template
> using SPI_MEM_OP_NO_DATA, which initializes all the data members with
> value zero. This is wrong because data.dir is treated as SPI_MEM_DATA_IN,
> which translates in our driver to read accesses for erases (RICR), while
> the controller expects write accesses (WICR).
>
> Signed-off-by: Tudor Ambarus <tudor.ambarus at microchip.com>
> ---

Reviewed-by: Jagan Teki <jagan at amarulasolutions.com>


More information about the U-Boot mailing list