mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-28 22:54:05 +08:00
spi: core: Use master->max_speed_hz as transfer speed when xfer->speed_hz > master->max_speed_hz
When xfer->speed_hz is greater than master->max_speed_hz, it's generally safe to use master->max_speed_hz as transfer speed. Thus use master->max_speed_hz as transfer speed rather than return error when xfer->speed_hz > master->max_speed_hz. Signed-off-by: Axel Lin <axel.lin@ingics.com> Tested-by: Guenter Roeck <linux@roeck-us.net> Reviewed-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Mark Brown <broonie@linaro.org>
This commit is contained in:
parent
6ea312936d
commit
a6f87fad7b
@ -1653,12 +1653,13 @@ static int __spi_validate(struct spi_device *spi, struct spi_message *message)
|
||||
message->frame_length += xfer->len;
|
||||
if (!xfer->bits_per_word)
|
||||
xfer->bits_per_word = spi->bits_per_word;
|
||||
if (!xfer->speed_hz) {
|
||||
|
||||
if (!xfer->speed_hz)
|
||||
xfer->speed_hz = spi->max_speed_hz;
|
||||
if (master->max_speed_hz &&
|
||||
xfer->speed_hz > master->max_speed_hz)
|
||||
xfer->speed_hz = master->max_speed_hz;
|
||||
}
|
||||
|
||||
if (master->max_speed_hz &&
|
||||
xfer->speed_hz > master->max_speed_hz)
|
||||
xfer->speed_hz = master->max_speed_hz;
|
||||
|
||||
if (master->bits_per_word_mask) {
|
||||
/* Only 32 bits fit in the mask */
|
||||
@ -1687,9 +1688,6 @@ static int __spi_validate(struct spi_device *spi, struct spi_message *message)
|
||||
if (xfer->speed_hz && master->min_speed_hz &&
|
||||
xfer->speed_hz < master->min_speed_hz)
|
||||
return -EINVAL;
|
||||
if (xfer->speed_hz && master->max_speed_hz &&
|
||||
xfer->speed_hz > master->max_speed_hz)
|
||||
return -EINVAL;
|
||||
|
||||
if (xfer->tx_buf && !xfer->tx_nbits)
|
||||
xfer->tx_nbits = SPI_NBITS_SINGLE;
|
||||
|
Loading…
Reference in New Issue
Block a user