--- a/drivers/mtd/nand/raw/fsl_ifc_nand.c
+++ b/drivers/mtd/nand/raw/fsl_ifc_nand.c
@@ -349,6 +349,9 @@ static void fsl_ifc_cmdfunc(struct nand_chip *chip, unsigned int command,
                         &ifc->ifc_nand.nand_fcr0);
               ifc_out32(column, &ifc->ifc_nand.row3);

+              if (ifc_in32(&ctrl->gregs->cspr_cs[priv->bank].cspr)
+                  & CSPR_PORT_SIZE_16)
+                      len *= 2;
               ifc_out32(len, &ifc->ifc_nand.nand_fbcr);
               ifc_nand_ctrl->read_bytes = len;

