Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fd764463 authored by Brian Niebuhr's avatar Brian Niebuhr Committed by Sekhar Nori
Browse files

spi: davinci: setup chip-select timers values only if timer enabled



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: default avatarBrian Niebuhr <bniebuhr@efjohnson.com>
Tested-By: default avatarMichael Williamson <michael.williamson@criticallink.com>
Signed-off-by: default avatarSekhar Nori <nsekhar@ti.com>
parent 25f33512
Loading
Loading
Loading
Loading
+4 −17
Original line number Diff line number Diff line
@@ -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 */