OSDN Git Service

spi: bcm-qspi: fix calculation of address length
authorRafał Miłecki <rafal@milecki.pl>
Thu, 11 Oct 2018 07:40:22 +0000 (09:40 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 13 Nov 2018 19:08:15 +0000 (11:08 -0800)
commit 0976eda7915507fe94e07870c19d717c9994b57a upstream.

During implementation of the new API bcm_qspi_bspi_set_flex_mode() has
been modified breaking calculation of address length. An unnecessary
multiplication was added breaking flash reads.

Fixes: 5f195ee7d830 ("spi: bcm-qspi: Implement the spi_mem interface")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Reviewed-by: Boris Brezillon <boris.brezillon@bootlin.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Cc: stable@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/spi/spi-bcm-qspi.c

index 8992acd..584bcb0 100644 (file)
@@ -355,7 +355,7 @@ static int bcm_qspi_bspi_set_flex_mode(struct bcm_qspi *qspi,
        int bpc = 0, bpp = 0;
        u8 command = op->cmd.opcode;
        int width  = op->cmd.buswidth ? op->cmd.buswidth : SPI_NBITS_SINGLE;
-       int addrlen = op->addr.nbytes * 8;
+       int addrlen = op->addr.nbytes;
        int flex_mode = 1;
 
        dev_dbg(&qspi->pdev->dev, "set flex mode w %x addrlen %x hp %d\n",