rk30:modify dma_alloc_coherent operation for spim
authorlw <lw@rock-chips.com>
Wed, 29 Feb 2012 09:22:57 +0000 (17:22 +0800)
committerlw <lw@rock-chips.com>
Wed, 29 Feb 2012 09:22:57 +0000 (17:22 +0800)
drivers/spi/rk29_spim.c

index 8b3dfd300d7cf6cf14dc5043b01747066b80b496..4086470f73a7c5858609781ad920308cda9fb52e 100755 (executable)
@@ -469,6 +469,20 @@ static int acquire_dma(struct rk29xx_spi *dws)
                return 0;\r
        }\r
 \r
+       dws->buffer_tx_dma = dma_alloc_coherent(&dws->pdev->dev, DMA_BUFFER_SIZE, &dws->tx_dma, GFP_KERNEL | GFP_DMA);\r
+       if (!dws->buffer_tx_dma)\r
+       {\r
+               dev_err(&dws->pdev->dev, "fail to dma tx buffer alloc\n");\r
+               return -1;\r
+       }\r
+\r
+       dws->buffer_rx_dma = dma_alloc_coherent(&dws->pdev->dev, DMA_BUFFER_SIZE, &dws->rx_dma, GFP_KERNEL | GFP_DMA);\r
+       if (!dws->buffer_rx_dma)\r
+       {\r
+               dev_err(&dws->pdev->dev, "fail to dma rx buffer alloc\n");\r
+               return -1;\r
+       }\r
+\r
        if(rk29_dma_request(dws->rx_dmach, \r
                &rk29_spi_dma_client, NULL) < 0) {\r
                dev_err(&dws->master->dev, "dws->rx_dmach : %d, cannot get RxDMA\n", dws->rx_dmach);\r
@@ -1896,21 +1910,6 @@ static int __init rk29xx_spim_probe(struct platform_device *pdev)
                dev_err(&pdev->dev, "clk_get for spi fail(%p)\n", dws->clock_spim);\r
                return PTR_ERR(dws->clock_spim);\r
        }\r
-\r
-       \r
-       dws->buffer_tx_dma = dma_alloc_coherent(&pdev->dev, DMA_BUFFER_SIZE, &dws->tx_dma, GFP_KERNEL | GFP_DMA);\r
-       if (!dws->buffer_tx_dma)\r
-       {\r
-               dev_err(&pdev->dev, "fail to dma tx buffer alloc\n");\r
-               goto exit;\r
-       }\r
-\r
-       dws->buffer_rx_dma = dma_alloc_coherent(&pdev->dev, DMA_BUFFER_SIZE, &dws->rx_dma, GFP_KERNEL | GFP_DMA);\r
-       if (!dws->buffer_rx_dma)\r
-       {\r
-               dev_err(&pdev->dev, "fail to dma rx buffer alloc\n");\r
-               goto exit;\r
-       }\r
        \r
        mutex_init(&dws->dma_lock);\r
        \r