diff --git a/drivers/mtd/nand/cafe.c b/drivers/mtd/nand/cafe.c
index 6bcb430b951c111518410cc6bab41f7eb8b72ef1..dd274c877b5eeeb726d9c07be78621d2ba988b32 100644
--- a/drivers/mtd/nand/cafe.c
+++ b/drivers/mtd/nand/cafe.c
@@ -598,6 +598,10 @@ static int __devinit cafe_nand_probe(struct pci_dev *pdev,
 		cafe->nand.block_bad = cafe_nand_block_bad;
 	}
 	
+	/* Start off by resetting the NAND controller completely */
+	writel(1, cafe->mmio + 0x3034);
+	writel(0, cafe->mmio + 0x3034);
+
 	/* Timings from Marvell's test code (not verified or calculated by us) */
 	writel(0xffffffff, cafe->mmio + CAFE_NAND_IRQ_MASK);
 #if 1