• A
    mtd: rawnand: qcom: wait for desc completion in all BAM channels · 6f20070d
    Abhishek Sahu 提交于
    The BAM has 3 channels - tx, rx and command. command channel
    is used for register read/writes, tx channel for data writes
    and rx channel for data reads. Currently, the driver assumes the
    transfer completion once it gets all the command descriptors
    completed. Sometimes, there is race condition between data channel
    (tx/rx) and command channel completion. In these cases,
    the data present in buffer is not valid during small window
    between command descriptor completion and data descriptor
    completion.
    
    This patch generates NAND transfer completion when both
    (Data and Command) DMA channels have completed all its DMA
    descriptors. It assigns completion callback in last
    DMA descriptors of that channel and wait for completion.
    
    Fixes: 8d6b6d7e ("mtd: nand: qcom: support for command descriptor formation")
    Cc: stable@vger.kernel.org
    Signed-off-by: NAbhishek Sahu <absahu@codeaurora.org>
    Signed-off-by: NMiquel Raynal <miquel.raynal@bootlin.com>
    6f20070d
qcom_nandc.c 79.7 KB