spi: fsi: Handle 9 to 15 byte transfers lengths
authorBrad Bishop <bradleyb@fuzziesquirrel.com>
Wed, 9 Sep 2020 22:28:52 +0000 (17:28 -0500)
committerMark Brown <broonie@kernel.org>
Thu, 17 Sep 2020 18:31:39 +0000 (19:31 +0100)
The trailing <len> - 8 bytes of transfer data in this size range is no
longer ignored.

Fixes: bbb6b2f9865b ("spi: Add FSI-attached SPI controller driver")
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Signed-off-by: Eddie James <eajames@linux.ibm.com>
Reviewed-by: Joel Stanley <joel@jms.id.au>
Signed-off-by: Joel Stanley <joel@jms.id.au>
Link: https://lore.kernel.org/r/20200909222857.28653-2-eajames@linux.ibm.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-fsi.c

index 37a3e0f..8f64af0 100644 (file)
@@ -258,15 +258,15 @@ static int fsi_spi_sequence_transfer(struct fsi_spi *ctx,
        if (loops > 1) {
                fsi_spi_sequence_add(seq, SPI_FSI_SEQUENCE_BRANCH(idx));
 
-               if (rem)
-                       fsi_spi_sequence_add(seq, rem);
-
                rc = fsi_spi_write_reg(ctx, SPI_FSI_COUNTER_CFG,
                                       SPI_FSI_COUNTER_CFG_LOOPS(loops - 1));
                if (rc)
                        return rc;
        }
 
+       if (rem)
+               fsi_spi_sequence_add(seq, rem);
+
        return 0;
 }