]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/i2c/busses/i2c-at91.c
i2c: at91: print error messages in case of failed dma_request_slave_channel_reason()
[karo-tx-linux.git] / drivers / i2c / busses / i2c-at91.c
index ff23d1bdd23072c6c5cec5f690b048ae4dee0f8e..0353599f2fdac455d2874f2fbe003a12c96d03f3 100644 (file)
@@ -185,7 +185,7 @@ static void at91_twi_dma_cleanup(struct at91_twi_dev *dev)
        }
        if (dma->buf_mapped) {
                dma_unmap_single(dev->dev, sg_dma_address(&dma->sg),
-                                dev->buf_len, dma->direction);
+                               sg_dma_len(&dma->sg), dma->direction);
                dma->buf_mapped = false;
        }
 
@@ -213,7 +213,7 @@ static void at91_twi_write_data_dma_callback(void *data)
        struct at91_twi_dev *dev = (struct at91_twi_dev *)data;
 
        dma_unmap_single(dev->dev, sg_dma_address(&dev->dma.sg),
-                        dev->buf_len, DMA_TO_DEVICE);
+                       sg_dma_len(&dev->dma.sg), DMA_TO_DEVICE);
 
        at91_twi_write(dev, AT91_TWI_CR, AT91_TWI_STOP);
 }
@@ -304,7 +304,7 @@ static void at91_twi_read_data_dma_callback(void *data)
        struct at91_twi_dev *dev = (struct at91_twi_dev *)data;
 
        dma_unmap_single(dev->dev, sg_dma_address(&dev->dma.sg),
-                        dev->buf_len, DMA_FROM_DEVICE);
+                       sg_dma_len(&dev->dma.sg), DMA_FROM_DEVICE);
 
        /* The last two bytes have to be read without using dma */
        dev->buf += dev->buf_len - 2;
@@ -643,6 +643,7 @@ static int at91_twi_configure_dma(struct at91_twi_dev *dev, u32 phy_addr)
        dma->chan_tx = dma_request_slave_channel_reason(dev->dev, "tx");
        if (IS_ERR(dma->chan_tx)) {
                ret = PTR_ERR(dma->chan_tx);
+               dev_err(dev->dev, "Failed to get tx DMA: %d\n", ret);
                dma->chan_tx = NULL;
                goto error;
        }
@@ -650,6 +651,7 @@ static int at91_twi_configure_dma(struct at91_twi_dev *dev, u32 phy_addr)
        dma->chan_rx = dma_request_slave_channel_reason(dev->dev, "rx");
        if (IS_ERR(dma->chan_rx)) {
                ret = PTR_ERR(dma->chan_rx);
+               dev_err(dev->dev, "Failed to get rx DMA: %d\n", ret);
                dma->chan_rx = NULL;
                goto error;
        }