mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-23 23:32:14 +00:00
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
2 changed files with 5 additions and 1 deletions
|
@ -2811,7 +2811,7 @@ int spi_flash_read(struct spi_device *spi,
|
||||||
|
|
||||||
mutex_lock(&master->bus_lock_mutex);
|
mutex_lock(&master->bus_lock_mutex);
|
||||||
mutex_lock(&master->io_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;
|
rx_dev = master->dma_rx->device->dev;
|
||||||
ret = spi_map_buf(master, rx_dev, &msg->rx_sg,
|
ret = spi_map_buf(master, rx_dev, &msg->rx_sg,
|
||||||
msg->buf, msg->len,
|
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().
|
* @unprepare_message: undo any work done by prepare_message().
|
||||||
* @spi_flash_read: to support spi-controller hardwares that provide
|
* @spi_flash_read: to support spi-controller hardwares that provide
|
||||||
* accelerated interface to read from flash devices.
|
* 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
|
* @flash_read_supported: spi device supports flash read
|
||||||
* @cs_gpios: Array of GPIOs to use as chip select lines; one per CS
|
* @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
|
* number. Any individual value may be -ENOENT for CS lines that
|
||||||
|
@ -538,6 +540,8 @@ struct spi_master {
|
||||||
struct spi_message *message);
|
struct spi_message *message);
|
||||||
int (*spi_flash_read)(struct spi_device *spi,
|
int (*spi_flash_read)(struct spi_device *spi,
|
||||||
struct spi_flash_read_message *msg);
|
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);
|
bool (*flash_read_supported)(struct spi_device *spi);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue