Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx
[safe/jmp/linux-2.6] / drivers / spi / spi_imx.c
index 0480d8b..0671aee 100644 (file)
 #define QUEUE_STOPPED                  (1)
 
 #define IS_DMA_ALIGNED(x)              (((u32)(x) & 0x03) == 0)
+#define DMA_ALIGNMENT                  4
 /*-------------------------------------------------------------------------*/
 
 
@@ -779,7 +780,8 @@ static irqreturn_t interrupt_transfer(struct driver_data *drv_data)
 
                        /* Read trailing bytes */
                        limit = loops_per_jiffy << 1;
-                       while ((read(drv_data) == 0) && limit--);
+                       while ((read(drv_data) == 0) && --limit)
+                               cpu_relax();
 
                        if (limit == 0)
                                dev_err(&drv_data->pdev->dev,
@@ -1481,6 +1483,7 @@ static int __init spi_imx_probe(struct platform_device *pdev)
 
        master->bus_num = pdev->id;
        master->num_chipselect = platform_info->num_chipselect;
+       master->dma_alignment = DMA_ALIGNMENT;
        master->cleanup = cleanup;
        master->setup = setup;
        master->transfer = transfer;