for_each_sg(sgt->sgl, sg, sgt->nents, i) {
                size_t bytes = min_t(size_t, len, SZ_2K);
 
-               if (buf)
-                       sg_set_buf(sg, pbuf, bytes);
-               else
-                       sg_set_buf(sg, drv_data->dummy, bytes);
-
+               sg_set_buf(sg, pbuf, bytes);
                pbuf += bytes;
                len -= bytes;
        }
        dma_cap_zero(mask);
        dma_cap_set(DMA_SLAVE, mask);
 
-       drv_data->dummy = devm_kzalloc(dev, SZ_2K, GFP_KERNEL);
-       if (!drv_data->dummy)
-               return -ENOMEM;
-
        drv_data->tx_chan = dma_request_slave_channel_compat(mask,
                                pdata->dma_filter, pdata->tx_param, dev, "tx");
        if (!drv_data->tx_chan)
 
        master->unprepare_transfer_hardware = pxa2xx_spi_unprepare_transfer;
        master->fw_translate_cs = pxa2xx_spi_fw_translate_cs;
        master->auto_runtime_pm = true;
+       master->flags = SPI_MASTER_MUST_RX | SPI_MASTER_MUST_TX;
 
        drv_data->ssp_type = ssp->type;