From: Brian Niebuhr <[email protected]>

Setup chip-select timers values only if timer is enabled
(timer_disbled in spi configuration is false).

As a nice side effect, this patch removes code duplicated in
davinci_spi_bufs_pio() and davinci_spi_bufs_dma().

Signed-off-by: Brian Niebuhr <[email protected]>
Tested-By: Michael Williamson <[email protected]>
Signed-off-by: Sekhar Nori <[email protected]>
---
 drivers/spi/davinci_spi.c |   21 ++++-----------------
 1 files changed, 4 insertions(+), 17 deletions(-)

diff --git a/drivers/spi/davinci_spi.c b/drivers/spi/davinci_spi.c
index 34b28fe..d09b63c 100644
--- a/drivers/spi/davinci_spi.c
+++ b/drivers/spi/davinci_spi.c
@@ -374,6 +374,10 @@ static int davinci_spi_setup_transfer(struct spi_device 
*spi,
 
                if (spicfg->timer_disable)
                        spifmt |= SPIFMT_DISTIMER_MASK;
+               else
+                       iowrite32((spicfg->c2tdelay << SPI_C2TDELAY_SHIFT) |
+                                 (spicfg->t2cdelay << SPI_T2CDELAY_SHIFT),
+                                 davinci_spi->base + SPIDELAY);
 
                if (spi->mode & SPI_READY)
                        spifmt |= SPIFMT_WAITENA_MASK;
@@ -607,13 +611,9 @@ static int davinci_spi_bufs_pio(struct spi_device *spi, 
struct spi_transfer *t)
        u32 tx_data, data1_reg_val;
        u32 buf_val, flg_val;
        struct davinci_spi_platform_data *pdata;
-       struct davinci_spi_config *spicfg;
 
        davinci_spi = spi_master_get_devdata(spi->master);
        pdata = davinci_spi->pdata;
-       spicfg = (struct davinci_spi_config *)spi->controller_data;
-       if (!spicfg)
-               spicfg = &davinci_spi_default_cfg;
 
        davinci_spi->tx = t->tx_buf;
        davinci_spi->rx = t->rx_buf;
@@ -633,10 +633,6 @@ static int davinci_spi_bufs_pio(struct spi_device *spi, 
struct spi_transfer *t)
        /* Enable SPI */
        set_io_bits(davinci_spi->base + SPIGCR1, SPIGCR1_SPIENA_MASK);
 
-       iowrite32((spicfg->c2tdelay << SPI_C2TDELAY_SHIFT) |
-                       (spicfg->t2cdelay << SPI_T2CDELAY_SHIFT),
-                       davinci_spi->base + SPIDELAY);
-
        count = davinci_spi->count;
 
        /* Determine the command to execute READ or WRITE */
@@ -741,14 +737,10 @@ static int davinci_spi_bufs_dma(struct spi_device *spi, 
struct spi_transfer *t)
        struct davinci_spi_dma *davinci_spi_dma;
        int word_len, data_type, ret;
        unsigned long tx_reg, rx_reg;
-       struct davinci_spi_config *spicfg;
        struct device *sdev;
 
        davinci_spi = spi_master_get_devdata(spi->master);
        sdev = davinci_spi->bitbang.master->dev.parent;
-       spicfg = (struct davinci_spi_config *)spi->controller_data;
-       if (!spicfg)
-               spicfg = &davinci_spi_default_cfg;
 
        davinci_spi_dma = &davinci_spi->dma_channels[spi->chip_select];
 
@@ -784,11 +776,6 @@ static int davinci_spi_bufs_dma(struct spi_device *spi, 
struct spi_transfer *t)
        if (ret)
                return ret;
 
-       /* Put delay val if required */
-       iowrite32((spicfg->c2tdelay << SPI_C2TDELAY_SHIFT) |
-                       (spicfg->t2cdelay << SPI_T2CDELAY_SHIFT),
-                       davinci_spi->base + SPIDELAY);
-
        count = davinci_spi->count;     /* the number of elements */
 
        /* disable all interrupts for dma transfers */
-- 
1.7.3.2


------------------------------------------------------------------------------
Beautiful is writing same markup. Internet Explorer 9 supports
standards for HTML5, CSS3, SVG 1.1,  ECMAScript5, and DOM L2 & L3.
Spend less time writing and  rewriting code and more time creating great
experiences on the web. Be a part of the beta today
http://p.sf.net/sfu/msIE9-sfdev2dev
_______________________________________________
spi-devel-general mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/spi-devel-general

Reply via email to