[U-Boot] [PATCH 0/2] mtd: nand: mxs: fix PIO_WORD number

In this driver, the CMDPIOWORDS field doesn't always reflect the real number of pio_words sent in the actual DMA transfer (see iMX6 Reference Manual, Ch. 14.2) This patchset fixes them.
Luca Ellero (2): mtd: nand: mxs: fix PIO_WORDs in mxs_nand_read_buf() mtd: nand: mxs: fix PIO_WORDs in mxs_nand_write_buf()
drivers/mtd/nand/mxs_nand.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)

There is only one pio_word in this DMA transaction so data field must be 1.
Signed-off-by: Luca Ellero luca.ellero@brickedbrain.com --- drivers/mtd/nand/mxs_nand.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/mtd/nand/mxs_nand.c b/drivers/mtd/nand/mxs_nand.c index 616c9ca..d17e0d0 100644 --- a/drivers/mtd/nand/mxs_nand.c +++ b/drivers/mtd/nand/mxs_nand.c @@ -453,7 +453,7 @@ static void mxs_nand_read_buf(struct mtd_info *mtd, uint8_t *buf, int length) d->cmd.data = MXS_DMA_DESC_COMMAND_NO_DMAXFER | MXS_DMA_DESC_IRQ | MXS_DMA_DESC_NAND_WAIT_4_READY | MXS_DMA_DESC_DEC_SEM | - MXS_DMA_DESC_WAIT4END | (4 << MXS_DMA_DESC_PIO_WORDS_OFFSET); + MXS_DMA_DESC_WAIT4END | (1 << MXS_DMA_DESC_PIO_WORDS_OFFSET);
d->cmd.address = 0;

There is only one pio_word in this DMA transaction so data field must be 1.
Signed-off-by: Luca Ellero luca.ellero@brickedbrain.com --- drivers/mtd/nand/mxs_nand.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/mtd/nand/mxs_nand.c b/drivers/mtd/nand/mxs_nand.c index d17e0d0..428a250 100644 --- a/drivers/mtd/nand/mxs_nand.c +++ b/drivers/mtd/nand/mxs_nand.c @@ -510,7 +510,7 @@ static void mxs_nand_write_buf(struct mtd_info *mtd, const uint8_t *buf, d->cmd.data = MXS_DMA_DESC_COMMAND_DMA_READ | MXS_DMA_DESC_IRQ | MXS_DMA_DESC_DEC_SEM | MXS_DMA_DESC_WAIT4END | - (4 << MXS_DMA_DESC_PIO_WORDS_OFFSET) | + (1 << MXS_DMA_DESC_PIO_WORDS_OFFSET) | (length << MXS_DMA_DESC_BYTES_OFFSET);
d->cmd.address = (dma_addr_t)nand_info->data_buf;

On Tuesday, December 16, 2014 at 03:36:13 PM, Luca Ellero wrote:
In this driver, the CMDPIOWORDS field doesn't always reflect the real number of pio_words sent in the actual DMA transfer (see iMX6 Reference Manual, Ch. 14.2) This patchset fixes them.
Luca Ellero (2): mtd: nand: mxs: fix PIO_WORDs in mxs_nand_read_buf() mtd: nand: mxs: fix PIO_WORDs in mxs_nand_write_buf()
drivers/mtd/nand/mxs_nand.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
Technically, this all makes sense. I see no reason to oppose this series, even if there really was no explicit bug in the first place.
Acked-by: Marek Vasut marex@denx.de
Thank you for fixing this!
Best regards, Marek Vasut
participants (2)
-
Luca Ellero
-
Marek Vasut