Commit 9b163e0d authored by David Lechner's avatar David Lechner Committed by Mark Brown

spi: remove struct spi_message::is_dma_mapped

There are no more users of the deprecated is_dma_mapped in struct
spi_message so it can be removed.

References in documentation and comments are also removed.

A few similar checks if xfer->tx_dma or xfer->rx_dma are not NULL are
also removed since these are now guaranteed to be NULL because they
were previously set only if is_dma_mapped was true.
Signed-off-by: default avatarDavid Lechner <dlechner@baylibre.com>
Link: https://msgid.link/r/20240325-spi-remove-is_dma_mapped-v2-1-d08d62b61f1c@baylibre.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent 6defadbe
...@@ -194,9 +194,6 @@ The following logic is used to determine the type of I/O to be used on ...@@ -194,9 +194,6 @@ The following logic is used to determine the type of I/O to be used on
a per "spi_transfer" basis:: a per "spi_transfer" basis::
if spi_message.len > 65536 then if spi_message.len > 65536 then
if spi_message.is_dma_mapped or rx_dma_buf != 0 or tx_dma_buf != 0 then
reject premapped transfers
print "rate limited" warning print "rate limited" warning
use PIO transfers use PIO transfers
......
...@@ -419,10 +419,6 @@ any more such messages. ...@@ -419,10 +419,6 @@ any more such messages.
to make extra copies unless the hardware requires it (e.g. working to make extra copies unless the hardware requires it (e.g. working
around hardware errata that force the use of bounce buffering). around hardware errata that force the use of bounce buffering).
If standard dma_map_single() handling of these buffers is inappropriate,
you can use spi_message.is_dma_mapped to tell the controller driver
that you've already provided the relevant DMA addresses.
- The basic I/O primitive is spi_async(). Async requests may be - The basic I/O primitive is spi_async(). Async requests may be
issued in any context (irq handler, task, etc) and completion issued in any context (irq handler, task, etc) and completion
is reported using a callback provided with the message. is reported using a callback provided with the message.
......
...@@ -987,8 +987,6 @@ static void atmel_spi_pdc_next_xfer(struct spi_controller *host, ...@@ -987,8 +987,6 @@ static void atmel_spi_pdc_next_xfer(struct spi_controller *host,
* For DMA, tx_buf/tx_dma have the same relationship as rx_buf/rx_dma: * For DMA, tx_buf/tx_dma have the same relationship as rx_buf/rx_dma:
* - The buffer is either valid for CPU access, else NULL * - The buffer is either valid for CPU access, else NULL
* - If the buffer is valid, so is its DMA address * - If the buffer is valid, so is its DMA address
*
* This driver manages the dma address unless message->is_dma_mapped.
*/ */
static int static int
atmel_spi_dma_map_xfer(struct atmel_spi *as, struct spi_transfer *xfer) atmel_spi_dma_map_xfer(struct atmel_spi *as, struct spi_transfer *xfer)
...@@ -1374,8 +1372,7 @@ static int atmel_spi_one_transfer(struct spi_controller *host, ...@@ -1374,8 +1372,7 @@ static int atmel_spi_one_transfer(struct spi_controller *host,
* DMA map early, for performance (empties dcache ASAP) and * DMA map early, for performance (empties dcache ASAP) and
* better fault reporting. * better fault reporting.
*/ */
if ((!host->cur_msg->is_dma_mapped) if (as->use_pdc) {
&& as->use_pdc) {
if (atmel_spi_dma_map_xfer(as, xfer) < 0) if (atmel_spi_dma_map_xfer(as, xfer) < 0)
return -ENOMEM; return -ENOMEM;
} }
...@@ -1454,8 +1451,7 @@ static int atmel_spi_one_transfer(struct spi_controller *host, ...@@ -1454,8 +1451,7 @@ static int atmel_spi_one_transfer(struct spi_controller *host,
} }
} }
if (!host->cur_msg->is_dma_mapped if (as->use_pdc)
&& as->use_pdc)
atmel_spi_dma_unmap_xfer(host, xfer); atmel_spi_dma_unmap_xfer(host, xfer);
if (as->use_pdc) if (as->use_pdc)
......
...@@ -944,7 +944,6 @@ static int pxa2xx_spi_transfer_one(struct spi_controller *controller, ...@@ -944,7 +944,6 @@ static int pxa2xx_spi_transfer_one(struct spi_controller *controller,
struct spi_transfer *transfer) struct spi_transfer *transfer)
{ {
struct driver_data *drv_data = spi_controller_get_devdata(controller); struct driver_data *drv_data = spi_controller_get_devdata(controller);
struct spi_message *message = controller->cur_msg;
struct chip_data *chip = spi_get_ctldata(spi); struct chip_data *chip = spi_get_ctldata(spi);
u32 dma_thresh = chip->dma_threshold; u32 dma_thresh = chip->dma_threshold;
u32 dma_burst = chip->dma_burst_size; u32 dma_burst = chip->dma_burst_size;
...@@ -959,16 +958,6 @@ static int pxa2xx_spi_transfer_one(struct spi_controller *controller, ...@@ -959,16 +958,6 @@ static int pxa2xx_spi_transfer_one(struct spi_controller *controller,
/* Check if we can DMA this transfer */ /* Check if we can DMA this transfer */
if (transfer->len > MAX_DMA_LEN && chip->enable_dma) { if (transfer->len > MAX_DMA_LEN && chip->enable_dma) {
/* Reject already-mapped transfers; PIO won't always work */
if (message->is_dma_mapped
|| transfer->rx_dma || transfer->tx_dma) {
dev_err(&spi->dev,
"Mapped transfer length of %u is greater than %d\n",
transfer->len, MAX_DMA_LEN);
return -EINVAL;
}
/* Warn ... we force this to PIO mode */ /* Warn ... we force this to PIO mode */
dev_warn_ratelimited(&spi->dev, dev_warn_ratelimited(&spi->dev,
"DMA disabled for transfer length %u greater than %d\n", "DMA disabled for transfer length %u greater than %d\n",
......
...@@ -3709,9 +3709,6 @@ static int __spi_split_transfer_maxsize(struct spi_controller *ctlr, ...@@ -3709,9 +3709,6 @@ static int __spi_split_transfer_maxsize(struct spi_controller *ctlr,
* to the same values as *xferp, so tx_buf, rx_buf and len * to the same values as *xferp, so tx_buf, rx_buf and len
* are all identical (as well as most others) * are all identical (as well as most others)
* so we just have to fix up len and the pointers. * so we just have to fix up len and the pointers.
*
* This also includes support for the depreciated
* spi_message.is_dma_mapped interface.
*/ */
/* /*
...@@ -3725,12 +3722,8 @@ static int __spi_split_transfer_maxsize(struct spi_controller *ctlr, ...@@ -3725,12 +3722,8 @@ static int __spi_split_transfer_maxsize(struct spi_controller *ctlr,
/* Update rx_buf, tx_buf and DMA */ /* Update rx_buf, tx_buf and DMA */
if (xfers[i].rx_buf) if (xfers[i].rx_buf)
xfers[i].rx_buf += offset; xfers[i].rx_buf += offset;
if (xfers[i].rx_dma)
xfers[i].rx_dma += offset;
if (xfers[i].tx_buf) if (xfers[i].tx_buf)
xfers[i].tx_buf += offset; xfers[i].tx_buf += offset;
if (xfers[i].tx_dma)
xfers[i].tx_dma += offset;
/* Update length */ /* Update length */
xfers[i].len = min(maxsize, xfers[i].len - offset); xfers[i].len = min(maxsize, xfers[i].len - offset);
......
...@@ -955,8 +955,8 @@ struct spi_res { ...@@ -955,8 +955,8 @@ struct spi_res {
* struct spi_transfer - a read/write buffer pair * struct spi_transfer - a read/write buffer pair
* @tx_buf: data to be written (DMA-safe memory), or NULL * @tx_buf: data to be written (DMA-safe memory), or NULL
* @rx_buf: data to be read (DMA-safe memory), or NULL * @rx_buf: data to be read (DMA-safe memory), or NULL
* @tx_dma: DMA address of tx_buf, if @spi_message.is_dma_mapped * @tx_dma: DMA address of tx_buf, currently not for client use
* @rx_dma: DMA address of rx_buf, if @spi_message.is_dma_mapped * @rx_dma: DMA address of rx_buf, currently not for client use
* @tx_nbits: number of bits used for writing. If 0 the default * @tx_nbits: number of bits used for writing. If 0 the default
* (SPI_NBITS_SINGLE) is used. * (SPI_NBITS_SINGLE) is used.
* @rx_nbits: number of bits used for reading. If 0 the default * @rx_nbits: number of bits used for reading. If 0 the default
...@@ -1066,8 +1066,7 @@ struct spi_transfer { ...@@ -1066,8 +1066,7 @@ struct spi_transfer {
/* /*
* It's okay if tx_buf == rx_buf (right?). * It's okay if tx_buf == rx_buf (right?).
* For MicroWire, one buffer must be NULL. * For MicroWire, one buffer must be NULL.
* Buffers must work with dma_*map_single() calls, unless * Buffers must work with dma_*map_single() calls.
* spi_message.is_dma_mapped reports a pre-existing mapping.
*/ */
const void *tx_buf; const void *tx_buf;
void *rx_buf; void *rx_buf;
...@@ -1111,8 +1110,6 @@ struct spi_transfer { ...@@ -1111,8 +1110,6 @@ struct spi_transfer {
* struct spi_message - one multi-segment SPI transaction * struct spi_message - one multi-segment SPI transaction
* @transfers: list of transfer segments in this transaction * @transfers: list of transfer segments in this transaction
* @spi: SPI device to which the transaction is queued * @spi: SPI device to which the transaction is queued
* @is_dma_mapped: if true, the caller provided both DMA and CPU virtual
* addresses for each transfer buffer
* @pre_optimized: peripheral driver pre-optimized the message * @pre_optimized: peripheral driver pre-optimized the message
* @optimized: the message is in the optimized state * @optimized: the message is in the optimized state
* @prepared: spi_prepare_message was called for the this message * @prepared: spi_prepare_message was called for the this message
...@@ -1146,8 +1143,6 @@ struct spi_message { ...@@ -1146,8 +1143,6 @@ struct spi_message {
struct spi_device *spi; struct spi_device *spi;
unsigned is_dma_mapped:1;
/* spi_optimize_message() was called for this message */ /* spi_optimize_message() was called for this message */
bool pre_optimized; bool pre_optimized;
/* __spi_optimize_message() was called for this message */ /* __spi_optimize_message() was called for this message */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment