Skip to content

Commit 7f376f1

Browse files
committed
Merge tag 'mtd/fixes-for-5.10-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux
Pull mtd fixes from Miquel Raynal: "Second series of fixes for raw NAND drivers initiated because of a rework of the ECC engine subsystem. The location of the DT parsing logic got moved, breaking several drivers which in fact were not doing the ECC engine initialization at the right place. These drivers have been fixed by enforcing a particular ECC engine type and algorithm, software Hamming, while the algorithm may be overwritten by a DT property. This merge request fixes this in the xway, socrates, plat_nand, pasemi, orion, mpc5121, gpio, au1550 and ams-delta controller drivers" * tag 'mtd/fixes-for-5.10-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux: mtd: rawnand: xway: Do not force a particular software ECC engine mtd: rawnand: socrates: Do not force a particular software ECC engine mtd: rawnand: plat_nand: Do not force a particular software ECC engine mtd: rawnand: pasemi: Do not force a particular software ECC engine mtd: rawnand: orion: Do not force a particular software ECC engine mtd: rawnand: mpc5121: Do not force a particular software ECC engine mtd: rawnand: gpio: Do not force a particular software ECC engine mtd: rawnand: au1550: Do not force a particular software ECC engine mtd: rawnand: ams-delta: Do not force a particular software ECC engine
2 parents 1de5d12 + 33d974e commit 7f376f1

File tree

9 files changed

+27
-9
lines changed

9 files changed

+27
-9
lines changed

drivers/mtd/nand/raw/ams-delta.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,9 @@ static int gpio_nand_setup_interface(struct nand_chip *this, int csline,
218218
static int gpio_nand_attach_chip(struct nand_chip *chip)
219219
{
220220
chip->ecc.engine_type = NAND_ECC_ENGINE_TYPE_SOFT;
221-
chip->ecc.algo = NAND_ECC_ALGO_HAMMING;
221+
222+
if (chip->ecc.algo == NAND_ECC_ALGO_UNKNOWN)
223+
chip->ecc.algo = NAND_ECC_ALGO_HAMMING;
222224

223225
return 0;
224226
}

drivers/mtd/nand/raw/au1550nd.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,9 @@ static int au1550nd_exec_op(struct nand_chip *this,
239239
static int au1550nd_attach_chip(struct nand_chip *chip)
240240
{
241241
chip->ecc.engine_type = NAND_ECC_ENGINE_TYPE_SOFT;
242-
chip->ecc.algo = NAND_ECC_ALGO_HAMMING;
242+
243+
if (chip->ecc.algo == NAND_ECC_ALGO_UNKNOWN)
244+
chip->ecc.algo = NAND_ECC_ALGO_HAMMING;
243245

244246
return 0;
245247
}

drivers/mtd/nand/raw/gpio.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,9 @@ static int gpio_nand_exec_op(struct nand_chip *chip,
164164
static int gpio_nand_attach_chip(struct nand_chip *chip)
165165
{
166166
chip->ecc.engine_type = NAND_ECC_ENGINE_TYPE_SOFT;
167-
chip->ecc.algo = NAND_ECC_ALGO_HAMMING;
167+
168+
if (chip->ecc.algo == NAND_ECC_ALGO_UNKNOWN)
169+
chip->ecc.algo = NAND_ECC_ALGO_HAMMING;
168170

169171
return 0;
170172
}

drivers/mtd/nand/raw/mpc5121_nfc.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -606,7 +606,9 @@ static void mpc5121_nfc_free(struct device *dev, struct mtd_info *mtd)
606606
static int mpc5121_nfc_attach_chip(struct nand_chip *chip)
607607
{
608608
chip->ecc.engine_type = NAND_ECC_ENGINE_TYPE_SOFT;
609-
chip->ecc.algo = NAND_ECC_ALGO_HAMMING;
609+
610+
if (chip->ecc.algo == NAND_ECC_ALGO_UNKNOWN)
611+
chip->ecc.algo = NAND_ECC_ALGO_HAMMING;
610612

611613
return 0;
612614
}

drivers/mtd/nand/raw/orion_nand.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,9 @@ static void orion_nand_read_buf(struct nand_chip *chip, uint8_t *buf, int len)
8686
static int orion_nand_attach_chip(struct nand_chip *chip)
8787
{
8888
chip->ecc.engine_type = NAND_ECC_ENGINE_TYPE_SOFT;
89-
chip->ecc.algo = NAND_ECC_ALGO_HAMMING;
89+
90+
if (chip->ecc.algo == NAND_ECC_ALGO_UNKNOWN)
91+
chip->ecc.algo = NAND_ECC_ALGO_HAMMING;
9092

9193
return 0;
9294
}

drivers/mtd/nand/raw/pasemi_nand.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,9 @@ static int pasemi_device_ready(struct nand_chip *chip)
7777
static int pasemi_attach_chip(struct nand_chip *chip)
7878
{
7979
chip->ecc.engine_type = NAND_ECC_ENGINE_TYPE_SOFT;
80-
chip->ecc.algo = NAND_ECC_ALGO_HAMMING;
80+
81+
if (chip->ecc.algo == NAND_ECC_ALGO_UNKNOWN)
82+
chip->ecc.algo = NAND_ECC_ALGO_HAMMING;
8183

8284
return 0;
8385
}

drivers/mtd/nand/raw/plat_nand.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@ struct plat_nand_data {
2222
static int plat_nand_attach_chip(struct nand_chip *chip)
2323
{
2424
chip->ecc.engine_type = NAND_ECC_ENGINE_TYPE_SOFT;
25-
chip->ecc.algo = NAND_ECC_ALGO_HAMMING;
25+
26+
if (chip->ecc.algo == NAND_ECC_ALGO_UNKNOWN)
27+
chip->ecc.algo = NAND_ECC_ALGO_HAMMING;
2628

2729
return 0;
2830
}

drivers/mtd/nand/raw/socrates_nand.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,9 @@ static int socrates_nand_device_ready(struct nand_chip *nand_chip)
120120
static int socrates_attach_chip(struct nand_chip *chip)
121121
{
122122
chip->ecc.engine_type = NAND_ECC_ENGINE_TYPE_SOFT;
123-
chip->ecc.algo = NAND_ECC_ALGO_HAMMING;
123+
124+
if (chip->ecc.algo == NAND_ECC_ALGO_UNKNOWN)
125+
chip->ecc.algo = NAND_ECC_ALGO_HAMMING;
124126

125127
return 0;
126128
}

drivers/mtd/nand/raw/xway_nand.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,9 @@ static void xway_write_buf(struct nand_chip *chip, const u_char *buf, int len)
149149
static int xway_attach_chip(struct nand_chip *chip)
150150
{
151151
chip->ecc.engine_type = NAND_ECC_ENGINE_TYPE_SOFT;
152-
chip->ecc.algo = NAND_ECC_ALGO_HAMMING;
152+
153+
if (chip->ecc.algo == NAND_ECC_ALGO_UNKNOWN)
154+
chip->ecc.algo = NAND_ECC_ALGO_HAMMING;
153155

154156
return 0;
155157
}

0 commit comments

Comments
 (0)