spi: Add can_dma like interface for spi_flash_read
Add an interface analogous to ->can_dma() for spi_flash_read() interface. This will enable SPI controller drivers to inform SPI core when not to do DMA mappings. Signed-off-by: Vignesh R <vigneshr@ti.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
cb3c8e5ade
commit
2bca34455b
|
@ -2811,7 +2811,7 @@ int spi_flash_read(struct spi_device *spi,
|
|||
|
||||
mutex_lock(&master->bus_lock_mutex);
|
||||
mutex_lock(&master->io_mutex);
|
||||
if (master->dma_rx) {
|
||||
if (master->dma_rx && master->spi_flash_can_dma(spi, msg)) {
|
||||
rx_dev = master->dma_rx->device->dev;
|
||||
ret = spi_map_buf(master, rx_dev, &msg->rx_sg,
|
||||
msg->buf, msg->len,
|
||||
|
|
|
@ -375,6 +375,8 @@ static inline void spi_unregister_driver(struct spi_driver *sdrv)
|
|||
* @unprepare_message: undo any work done by prepare_message().
|
||||
* @spi_flash_read: to support spi-controller hardwares that provide
|
||||
* accelerated interface to read from flash devices.
|
||||
* @spi_flash_can_dma: analogous to can_dma() interface, but for
|
||||
* controllers implementing spi_flash_read.
|
||||
* @flash_read_supported: spi device supports flash read
|
||||
* @cs_gpios: Array of GPIOs to use as chip select lines; one per CS
|
||||
* number. Any individual value may be -ENOENT for CS lines that
|
||||
|
@ -538,6 +540,8 @@ struct spi_master {
|
|||
struct spi_message *message);
|
||||
int (*spi_flash_read)(struct spi_device *spi,
|
||||
struct spi_flash_read_message *msg);
|
||||
bool (*spi_flash_can_dma)(struct spi_device *spi,
|
||||
struct spi_flash_read_message *msg);
|
||||
bool (*flash_read_supported)(struct spi_device *spi);
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in a new issue