Merge remote-tracking branches 'spi/fix/dw' and 'spi/fix/sirf' into spi-linus
This commit is contained in:
commit
ec058615f1
|
@ -376,9 +376,6 @@ static void pump_transfers(unsigned long data)
|
||||||
chip = dws->cur_chip;
|
chip = dws->cur_chip;
|
||||||
spi = message->spi;
|
spi = message->spi;
|
||||||
|
|
||||||
if (unlikely(!chip->clk_div))
|
|
||||||
chip->clk_div = dws->max_freq / chip->speed_hz;
|
|
||||||
|
|
||||||
if (message->state == ERROR_STATE) {
|
if (message->state == ERROR_STATE) {
|
||||||
message->status = -EIO;
|
message->status = -EIO;
|
||||||
goto early_exit;
|
goto early_exit;
|
||||||
|
@ -419,7 +416,7 @@ static void pump_transfers(unsigned long data)
|
||||||
if (transfer->speed_hz) {
|
if (transfer->speed_hz) {
|
||||||
speed = chip->speed_hz;
|
speed = chip->speed_hz;
|
||||||
|
|
||||||
if (transfer->speed_hz != speed) {
|
if ((transfer->speed_hz != speed) || (!chip->clk_div)) {
|
||||||
speed = transfer->speed_hz;
|
speed = transfer->speed_hz;
|
||||||
|
|
||||||
/* clk_div doesn't support odd number */
|
/* clk_div doesn't support odd number */
|
||||||
|
@ -581,7 +578,6 @@ static int dw_spi_setup(struct spi_device *spi)
|
||||||
dev_err(&spi->dev, "No max speed HZ parameter\n");
|
dev_err(&spi->dev, "No max speed HZ parameter\n");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
chip->speed_hz = spi->max_speed_hz;
|
|
||||||
|
|
||||||
chip->tmode = 0; /* Tx & Rx */
|
chip->tmode = 0; /* Tx & Rx */
|
||||||
/* Default SPI mode is SCPOL = 0, SCPH = 0 */
|
/* Default SPI mode is SCPOL = 0, SCPH = 0 */
|
||||||
|
|
|
@ -562,9 +562,9 @@ spi_sirfsoc_setup_transfer(struct spi_device *spi, struct spi_transfer *t)
|
||||||
|
|
||||||
sspi->word_width = DIV_ROUND_UP(bits_per_word, 8);
|
sspi->word_width = DIV_ROUND_UP(bits_per_word, 8);
|
||||||
txfifo_ctrl = SIRFSOC_SPI_FIFO_THD(SIRFSOC_SPI_FIFO_SIZE / 2) |
|
txfifo_ctrl = SIRFSOC_SPI_FIFO_THD(SIRFSOC_SPI_FIFO_SIZE / 2) |
|
||||||
sspi->word_width;
|
(sspi->word_width >> 1);
|
||||||
rxfifo_ctrl = SIRFSOC_SPI_FIFO_THD(SIRFSOC_SPI_FIFO_SIZE / 2) |
|
rxfifo_ctrl = SIRFSOC_SPI_FIFO_THD(SIRFSOC_SPI_FIFO_SIZE / 2) |
|
||||||
sspi->word_width;
|
(sspi->word_width >> 1);
|
||||||
|
|
||||||
if (!(spi->mode & SPI_CS_HIGH))
|
if (!(spi->mode & SPI_CS_HIGH))
|
||||||
regval |= SIRFSOC_SPI_CS_IDLE_STAT;
|
regval |= SIRFSOC_SPI_CS_IDLE_STAT;
|
||||||
|
|
Loading…
Reference in New Issue