Merge tag 'vfio-v3.15-rc1' of git://github.com/awilliam/linux-vfio
[cascardo/linux.git] / drivers / spi / spi-omap-100k.c
index 0d32054..e7ffcde 100644 (file)
 #define SPI_SHUTDOWN   1
 
 struct omap1_spi100k {
-       struct spi_master       *master;
        struct clk              *ick;
        struct clk              *fck;
 
        /* Virtual base address of the controller */
        void __iomem            *base;
-
-       /* State of the SPI */
-       unsigned int            state;
 };
 
 struct omap1_spi100k_cs {
@@ -99,13 +95,6 @@ struct omap1_spi100k_cs {
        int                     word_len;
 };
 
-#define MOD_REG_BIT(val, mask, set) do { \
-       if (set) \
-               val |= mask; \
-       else \
-               val &= ~mask; \
-} while (0)
-
 static void spi100k_enable_clock(struct spi_master *master)
 {
        unsigned int val;
@@ -139,7 +128,7 @@ static void spi100k_write_data(struct spi_master *master, int len, int data)
        }
 
        spi100k_enable_clock(master);
-       writew( data , spi100k->base + SPI_TX_MSB);
+       writew(data , spi100k->base + SPI_TX_MSB);
 
        writew(SPI_CTRL_SEN(0) |
               SPI_CTRL_WORD_SIZE(len) |
@@ -147,7 +136,8 @@ static void spi100k_write_data(struct spi_master *master, int len, int data)
               spi100k->base + SPI_CTRL);
 
        /* Wait for bit ack send change */
-       while((readw(spi100k->base + SPI_STATUS) & SPI_STATUS_WE) != SPI_STATUS_WE);
+       while ((readw(spi100k->base + SPI_STATUS) & SPI_STATUS_WE) != SPI_STATUS_WE)
+               ;
        udelay(1000);
 
        spi100k_disable_clock(master);
@@ -155,7 +145,7 @@ static void spi100k_write_data(struct spi_master *master, int len, int data)
 
 static int spi100k_read_data(struct spi_master *master, int len)
 {
-       int dataH,dataL;
+       int dataH, dataL;
        struct omap1_spi100k *spi100k = spi_master_get_devdata(master);
 
        /* Always do at least 16 bits */
@@ -168,7 +158,8 @@ static int spi100k_read_data(struct spi_master *master, int len)
               SPI_CTRL_RD,
               spi100k->base + SPI_CTRL);
 
-       while((readw(spi100k->base + SPI_STATUS) & SPI_STATUS_RD) != SPI_STATUS_RD);
+       while ((readw(spi100k->base + SPI_STATUS) & SPI_STATUS_RD) != SPI_STATUS_RD)
+               ;
        udelay(1000);
 
        dataL = readw(spi100k->base + SPI_RX_LSB);
@@ -204,12 +195,10 @@ static void omap1_spi100k_force_cs(struct omap1_spi100k *spi100k, int enable)
 static unsigned
 omap1_spi100k_txrx_pio(struct spi_device *spi, struct spi_transfer *xfer)
 {
-       struct omap1_spi100k    *spi100k;
        struct omap1_spi100k_cs *cs = spi->controller_state;
        unsigned int            count, c;
        int                     word_len;
 
-       spi100k = spi_master_get_devdata(spi->master);
        count = xfer->len;
        c = count;
        word_len = cs->word_len;
@@ -221,12 +210,12 @@ omap1_spi100k_txrx_pio(struct spi_device *spi, struct spi_transfer *xfer)
                rx = xfer->rx_buf;
                tx = xfer->tx_buf;
                do {
-                       c-=1;
+                       c -= 1;
                        if (xfer->tx_buf != NULL)
                                spi100k_write_data(spi->master, word_len, *tx++);
                        if (xfer->rx_buf != NULL)
                                *rx++ = spi100k_read_data(spi->master, word_len);
-               } while(c);
+               } while (c);
        } else if (word_len <= 16) {
                u16             *rx;
                const u16       *tx;
@@ -234,12 +223,12 @@ omap1_spi100k_txrx_pio(struct spi_device *spi, struct spi_transfer *xfer)
                rx = xfer->rx_buf;
                tx = xfer->tx_buf;
                do {
-                       c-=2;
+                       c -= 2;
                        if (xfer->tx_buf != NULL)
-                               spi100k_write_data(spi->master,word_len, *tx++);
+                               spi100k_write_data(spi->master, word_len, *tx++);
                        if (xfer->rx_buf != NULL)
-                               *rx++ = spi100k_read_data(spi->master,word_len);
-               } while(c);
+                               *rx++ = spi100k_read_data(spi->master, word_len);
+               } while (c);
        } else if (word_len <= 32) {
                u32             *rx;
                const u32       *tx;
@@ -247,12 +236,12 @@ omap1_spi100k_txrx_pio(struct spi_device *spi, struct spi_transfer *xfer)
                rx = xfer->rx_buf;
                tx = xfer->tx_buf;
                do {
-                       c-=4;
+                       c -= 4;
                        if (xfer->tx_buf != NULL)
-                               spi100k_write_data(spi->master,word_len, *tx);
+                               spi100k_write_data(spi->master, word_len, *tx);
                        if (xfer->rx_buf != NULL)
-                               *rx = spi100k_read_data(spi->master,word_len);
-               } while(c);
+                               *rx = spi100k_read_data(spi->master, word_len);
+               } while (c);
        }
        return count - c;
 }
@@ -294,7 +283,7 @@ static int omap1_spi100k_setup(struct spi_device *spi)
        spi100k = spi_master_get_devdata(spi->master);
 
        if (!cs) {
-               cs = kzalloc(sizeof *cs, GFP_KERNEL);
+               cs = devm_kzalloc(&spi->dev, sizeof(*cs), GFP_KERNEL);
                if (!cs)
                        return -ENOMEM;
                cs->base = spi100k->base + spi->chip_select * 0x14;
@@ -411,14 +400,14 @@ static int omap1_spi100k_probe(struct platform_device *pdev)
        if (!pdev->id)
                return -EINVAL;
 
-       master = spi_alloc_master(&pdev->dev, sizeof *spi100k);
+       master = spi_alloc_master(&pdev->dev, sizeof(*spi100k));
        if (master == NULL) {
                dev_dbg(&pdev->dev, "master allocation failed\n");
                return -ENOMEM;
        }
 
        if (pdev->id != -1)
-              master->bus_num = pdev->id;
+               master->bus_num = pdev->id;
 
        master->setup = omap1_spi100k_setup;
        master->transfer_one_message = omap1_spi100k_transfer_one_message;
@@ -434,7 +423,6 @@ static int omap1_spi100k_probe(struct platform_device *pdev)
        platform_set_drvdata(pdev, master);
 
        spi100k = spi_master_get_devdata(master);
-       spi100k->master = master;
 
        /*
         * The memory region base address is taken as the platform_data.
@@ -461,8 +449,6 @@ static int omap1_spi100k_probe(struct platform_device *pdev)
        if (status < 0)
                goto err;
 
-       spi100k->state = SPI_RUNNING;
-
        return status;
 
 err: