|
@@ -376,9 +376,6 @@ static void pump_transfers(unsigned long data)
|
|
|
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;
|
|
@@ -419,7 +416,7 @@ static void pump_transfers(unsigned long data)
|
|
|
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;
|
|
|
|
|
|
/* 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");
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
- chip->speed_hz = spi->max_speed_hz;
|
|
|
|
|
|
chip->tmode = 0; /* Tx & Rx */
|
|
|
/* Default SPI mode is SCPOL = 0, SCPH = 0 */
|