spi: fsl-espi: reject MSB-first transfers with word sizes other than 8 or 16
According to the ESPI spec MSB-first transfers are supported for word size 8 and 16 only. Check for this and reject MSB-first transfers with other word sizes. Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
b497eb0245
commit
e4be7053b9
|
@ -153,6 +153,7 @@ static int fsl_espi_check_message(struct spi_message *m)
|
||||||
|
|
||||||
first = list_first_entry(&m->transfers, struct spi_transfer,
|
first = list_first_entry(&m->transfers, struct spi_transfer,
|
||||||
transfer_list);
|
transfer_list);
|
||||||
|
|
||||||
list_for_each_entry(t, &m->transfers, transfer_list) {
|
list_for_each_entry(t, &m->transfers, transfer_list) {
|
||||||
if (first->bits_per_word != t->bits_per_word ||
|
if (first->bits_per_word != t->bits_per_word ||
|
||||||
first->speed_hz != t->speed_hz) {
|
first->speed_hz != t->speed_hz) {
|
||||||
|
@ -161,6 +162,15 @@ static int fsl_espi_check_message(struct spi_message *m)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ESPI supports MSB-first transfers for word size 8 / 16 only */
|
||||||
|
if (!(m->spi->mode & SPI_LSB_FIRST) && first->bits_per_word != 8 &&
|
||||||
|
first->bits_per_word != 16) {
|
||||||
|
dev_err(mspi->dev,
|
||||||
|
"MSB-first transfer not supported for wordsize %u\n",
|
||||||
|
first->bits_per_word);
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue