diff options
| author | David S. Miller <davem@davemloft.net> | 2010-03-22 20:05:26 -0700 | 
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2010-03-22 20:05:26 -0700 | 
| commit | 91c030b4d6445ebe9fbddb86d584441f300df15c (patch) | |
| tree | e8a48e3ad9e0448c690268175e555fa651983546 /drivers/spi/omap2_mcspi.c | |
| parent | 7c3456fdb503071787f7f972de1069b9cacd16f0 (diff) | |
| parent | ae6be51ed01d6c4aaf249a207b4434bc7785853b (diff) | |
Merge branch 'master' of /home/davem/src/GIT/linux-2.6/
Diffstat (limited to 'drivers/spi/omap2_mcspi.c')
| -rw-r--r-- | drivers/spi/omap2_mcspi.c | 18 | 
1 files changed, 12 insertions, 6 deletions
| diff --git a/drivers/spi/omap2_mcspi.c b/drivers/spi/omap2_mcspi.c index 715c518b1b68..4dd786b99b8b 100644 --- a/drivers/spi/omap2_mcspi.c +++ b/drivers/spi/omap2_mcspi.c @@ -578,6 +578,7 @@ static int omap2_mcspi_setup_transfer(struct spi_device *spi,  	struct spi_master *spi_cntrl;  	u32 l = 0, div = 0;  	u8 word_len = spi->bits_per_word; +	u32 speed_hz = spi->max_speed_hz;  	mcspi = spi_master_get_devdata(spi->master);  	spi_cntrl = mcspi->master; @@ -587,9 +588,12 @@ static int omap2_mcspi_setup_transfer(struct spi_device *spi,  	cs->word_len = word_len; -	if (spi->max_speed_hz) { +	if (t && t->speed_hz) +		speed_hz = t->speed_hz; + +	if (speed_hz) {  		while (div <= 15 && (OMAP2_MCSPI_MAX_FREQ / (1 << div)) -					> spi->max_speed_hz) +					> speed_hz)  			div++;  	} else  		div = 15; @@ -751,11 +755,13 @@ static void omap2_mcspi_cleanup(struct spi_device *spi)  	mcspi = spi_master_get_devdata(spi->master);  	mcspi_dma = &mcspi->dma_channels[spi->chip_select]; -	/* Unlink controller state from context save list */ -	cs = spi->controller_state; -	list_del(&cs->node); +	if (spi->controller_state) { +		/* Unlink controller state from context save list */ +		cs = spi->controller_state; +		list_del(&cs->node); -	kfree(spi->controller_state); +		kfree(spi->controller_state); +	}  	if (mcspi_dma->dma_rx_channel != -1) {  		omap_free_dma(mcspi_dma->dma_rx_channel); | 
