mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-18 01:34:14 +08:00
spi: omap2-mcspi: Do not configure the controller on each transfer unless needed
spi_transfer->speed_hz and spi_transfer->bits_per_word used to only be set when not using the default settings but are not set on every transfer, causing omap2_mcspi_setup_transfer to be called on each transfer. This patch changes the check to only call omap2_mcspi_setup_transfer if the settings needs to be changed. Signed-off-by: Stefan Sørensen <stefan.sorensen@spectralink.com> Signed-off-by: Mark Brown <broonie@linaro.org>
This commit is contained in:
parent
38dbfb59d1
commit
2bd16e3e23
@ -1057,12 +1057,15 @@ static void omap2_mcspi_work(struct omap2_mcspi *mcspi, struct spi_message *m)
|
|||||||
status = -EINVAL;
|
status = -EINVAL;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (par_override || t->speed_hz || t->bits_per_word) {
|
if (par_override ||
|
||||||
|
(t->speed_hz != spi->max_speed_hz) ||
|
||||||
|
(t->bits_per_word != spi->bits_per_word)) {
|
||||||
par_override = 1;
|
par_override = 1;
|
||||||
status = omap2_mcspi_setup_transfer(spi, t);
|
status = omap2_mcspi_setup_transfer(spi, t);
|
||||||
if (status < 0)
|
if (status < 0)
|
||||||
break;
|
break;
|
||||||
if (!t->speed_hz && !t->bits_per_word)
|
if (t->speed_hz == spi->max_speed_hz &&
|
||||||
|
t->bits_per_word == spi->bits_per_word)
|
||||||
par_override = 0;
|
par_override = 0;
|
||||||
}
|
}
|
||||||
if (cd && cd->cs_per_word) {
|
if (cd && cd->cs_per_word) {
|
||||||
|
Loading…
Reference in New Issue
Block a user