a per "spi_transfer" basis::
 
   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
        use PIO transfers
 
 
     to make extra copies unless the hardware requires it (e.g. working
     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
     issued in any context (irq handler, task, etc) and completion
     is reported using a callback provided with the message.
 
  * 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
  *  - If the buffer is valid, so is its DMA address
- *
- * This driver manages the dma address unless message->is_dma_mapped.
  */
 static int
 atmel_spi_dma_map_xfer(struct atmel_spi *as, struct spi_transfer *xfer)
         * DMA map early, for performance (empties dcache ASAP) and
         * better fault reporting.
         */
-       if ((!host->cur_msg->is_dma_mapped)
-               && as->use_pdc) {
+       if (as->use_pdc) {
                if (atmel_spi_dma_map_xfer(as, xfer) < 0)
                        return -ENOMEM;
        }
                }
        }
 
-       if (!host->cur_msg->is_dma_mapped
-               && as->use_pdc)
+       if (as->use_pdc)
                atmel_spi_dma_unmap_xfer(host, xfer);
 
        if (as->use_pdc)
 
                                   struct spi_transfer *transfer)
 {
        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);
        u32 dma_thresh = chip->dma_threshold;
        u32 dma_burst = chip->dma_burst_size;
 
        /* Check if we can DMA this transfer */
        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 */
                dev_warn_ratelimited(&spi->dev,
                                     "DMA disabled for transfer length %u greater than %d\n",
 
         * to the same values as *xferp, so tx_buf, rx_buf and len
         * are all identical (as well as most others)
         * so we just have to fix up len and the pointers.
-        *
-        * This also includes support for the depreciated
-        * spi_message.is_dma_mapped interface.
         */
 
        /*
                /* Update rx_buf, tx_buf and DMA */
                if (xfers[i].rx_buf)
                        xfers[i].rx_buf += offset;
-               if (xfers[i].rx_dma)
-                       xfers[i].rx_dma += offset;
                if (xfers[i].tx_buf)
                        xfers[i].tx_buf += offset;
-               if (xfers[i].tx_dma)
-                       xfers[i].tx_dma += offset;
 
                /* Update length */
                xfers[i].len = min(maxsize, xfers[i].len - offset);
 
  * struct spi_transfer - a read/write buffer pair
  * @tx_buf: data to be written (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
- * @rx_dma: DMA address of rx_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, currently not for client use
  * @tx_nbits: number of bits used for writing. If 0 the default
  *      (SPI_NBITS_SINGLE) is used.
  * @rx_nbits: number of bits used for reading. If 0 the default
        /*
         * It's okay if tx_buf == rx_buf (right?).
         * For MicroWire, one buffer must be NULL.
-        * Buffers must work with dma_*map_single() calls, unless
-        * spi_message.is_dma_mapped reports a pre-existing mapping.
+        * Buffers must work with dma_*map_single() calls.
         */
        const void      *tx_buf;
        void            *rx_buf;
  * struct spi_message - one multi-segment SPI transaction
  * @transfers: list of transfer segments in this transaction
  * @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
  * @optimized: the message is in the optimized state
  * @prepared: spi_prepare_message was called for the this message
 
        struct spi_device       *spi;
 
-       unsigned                is_dma_mapped:1;
-
        /* spi_optimize_message() was called for this message */
        bool                    pre_optimized;
        /* __spi_optimize_message() was called for this message */