|
@@ -29,18 +29,6 @@ static int pxa2xx_spi_map_dma_buffer(struct driver_data *drv_data,
|
|
|
struct sg_table *sgt;
|
|
|
void *buf, *pbuf;
|
|
|
|
|
|
- /*
|
|
|
- * Some DMA controllers have problems transferring buffers that are
|
|
|
- * not multiple of 4 bytes. So we truncate the transfer so that it
|
|
|
- * is suitable for such controllers, and handle the trailing bytes
|
|
|
- * manually after the DMA completes.
|
|
|
- *
|
|
|
- * REVISIT: It would be better if this information could be
|
|
|
- * retrieved directly from the DMA device in a similar way than
|
|
|
- * ->copy_align etc. is done.
|
|
|
- */
|
|
|
- len = ALIGN(drv_data->len, 4);
|
|
|
-
|
|
|
if (dir == DMA_TO_DEVICE) {
|
|
|
dmadev = drv_data->tx_chan->device->dev;
|
|
|
sgt = &drv_data->tx_sgt;
|
|
@@ -144,12 +132,8 @@ static void pxa2xx_spi_dma_transfer_complete(struct driver_data *drv_data,
|
|
|
if (!error) {
|
|
|
pxa2xx_spi_unmap_dma_buffers(drv_data);
|
|
|
|
|
|
- /* Handle the last bytes of unaligned transfer */
|
|
|
drv_data->tx += drv_data->tx_map_len;
|
|
|
- drv_data->write(drv_data);
|
|
|
-
|
|
|
drv_data->rx += drv_data->rx_map_len;
|
|
|
- drv_data->read(drv_data);
|
|
|
|
|
|
msg->actual_length += drv_data->len;
|
|
|
msg->state = pxa2xx_spi_next_transfer(drv_data);
|