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
This commit is contained in:
@@ -218,6 +218,8 @@ static int gpio_nand_setup_interface(struct nand_chip *this, int csline,
|
|||||||
static int gpio_nand_attach_chip(struct nand_chip *chip)
|
static int gpio_nand_attach_chip(struct nand_chip *chip)
|
||||||
{
|
{
|
||||||
chip->ecc.engine_type = NAND_ECC_ENGINE_TYPE_SOFT;
|
chip->ecc.engine_type = NAND_ECC_ENGINE_TYPE_SOFT;
|
||||||
|
|
||||||
|
if (chip->ecc.algo == NAND_ECC_ALGO_UNKNOWN)
|
||||||
chip->ecc.algo = NAND_ECC_ALGO_HAMMING;
|
chip->ecc.algo = NAND_ECC_ALGO_HAMMING;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@@ -239,6 +239,8 @@ static int au1550nd_exec_op(struct nand_chip *this,
|
|||||||
static int au1550nd_attach_chip(struct nand_chip *chip)
|
static int au1550nd_attach_chip(struct nand_chip *chip)
|
||||||
{
|
{
|
||||||
chip->ecc.engine_type = NAND_ECC_ENGINE_TYPE_SOFT;
|
chip->ecc.engine_type = NAND_ECC_ENGINE_TYPE_SOFT;
|
||||||
|
|
||||||
|
if (chip->ecc.algo == NAND_ECC_ALGO_UNKNOWN)
|
||||||
chip->ecc.algo = NAND_ECC_ALGO_HAMMING;
|
chip->ecc.algo = NAND_ECC_ALGO_HAMMING;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@@ -164,6 +164,8 @@ static int gpio_nand_exec_op(struct nand_chip *chip,
|
|||||||
static int gpio_nand_attach_chip(struct nand_chip *chip)
|
static int gpio_nand_attach_chip(struct nand_chip *chip)
|
||||||
{
|
{
|
||||||
chip->ecc.engine_type = NAND_ECC_ENGINE_TYPE_SOFT;
|
chip->ecc.engine_type = NAND_ECC_ENGINE_TYPE_SOFT;
|
||||||
|
|
||||||
|
if (chip->ecc.algo == NAND_ECC_ALGO_UNKNOWN)
|
||||||
chip->ecc.algo = NAND_ECC_ALGO_HAMMING;
|
chip->ecc.algo = NAND_ECC_ALGO_HAMMING;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@@ -606,6 +606,8 @@ static void mpc5121_nfc_free(struct device *dev, struct mtd_info *mtd)
|
|||||||
static int mpc5121_nfc_attach_chip(struct nand_chip *chip)
|
static int mpc5121_nfc_attach_chip(struct nand_chip *chip)
|
||||||
{
|
{
|
||||||
chip->ecc.engine_type = NAND_ECC_ENGINE_TYPE_SOFT;
|
chip->ecc.engine_type = NAND_ECC_ENGINE_TYPE_SOFT;
|
||||||
|
|
||||||
|
if (chip->ecc.algo == NAND_ECC_ALGO_UNKNOWN)
|
||||||
chip->ecc.algo = NAND_ECC_ALGO_HAMMING;
|
chip->ecc.algo = NAND_ECC_ALGO_HAMMING;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@@ -86,6 +86,8 @@ static void orion_nand_read_buf(struct nand_chip *chip, uint8_t *buf, int len)
|
|||||||
static int orion_nand_attach_chip(struct nand_chip *chip)
|
static int orion_nand_attach_chip(struct nand_chip *chip)
|
||||||
{
|
{
|
||||||
chip->ecc.engine_type = NAND_ECC_ENGINE_TYPE_SOFT;
|
chip->ecc.engine_type = NAND_ECC_ENGINE_TYPE_SOFT;
|
||||||
|
|
||||||
|
if (chip->ecc.algo == NAND_ECC_ALGO_UNKNOWN)
|
||||||
chip->ecc.algo = NAND_ECC_ALGO_HAMMING;
|
chip->ecc.algo = NAND_ECC_ALGO_HAMMING;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@@ -77,6 +77,8 @@ static int pasemi_device_ready(struct nand_chip *chip)
|
|||||||
static int pasemi_attach_chip(struct nand_chip *chip)
|
static int pasemi_attach_chip(struct nand_chip *chip)
|
||||||
{
|
{
|
||||||
chip->ecc.engine_type = NAND_ECC_ENGINE_TYPE_SOFT;
|
chip->ecc.engine_type = NAND_ECC_ENGINE_TYPE_SOFT;
|
||||||
|
|
||||||
|
if (chip->ecc.algo == NAND_ECC_ALGO_UNKNOWN)
|
||||||
chip->ecc.algo = NAND_ECC_ALGO_HAMMING;
|
chip->ecc.algo = NAND_ECC_ALGO_HAMMING;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@@ -22,6 +22,8 @@ struct plat_nand_data {
|
|||||||
static int plat_nand_attach_chip(struct nand_chip *chip)
|
static int plat_nand_attach_chip(struct nand_chip *chip)
|
||||||
{
|
{
|
||||||
chip->ecc.engine_type = NAND_ECC_ENGINE_TYPE_SOFT;
|
chip->ecc.engine_type = NAND_ECC_ENGINE_TYPE_SOFT;
|
||||||
|
|
||||||
|
if (chip->ecc.algo == NAND_ECC_ALGO_UNKNOWN)
|
||||||
chip->ecc.algo = NAND_ECC_ALGO_HAMMING;
|
chip->ecc.algo = NAND_ECC_ALGO_HAMMING;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@@ -120,6 +120,8 @@ static int socrates_nand_device_ready(struct nand_chip *nand_chip)
|
|||||||
static int socrates_attach_chip(struct nand_chip *chip)
|
static int socrates_attach_chip(struct nand_chip *chip)
|
||||||
{
|
{
|
||||||
chip->ecc.engine_type = NAND_ECC_ENGINE_TYPE_SOFT;
|
chip->ecc.engine_type = NAND_ECC_ENGINE_TYPE_SOFT;
|
||||||
|
|
||||||
|
if (chip->ecc.algo == NAND_ECC_ALGO_UNKNOWN)
|
||||||
chip->ecc.algo = NAND_ECC_ALGO_HAMMING;
|
chip->ecc.algo = NAND_ECC_ALGO_HAMMING;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@@ -149,6 +149,8 @@ static void xway_write_buf(struct nand_chip *chip, const u_char *buf, int len)
|
|||||||
static int xway_attach_chip(struct nand_chip *chip)
|
static int xway_attach_chip(struct nand_chip *chip)
|
||||||
{
|
{
|
||||||
chip->ecc.engine_type = NAND_ECC_ENGINE_TYPE_SOFT;
|
chip->ecc.engine_type = NAND_ECC_ENGINE_TYPE_SOFT;
|
||||||
|
|
||||||
|
if (chip->ecc.algo == NAND_ECC_ALGO_UNKNOWN)
|
||||||
chip->ecc.algo = NAND_ECC_ALGO_HAMMING;
|
chip->ecc.algo = NAND_ECC_ALGO_HAMMING;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
Reference in New Issue
Block a user