MIPS: Alchemy: change dbdma to accept physical memory addresses

DMA can only be done from physical addresses; move the "virt_to_phys"
source/destination buffer address translation from the dbdma queueing
functions (since the hardware can only DMA to/from physical addresses)
to their respective users.

Signed-off-by: Manuel Lauss <manuel.lauss@gmail.com>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
diff --git a/drivers/ide/au1xxx-ide.c b/drivers/ide/au1xxx-ide.c
index 377412e..349a67b 100644
--- a/drivers/ide/au1xxx-ide.c
+++ b/drivers/ide/au1xxx-ide.c
@@ -56,7 +56,7 @@
 	chan_tab_t *ctp;
 	au1x_ddma_desc_t *dp;
 
-	if (!au1xxx_dbdma_put_dest(ahwif->rx_chan, (void*)addr,
+	if (!au1xxx_dbdma_put_dest(ahwif->rx_chan, virt_to_phys(addr),
 				   count << 1, DDMA_FLAGS_NOIE)) {
 		printk(KERN_ERR "%s failed %d\n", __func__, __LINE__);
 		return;
@@ -74,7 +74,7 @@
 	chan_tab_t *ctp;
 	au1x_ddma_desc_t *dp;
 
-	if (!au1xxx_dbdma_put_source(ahwif->tx_chan, (void*)addr,
+	if (!au1xxx_dbdma_put_source(ahwif->tx_chan, virt_to_phys(addr),
 				     count << 1, DDMA_FLAGS_NOIE)) {
 		printk(KERN_ERR "%s failed %d\n", __func__, __LINE__);
 		return;
@@ -247,13 +247,13 @@
 
 			if (iswrite) {
 				if (!au1xxx_dbdma_put_source(ahwif->tx_chan,
-					(void *)sg_virt(sg), tc, flags)) {
+					sg_phys(sg), tc, flags)) {
 					printk(KERN_ERR "%s failed %d\n", 
 					       __func__, __LINE__);
 				}
 			} else  {
 				if (!au1xxx_dbdma_put_dest(ahwif->rx_chan,
-					(void *)sg_virt(sg), tc, flags)) {
+					sg_phys(sg), tc, flags)) {
 					printk(KERN_ERR "%s failed %d\n", 
 					       __func__, __LINE__);
 				}
diff --git a/drivers/mmc/host/au1xmmc.c b/drivers/mmc/host/au1xmmc.c
index d295dc5..c8649df 100644
--- a/drivers/mmc/host/au1xmmc.c
+++ b/drivers/mmc/host/au1xmmc.c
@@ -651,10 +651,10 @@
 
 			if (host->flags & HOST_F_XMIT) {
 				ret = au1xxx_dbdma_put_source(channel,
-					(void *)sg_virt(sg), len, flags);
+					sg_phys(sg), len, flags);
 			} else {
 				ret = au1xxx_dbdma_put_dest(channel,
-					(void *)sg_virt(sg), len, flags);
+					sg_phys(sg), len, flags);
 			}
 
 			if (!ret)
diff --git a/drivers/spi/au1550_spi.c b/drivers/spi/au1550_spi.c
index 22f7d72..ba8ac4f 100644
--- a/drivers/spi/au1550_spi.c
+++ b/drivers/spi/au1550_spi.c
@@ -412,12 +412,12 @@
 	}
 
 	/* put buffers on the ring */
-	res = au1xxx_dbdma_put_dest(hw->dma_rx_ch, hw->rx,
+	res = au1xxx_dbdma_put_dest(hw->dma_rx_ch, virt_to_phys(hw->rx),
 				    t->len, DDMA_FLAGS_IE);
 	if (!res)
 		dev_err(hw->dev, "rx dma put dest error\n");
 
-	res = au1xxx_dbdma_put_source(hw->dma_tx_ch, (void *)hw->tx,
+	res = au1xxx_dbdma_put_source(hw->dma_tx_ch, virt_to_phys(hw->tx),
 				      t->len, DDMA_FLAGS_IE);
 	if (!res)
 		dev_err(hw->dev, "tx dma put source error\n");