From 10d63c9973b9598a065244e9752db7aa3d78a93f Mon Sep 17 00:00:00 2001
From: Felix Fietkau <nbd@nbd.name>
Date: Wed, 9 Mar 2022 20:46:21 +0100
Subject: [PATCH 10/14] ramips: mt7621_nand: initialize ECC_FDMADDR

This is needed for the ECC controller to access FDM data

Signed-off-by: Felix Fietkau <nbd@nbd.name>
---
 target/linux/ramips/files/drivers/mtd/nand/raw/mt7621_nand.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/target/linux/ramips/files/drivers/mtd/nand/raw/mt7621_nand.c b/target/linux/ramips/files/drivers/mtd/nand/raw/mt7621_nand.c
index 16493a2e97..0751e59c37 100644
--- a/target/linux/ramips/files/drivers/mtd/nand/raw/mt7621_nand.c
+++ b/target/linux/ramips/files/drivers/mtd/nand/raw/mt7621_nand.c
@@ -214,6 +214,7 @@ struct mt7621_nfc {
 	struct clk *nfi_clk;
 	struct device *dev;
 
+	u32 nfi_base;
 	void __iomem *nfi_regs;
 	void __iomem *ecc_regs;
 
@@ -860,6 +861,8 @@ static int mt7621_nfc_ecc_init(struct mt7621_nfc *nfc)
 		     (decode_block_size << DEC_CS_S) |
 		     (DEC_CON_EL << DEC_CON_S) | DEC_EMPTY_EN;
 
+	ecc_write32(nfc, ECC_FDMADDR, nfc->nfi_base + NFI_FDML(0));
+
 	mt7621_ecc_encoder_op(nfc, false);
 	ecc_write32(nfc, ECC_ENCCNFG, ecc_enccfg);
 
@@ -1277,6 +1280,7 @@ static int mt7621_nfc_probe(struct platform_device *pdev)
 	nfc->dev = dev;
 
 	res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "nfi");
+	nfc->nfi_base = res->start;
 	nfc->nfi_regs = devm_ioremap_resource(dev, res);
 	if (IS_ERR(nfc->nfi_regs)) {
 		ret = PTR_ERR(nfc->nfi_regs);
-- 
2.25.1

