static int pch_spi_transfer(struct spi_device *pspi, struct spi_message *pmsg)
 {
-
-       struct spi_transfer *transfer;
        struct pch_spi_data *data = spi_master_get_devdata(pspi->master);
        int retval;
        unsigned long flags;
 
-       spin_lock_irqsave(&data->lock, flags);
-       /* validate Tx/Rx buffers and Transfer length */
-       list_for_each_entry(transfer, &pmsg->transfers, transfer_list) {
-               if (!transfer->tx_buf && !transfer->rx_buf) {
-                       dev_err(&pspi->dev,
-                               "%s Tx and Rx buffer NULL\n", __func__);
-                       retval = -EINVAL;
-                       goto err_return_spinlock;
-               }
-
-               if (!transfer->len) {
-                       dev_err(&pspi->dev, "%s Transfer length invalid\n",
-                               __func__);
-                       retval = -EINVAL;
-                       goto err_return_spinlock;
-               }
-
-               dev_dbg(&pspi->dev,
-                       "%s Tx/Rx buffer valid. Transfer length valid\n",
-                       __func__);
-       }
-       spin_unlock_irqrestore(&data->lock, flags);
-
        /* We won't process any messages if we have been asked to terminate */
        if (data->status == STATUS_EXITING) {
                dev_err(&pspi->dev, "%s status = STATUS_EXITING.\n", __func__);
 err_out:
        dev_dbg(&pspi->dev, "%s RETURN=%d\n", __func__, retval);
        return retval;
-err_return_spinlock:
-       dev_dbg(&pspi->dev, "%s RETURN=%d\n", __func__, retval);
-       spin_unlock_irqrestore(&data->lock, flags);
-       return retval;
 }
 
 static inline void pch_spi_select_chip(struct pch_spi_data *data,
        master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_LSB_FIRST;
        master->bits_per_word_mask = SPI_BPW_MASK(8) | SPI_BPW_MASK(16);
        master->max_speed_hz = PCH_MAX_BAUDRATE;
+       master->flags = SPI_CONTROLLER_MUST_RX | SPI_CONTROLLER_MUST_TX;
 
        data->board_dat = board_dat;
        data->plat_dev = plat_dev;