From bb79410956e03e7c775c38338c5826f8591378a9 Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Thu, 31 Mar 2016 02:28:08 +0200
Subject: [PATCH 59/91] mtd: nand: backport fixes

---
 drivers/mtd/nand/mtksdg1_nand.c |    9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/drivers/mtd/nand/mtksdg1_nand.c b/drivers/mtd/nand/mtksdg1_nand.c
index 55dd17d..f92b949 100644
--- a/drivers/mtd/nand/mtksdg1_nand.c
+++ b/drivers/mtd/nand/mtksdg1_nand.c
@@ -107,6 +107,9 @@ static struct nand_ecclayout nand_4k_128 = {
 	.oobfree = { {0, 32} },
 };
 
+static const char * const part_probes[] = {
+	"cmdlinepart", "RedBoot", "ofpart", NULL };
+
 /* NFI register access */
 static inline void mtk_nfi_writel(struct mtk_nfc_host *host, u32 val, u32 reg)
 {
@@ -1298,6 +1301,7 @@ static int mtk_nfc_probe(struct platform_device *pdev)
 
 	chip = &host->chip;
 	mtd = nand_to_mtd(chip);
+	mtd->priv = chip;
 	host->dev = dev;
 
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
@@ -1428,7 +1432,10 @@ static int mtk_nfc_probe(struct platform_device *pdev)
 	}
 	host->switch_oob = false;
 
-	ret = mtd_device_parse_register(mtd, NULL, NULL, NULL, 0);
+	ret = mtd_device_parse_register(mtd, part_probes,
+			&(struct mtd_part_parser_data) {
+				.of_node = pdev->dev.of_node,
+			}, NULL, 0);
 	if (ret) {
 		dev_err(dev, "mtd parse partition error\n");
 		goto nand_free;
-- 
1.7.10.4

