[ARM] omap: remove an io_v2p() usage
authorRussell King <rmk@dyn-67.arm.linux.org.uk>
Mon, 1 Sep 2008 20:51:50 +0000 (21:51 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Fri, 5 Sep 2008 16:02:29 +0000 (17:02 +0100)
When omap_udc is also incorporated, this macro will no longer be used.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
drivers/spi/omap2_mcspi.c

index 9d2186fd74aaf7eaca9f9954dde88d1dc11e7c36..576ae29c39d8e23882f9aa8ad31dd8324aa9aaa4 100644 (file)
@@ -119,12 +119,14 @@ struct omap2_mcspi {
        struct clk              *fck;
        /* Virtual base address of the controller */
        void __iomem            *base;
+       unsigned long           phys;
        /* SPI1 has 4 channels, while SPI2 has 2 */
        struct omap2_mcspi_dma  *dma_channels;
 };
 
 struct omap2_mcspi_cs {
        void __iomem            *base;
+       unsigned long           phys;
        int                     word_len;
 };
 
@@ -233,7 +235,7 @@ omap2_mcspi_txrx_dma(struct spi_device *spi, struct spi_transfer *xfer)
        c = count;
        word_len = cs->word_len;
 
-       base = (unsigned long) io_v2p(cs->base);
+       base = cs->phys;
        tx_reg = base + OMAP2_MCSPI_TX0;
        rx_reg = base + OMAP2_MCSPI_RX0;
        rx = xfer->rx_buf;
@@ -633,6 +635,7 @@ static int omap2_mcspi_setup(struct spi_device *spi)
                if (!cs)
                        return -ENOMEM;
                cs->base = mcspi->base + spi->chip_select * 0x14;
+               cs->phys = mcspi->phys + spi->chip_select * 0x14;
                spi->controller_state = cs;
        }
 
@@ -1005,6 +1008,7 @@ static int __init omap2_mcspi_probe(struct platform_device *pdev)
                goto err1;
        }
 
+       mcspi->phys = r->start;
        mcspi->base = (void __iomem *) io_p2v(r->start);
 
        INIT_WORK(&mcspi->work, omap2_mcspi_work);