spi: bugfix: spi_message.transfer_length does not get reset
When submitting an identical spi_message multiple times via spi_sync the spi_message.frame_length does not get reset to 0 in __spi_validate before adding up all spi_transfer.len resulting in frame_length > actual_length on all but the first spi_sync call. Signed-off-by: Martin Sperl <kernel@martin.sperl.org> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
Родитель
8005c49d9a
Коммит
77e8058810
|
@ -2130,6 +2130,7 @@ static int __spi_validate(struct spi_device *spi, struct spi_message *message)
|
||||||
* Set transfer tx_nbits and rx_nbits as single transfer default
|
* Set transfer tx_nbits and rx_nbits as single transfer default
|
||||||
* (SPI_NBITS_SINGLE) if it is not set for this transfer.
|
* (SPI_NBITS_SINGLE) if it is not set for this transfer.
|
||||||
*/
|
*/
|
||||||
|
message->frame_length = 0;
|
||||||
list_for_each_entry(xfer, &message->transfers, transfer_list) {
|
list_for_each_entry(xfer, &message->transfers, transfer_list) {
|
||||||
message->frame_length += xfer->len;
|
message->frame_length += xfer->len;
|
||||||
if (!xfer->bits_per_word)
|
if (!xfer->bits_per_word)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче