From: "Pali Rohár" <pali@kernel.org>
To: Miquel Raynal <miquel.raynal@bootlin.com>
Cc: "Sasha Levin" <sashal@kernel.org>,
stable-commits@vger.kernel.org,
"Richard Weinberger" <richard@nod.at>,
"Vignesh Raghavendra" <vigneshr@ti.com>,
stable@vger.kernel.org, "Marek Behún" <marek.behun@nic.cz>
Subject: Re: Patch "mtd: rawnand: fsl_elbc: Propagate HW ECC settings to HW" has been added to the 5.4-stable tree
Date: Wed, 8 Mar 2023 18:51:15 +0100 [thread overview]
Message-ID: <20230308175115.6y3jitdkzqcnqqev@pali> (raw)
In-Reply-To: <20230308170943.13b6ee5e@xps-13>
On Wednesday 08 March 2023 17:09:43 Miquel Raynal wrote:
> Hi Sasha,
>
> sashal@kernel.org wrote on Sat, 4 Mar 2023 22:50:38 -0500:
>
> > This is a note to let you know that I've just added the patch titled
> >
> > mtd: rawnand: fsl_elbc: Propagate HW ECC settings to HW
> >
> > to the 5.4-stable tree which can be found at:
> > http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
> >
> > The filename of the patch is:
> > mtd-rawnand-fsl_elbc-propagate-hw-ecc-settings-to-hw.patch
> > and it can be found in the queue-5.4 subdirectory.
> >
> > If you, or anyone else, feels it should not be added to the stable tree,
> > please let <stable@vger.kernel.org> know about it.
>
> +Marek
>
> As reported by kernel test robot, this commit does not apply on 5.4
> because many changes have happened in the core since the introduction
> of the fixed patch. In practice the driver works in most cases,
> but does not in few rare cases (IIUC) so I would be in favor of just
> dropping this commit from the queue/5.4 branch. If someone feels like
> this commit should be backported there, please send an updated fix.
>
> Link: https://lore.kernel.org/oe-kbuild-all/202303060514.1ziBICF7-lkp@intel.com/
>
> Thanks,
> Miquèl
>
> >
> >
> >
> > commit 839c09472742b383f65eb7c1f7e576ebfb6a1f62
> > Author: Pali Rohár <pali@kernel.org>
> > Date: Sat Jan 28 14:41:11 2023 +0100
> >
> > mtd: rawnand: fsl_elbc: Propagate HW ECC settings to HW
> >
> > [ Upstream commit b56265257d38af5abf43bd5461ca166b401c35a5 ]
> >
> > It is possible that current chip->ecc.engine_type value does not match to
> > configured HW value (if HW ECC checking and generating is enabled or not).
> >
> > This can happen with old U-Boot bootloader version which either does not
> > initialize NAND (and let it in some default unusable state) or initialize
> > NAND with different parameters than what is specified in kernel DTS file.
> >
> > So if kernel chose to use some chip->ecc.engine_type settings (e.g. from
> > DTS file) then do not depend on bootloader HW configuration and configures
> > HW ECC settings according to chip->ecc.engine_type value.
> >
> > BR_DECC must be set to BR_DECC_CHK_GEN when HW is doing ECC (both
> > generating and checking), or to BR_DECC_OFF when HW is not doing ECC.
> >
> > This change fixes usage of SW ECC support in case bootloader explicitly
> > enabled HW ECC support and kernel DTS file has specified to use SW ECC.
> > (Of course this works only in case when NAND is not a boot device and both
> > bootloader and kernel are loaded from different location, e.g. FLASH NOR.)
> >
> > Fixes: f6424c22aa36 ("mtd: rawnand: fsl_elbc: Make SW ECC work")
> > Signed-off-by: Pali Rohár <pali@kernel.org>
> > Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
> > Link: https://lore.kernel.org/linux-mtd/20230128134111.32559-1-pali@kernel.org
> > Signed-off-by: Sasha Levin <sashal@kernel.org>
> >
> > diff --git a/drivers/mtd/nand/raw/fsl_elbc_nand.c b/drivers/mtd/nand/raw/fsl_elbc_nand.c
> > index 634c550db13a7..e900c0eddc21d 100644
> > --- a/drivers/mtd/nand/raw/fsl_elbc_nand.c
> > +++ b/drivers/mtd/nand/raw/fsl_elbc_nand.c
> > @@ -727,6 +727,7 @@ static int fsl_elbc_attach_chip(struct nand_chip *chip)
> > struct fsl_lbc_ctrl *ctrl = priv->ctrl;
> > struct fsl_lbc_regs __iomem *lbc = ctrl->regs;
> > unsigned int al;
> > + u32 br;
> >
> > switch (chip->ecc.mode) {
> > /*
> > @@ -762,6 +763,13 @@ static int fsl_elbc_attach_chip(struct nand_chip *chip)
> > return -EINVAL;
> > }
> >
> > + /* enable/disable HW ECC checking and generating based on if HW ECC was chosen */
> > + br = in_be32(&lbc->bank[priv->bank].br) & ~BR_DECC;
> > + if (chip->ecc.engine_type == NAND_ECC_ENGINE_TYPE_ON_HOST)
> > + out_be32(&lbc->bank[priv->bank].br, br | BR_DECC_CHK_GEN);
> > + else
> > + out_be32(&lbc->bank[priv->bank].br, br | BR_DECC_OFF);
> > +
> > /* calculate FMR Address Length field */
> > al = 0;
> > if (chip->pagemask & 0xffff0000)
>
This commit depends on another commit "mtd: rawnand: fsl_elbc: Fix none ECC mode":
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=049e43b9fd8fd2966940485da163d67e96ee3fea
So if dependency commit is not backported then this commit
"mtd: rawnand: fsl_elbc: Propagate HW ECC settings to HW" cannot be
backported too.
prev parent reply other threads:[~2023-03-08 17:51 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20230305035038.1777370-1-sashal@kernel.org>
2023-03-08 16:09 ` Patch "mtd: rawnand: fsl_elbc: Propagate HW ECC settings to HW" has been added to the 5.4-stable tree Miquel Raynal
2023-03-08 17:51 ` Pali Rohár [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230308175115.6y3jitdkzqcnqqev@pali \
--to=pali@kernel.org \
--cc=marek.behun@nic.cz \
--cc=miquel.raynal@bootlin.com \
--cc=richard@nod.at \
--cc=sashal@kernel.org \
--cc=stable-commits@vger.kernel.org \
--cc=stable@vger.kernel.org \
--cc=vigneshr@ti.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox