git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
dn_getsockoptdecnet: move nf_{get/set}sockopt outside sock lock
[pandora-kernel.git]
/
drivers
/
spi
/
spi-dw.c
diff --git
a/drivers/spi/spi-dw.c
b/drivers/spi/spi-dw.c
index
082458d
..
9fc34e6
100644
(file)
--- a/
drivers/spi/spi-dw.c
+++ b/
drivers/spi/spi-dw.c
@@
-400,9
+400,6
@@
static void pump_transfers(unsigned long data)
chip = dws->cur_chip;
spi = message->spi;
chip = dws->cur_chip;
spi = message->spi;
- if (unlikely(!chip->clk_div))
- chip->clk_div = dws->max_freq / chip->speed_hz;
-
if (message->state == ERROR_STATE) {
message->status = -EIO;
goto early_exit;
if (message->state == ERROR_STATE) {
message->status = -EIO;
goto early_exit;
@@
-444,7
+441,7
@@
static void pump_transfers(unsigned long data)
if (transfer->speed_hz) {
speed = chip->speed_hz;
if (transfer->speed_hz) {
speed = chip->speed_hz;
- if (
transfer->speed_hz != speed
) {
+ if (
(transfer->speed_hz != speed) || (!chip->clk_div)
) {
speed = transfer->speed_hz;
if (speed > dws->max_freq) {
printk(KERN_ERR "MRST SPI0: unsupported"
speed = transfer->speed_hz;
if (speed > dws->max_freq) {
printk(KERN_ERR "MRST SPI0: unsupported"
@@
-683,7
+680,6
@@
static int dw_spi_setup(struct spi_device *spi)
dev_err(&spi->dev, "No max speed HZ parameter\n");
return -EINVAL;
}
dev_err(&spi->dev, "No max speed HZ parameter\n");
return -EINVAL;
}
- chip->speed_hz = spi->max_speed_hz;
chip->tmode = 0; /* Tx & Rx */
/* Default SPI mode is SCPOL = 0, SCPH = 0 */
chip->tmode = 0; /* Tx & Rx */
/* Default SPI mode is SCPOL = 0, SCPH = 0 */
@@
-790,13
+786,13
@@
static void spi_hw_init(struct dw_spi *dws)
*/
if (!dws->fifo_len) {
u32 fifo;
*/
if (!dws->fifo_len) {
u32 fifo;
- for (fifo =
2; fifo <= 257
; fifo++) {
+ for (fifo =
1; fifo < 256
; fifo++) {
dw_writew(dws, DW_SPI_TXFLTR, fifo);
if (fifo != dw_readw(dws, DW_SPI_TXFLTR))
break;
}
dw_writew(dws, DW_SPI_TXFLTR, fifo);
if (fifo != dw_readw(dws, DW_SPI_TXFLTR))
break;
}
- dws->fifo_len = (fifo ==
257
) ? 0 : fifo;
+ dws->fifo_len = (fifo ==
1
) ? 0 : fifo;
dw_writew(dws, DW_SPI_TXFLTR, 0);
}
}
dw_writew(dws, DW_SPI_TXFLTR, 0);
}
}