return status;
 }
+static int cdns_prepare_message(struct spi_master *master,
+                               struct spi_message *msg)
+{
+       cdns_spi_config_clock_mode(msg->spi);
+       return 0;
+}
 
 /**
  * cdns_transfer_one - Initiates the SPI transfer
 {
        struct cdns_spi *xspi = spi_master_get_devdata(master);
 
-       cdns_spi_config_clock_mode(master->cur_msg->spi);
-
        cdns_spi_write(xspi, CDNS_SPI_ER_OFFSET,
                       CDNS_SPI_ER_ENABLE_MASK);
 
                xspi->is_decoded_cs = 0;
 
        master->prepare_transfer_hardware = cdns_prepare_transfer_hardware;
+       master->prepare_message = cdns_prepare_message;
        master->transfer_one = cdns_transfer_one;
        master->unprepare_transfer_hardware = cdns_unprepare_transfer_hardware;
        master->set_cs = cdns_spi_chipselect;