• Boris Brezillon's avatar
    mtd: nand: gpmi: Fix subpage reads · 4c7e95b1
    Boris Brezillon authored
    Commit 25f815f6 ("mtd: nand: force drivers to explicitly send
    READ/PROG commands") added a call to nand_read_page_op() in
    gpmi_ecc_read_page(), which means this function now sends a READ0
    command and place the data pointer at the beginning of the page. This
    logic is breaking gpmi_ecc_read_subpage() which was calling
    gpmi_ecc_read_page() and expected it to only retrieve the data without
    sending the READ0 command.
    
    Create a gpmi_ecc_read_page_data() helper which only does the data
    retrieval and ECC correction steps and implement gpmi_ecc_read_page()
    as a wrapper that calls nand_read_page_op()+gpmi_ecc_read_page_data().
    
    This way, gpmi_ecc_read_subpage() can call gpmi_ecc_read_page_data()
    which restores the logic we had before commit 25f815f6 ("mtd: nand:
    force drivers to explicitly send READ/PROG commands").
    
    Fixes: 25f815f6 ("mtd: nand: force drivers to explicitly send READ/PROG commands")
    Signed-off-by: default avatarBoris Brezillon <boris.brezillon@free-electrons.com>
    Reviewed-by: default avatarMiquel Raynal <miquel.raynal@free-electrons.com>
    Acked-by: default avatarHan Xu <han.xu@nxp.com>
    4c7e95b1
gpmi-nand.c 61.7 KB