/*-------------------------------------------------------------------------*/
 
-static void spi_set_cs(struct spi_device *spi, bool enable)
+static void spi_set_cs(struct spi_device *spi, bool enable, bool force)
 {
        bool enable1 = enable;
 
         * Avoid calling into the driver (or doing delays) if the chip select
         * isn't actually changing from the last time this was called.
         */
-       if ((spi->controller->last_cs_enable == enable) &&
+       if (!force && (spi->controller->last_cs_enable == enable) &&
            (spi->controller->last_cs_mode_high == (spi->mode & SPI_CS_HIGH)))
                return;
 
        struct spi_statistics *statm = &ctlr->statistics;
        struct spi_statistics *stats = &msg->spi->statistics;
 
-       spi_set_cs(msg->spi, true);
+       spi_set_cs(msg->spi, true, false);
 
        SPI_STATISTICS_INCREMENT_FIELD(statm, messages);
        SPI_STATISTICS_INCREMENT_FIELD(stats, messages);
                                         &msg->transfers)) {
                                keep_cs = true;
                        } else {
-                               spi_set_cs(msg->spi, false);
+                               spi_set_cs(msg->spi, false, false);
                                _spi_transfer_cs_change_delay(msg, xfer);
-                               spi_set_cs(msg->spi, true);
+                               spi_set_cs(msg->spi, true, false);
                        }
                }
 
 
 out:
        if (ret != 0 || !keep_cs)
-               spi_set_cs(msg->spi, false);
+               spi_set_cs(msg->spi, false, false);
 
        if (msg->status == -EINPROGRESS)
                msg->status = ret;
                 */
                status = 0;
 
-               spi_set_cs(spi, false);
+               spi_set_cs(spi, false, true);
                pm_runtime_mark_last_busy(spi->controller->dev.parent);
                pm_runtime_put_autosuspend(spi->controller->dev.parent);
        } else {
-               spi_set_cs(spi, false);
+               spi_set_cs(spi, false, true);
        }
 
        mutex_unlock(&spi->controller->io_mutex);