aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/spi/spi_imx.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/spi/spi_imx.c')
-rw-r--r--drivers/spi/spi_imx.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/spi/spi_imx.c b/drivers/spi/spi_imx.c
index 0480d8bb19d3..0671aeef5792 100644
--- a/drivers/spi/spi_imx.c
+++ b/drivers/spi/spi_imx.c
@@ -186,6 +186,7 @@
186#define QUEUE_STOPPED (1) 186#define QUEUE_STOPPED (1)
187 187
188#define IS_DMA_ALIGNED(x) (((u32)(x) & 0x03) == 0) 188#define IS_DMA_ALIGNED(x) (((u32)(x) & 0x03) == 0)
189#define DMA_ALIGNMENT 4
189/*-------------------------------------------------------------------------*/ 190/*-------------------------------------------------------------------------*/
190 191
191 192
@@ -779,7 +780,8 @@ static irqreturn_t interrupt_transfer(struct driver_data *drv_data)
779 780
780 /* Read trailing bytes */ 781 /* Read trailing bytes */
781 limit = loops_per_jiffy << 1; 782 limit = loops_per_jiffy << 1;
782 while ((read(drv_data) == 0) && limit--); 783 while ((read(drv_data) == 0) && --limit)
784 cpu_relax();
783 785
784 if (limit == 0) 786 if (limit == 0)
785 dev_err(&drv_data->pdev->dev, 787 dev_err(&drv_data->pdev->dev,
@@ -1481,6 +1483,7 @@ static int __init spi_imx_probe(struct platform_device *pdev)
1481 1483
1482 master->bus_num = pdev->id; 1484 master->bus_num = pdev->id;
1483 master->num_chipselect = platform_info->num_chipselect; 1485 master->num_chipselect = platform_info->num_chipselect;
1486 master->dma_alignment = DMA_ALIGNMENT;
1484 master->cleanup = cleanup; 1487 master->cleanup = cleanup;
1485 master->setup = setup; 1488 master->setup = setup;
1486 master->transfer = transfer; 1489 master->transfer = transfer;