diff options
| author | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2009-12-02 23:38:13 -0800 | 
|---|---|---|
| committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2009-12-02 23:38:13 -0800 | 
| commit | 467832032cc07626880363efa8625719c16c04eb (patch) | |
| tree | ee9a62c04f0b3106e412bc1b2dd1cea5566d5ca7 /drivers/spi/spi_txx9.c | |
| parent | 66d2a5952eab875f1286e04f738ef029afdaf013 (diff) | |
| parent | 22763c5cf3690a681551162c15d34d935308c8d7 (diff) | |
| download | olio-linux-3.10-467832032cc07626880363efa8625719c16c04eb.tar.xz olio-linux-3.10-467832032cc07626880363efa8625719c16c04eb.zip  | |
Merge commit 'v2.6.32' into next
Diffstat (limited to 'drivers/spi/spi_txx9.c')
| -rw-r--r-- | drivers/spi/spi_txx9.c | 13 | 
1 files changed, 6 insertions, 7 deletions
diff --git a/drivers/spi/spi_txx9.c b/drivers/spi/spi_txx9.c index 96057de133a..19f75627c3d 100644 --- a/drivers/spi/spi_txx9.c +++ b/drivers/spi/spi_txx9.c @@ -29,6 +29,8 @@  #define SPI_FIFO_SIZE 4 +#define SPI_MAX_DIVIDER 0xff	/* Max. value for SPCR1.SER */ +#define SPI_MIN_DIVIDER 1	/* Min. value for SPCR1.SER */  #define TXx9_SPMCR		0x00  #define TXx9_SPCR0		0x04 @@ -193,11 +195,8 @@ static void txx9spi_work_one(struct txx9spi *c, struct spi_message *m)  		if (prev_speed_hz != speed_hz  				|| prev_bits_per_word != bits_per_word) { -			u32 n = (c->baseclk + speed_hz - 1) / speed_hz; -			if (n < 1) -				n = 1; -			else if (n > 0xff) -				n = 0xff; +			int n = DIV_ROUND_UP(c->baseclk, speed_hz) - 1; +			n = clamp(n, SPI_MIN_DIVIDER, SPI_MAX_DIVIDER);  			/* enter config mode */  			txx9spi_wr(c, mcr | TXx9_SPMCR_CONFIG | TXx9_SPMCR_BCLR,  					TXx9_SPMCR); @@ -370,8 +369,8 @@ static int __init txx9spi_probe(struct platform_device *dev)  		goto exit;  	}  	c->baseclk = clk_get_rate(c->clk); -	c->min_speed_hz = (c->baseclk + 0xff - 1) / 0xff; -	c->max_speed_hz = c->baseclk; +	c->min_speed_hz = DIV_ROUND_UP(c->baseclk, SPI_MAX_DIVIDER + 1); +	c->max_speed_hz = c->baseclk / (SPI_MIN_DIVIDER + 1);  	res = platform_get_resource(dev, IORESOURCE_MEM, 0);  	if (!res)  |