unsigned int speed_hz;
        unsigned int bits_per_word;
-       unsigned int bytes_per_word;
        unsigned int spi_drctl;
 
        unsigned int count;
        if (!master->dma_rx)
                return false;
 
-       bpw = transfer->bits_per_word;
-
-       bpw = spi_imx_bytes_per_word(bpw);
+       bpw = spi_imx_bytes_per_word(transfer->bits_per_word);
 
        if (bpw != 1 && bpw != 2 && bpw != 4)
                return false;
        return IRQ_HANDLED;
 }
 
-static int spi_imx_dma_configure(struct spi_master *master,
-                                int bytes_per_word)
+static int spi_imx_dma_configure(struct spi_master *master)
 {
        int ret;
        enum dma_slave_buswidth buswidth;
        struct dma_slave_config rx = {}, tx = {};
        struct spi_imx_data *spi_imx = spi_master_get_devdata(master);
 
-       switch (bytes_per_word) {
+       switch (spi_imx_bytes_per_word(spi_imx->bits_per_word)) {
        case 4:
                buswidth = DMA_SLAVE_BUSWIDTH_4_BYTES;
                break;
                return ret;
        }
 
-       spi_imx->bytes_per_word = bytes_per_word;
-
        return 0;
 }
 
                spi_imx->usedma = 0;
 
        if (spi_imx->usedma) {
-               ret = spi_imx_dma_configure(spi->master,
-                                           spi_imx_bytes_per_word(spi_imx->bits_per_word));
+               ret = spi_imx_dma_configure(spi->master);
                if (ret)
                        return ret;
        }