diff --git a/drivers/mtd/nand/omap2.c b/drivers/mtd/nand/omap2.c
index 4e7634c..806f1ec 100644
--- a/drivers/mtd/nand/omap2.c
+++ b/drivers/mtd/nand/omap2.c
@@ -816,7 +816,7 @@ static int omap_read_page_bch(struct mtd_info *mtd, struct nand_chip *chip,
 	uint8_t *ecc_calc = chip->buffers->ecccalc;
 	uint8_t *ecc_code = chip->buffers->ecccode;
 	uint32_t *eccpos = chip->ecc.layout->eccpos;
-	uint8_t *oob = chip->oob_poi;
+	uint8_t *oob = &chip->oob_poi[eccpos[0]];
 	uint32_t data_pos;
 	uint32_t oob_pos;
 
@@ -836,10 +836,9 @@ static int omap_read_page_bch(struct mtd_info *mtd, struct nand_chip *chip,
 		/* read respective ecc from oob area */
 		chip->cmdfunc(mtd, NAND_CMD_RNDOUT, oob_pos, page);
 
-		if (info->ecc_opt == OMAP_ECC_BCH8_CODE_HW) {
+		if (info->ecc_opt == OMAP_ECC_BCH8_CODE_HW)
 			chip->read_buf(mtd, oob, 13);
-			oob++;
-		} else
+		else
 			chip->read_buf(mtd, oob, eccbytes);
 		/* read syndrome */
 		chip->ecc.calculate(mtd, p, &ecc_calc[i]);