lkml.org 
[lkml]   [2021]   [Nov]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.14 826/849] mtd: rawnand: fsmc: Fix use of SM ORDER
    Date
    From: Miquel Raynal <miquel.raynal@bootlin.com>

    commit 9be1446ece291a1f08164bd056bed3d698681f8b upstream.

    The introduction of the generic ECC engine API lead to a number of
    changes in various drivers which broke some of them. Here is a typical
    example: I expected the SM_ORDER option to be handled by the Hamming ECC
    engine internals. Problem: the fsmc driver does not instantiate (yet) a
    real ECC engine object so we had to use a 'bare' ECC helper instead of
    the shiny rawnand functions. However, when not intializing this engine
    properly and using the bare helpers, we do not get the SM ORDER feature
    handled automatically. It looks like this was lost in the process so
    let's ensure we use the right SM ORDER now.

    Fixes: ad9ffdce4539 ("mtd: rawnand: fsmc: Fix external use of SW Hamming ECC helper")
    Cc: stable@vger.kernel.org
    Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
    Link: https://lore.kernel.org/linux-mtd/20210928221507.199198-2-miquel.raynal@bootlin.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/mtd/nand/raw/fsmc_nand.c | 4 +++-
    1 file changed, 3 insertions(+), 1 deletion(-)

    --- a/drivers/mtd/nand/raw/fsmc_nand.c
    +++ b/drivers/mtd/nand/raw/fsmc_nand.c
    @@ -438,8 +438,10 @@ static int fsmc_correct_ecc1(struct nand
    unsigned char *read_ecc,
    unsigned char *calc_ecc)
    {
    + bool sm_order = chip->ecc.options & NAND_ECC_SOFT_HAMMING_SM_ORDER;
    +
    return ecc_sw_hamming_correct(buf, read_ecc, calc_ecc,
    - chip->ecc.size, false);
    + chip->ecc.size, sm_order);
    }

    /* Count the number of 0's in buff upto a max of max_bits */

    \
     
     \ /
      Last update: 2021-11-16 02:40    [W:3.125 / U:0.036 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site