mtd: rawnand: omap2: fix force_8bit flag behaviour for DMA mode
authorRoger Quadros <rogerq@kernel.org>
Thu, 9 Dec 2021 09:04:57 +0000 (11:04 +0200)
committerMiquel Raynal <miquel.raynal@bootlin.com>
Fri, 17 Dec 2021 10:26:03 +0000 (11:26 +0100)
In DMA mode we were not considering the force_8bit flag.

Fix it by using regular non-DMA 8-bit I/O if force_8bit flag is set.

Signed-off-by: Roger Quadros <rogerq@kernel.org>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20211209090458.24830-6-rogerq@kernel.org
drivers/mtd/nand/raw/omap2.c

index 0c7ee26171ad290ff48454f81910e2b76730fedb..2b58ddea3b015be7f9cc6996e9222aa0b501616c 100644 (file)
@@ -447,6 +447,11 @@ static void omap_nand_data_in_dma_pref(struct nand_chip *chip, void *buf,
 {
        struct mtd_info *mtd = nand_to_mtd(chip);
 
+       if (force_8bit) {
+               omap_nand_data_in(chip, buf, len, force_8bit);
+               return;
+       }
+
        if (len <= mtd->oobsize)
                omap_nand_data_in_pref(chip, buf, len, false);
        else
@@ -463,6 +468,11 @@ static void omap_nand_data_out_dma_pref(struct nand_chip *chip,
 {
        struct mtd_info *mtd = nand_to_mtd(chip);
 
+       if (force_8bit) {
+               omap_nand_data_out(chip, buf, len, force_8bit);
+               return;
+       }
+
        if (len <= mtd->oobsize)
                omap_nand_data_out_pref(chip, buf, len, false);
        else