• Robert Jarzmik's avatar
    mtd: nand: pxa3xx-nand: prevent DFI bus lockup on removal · e971affa
    Robert Jarzmik authored
    After the conversion of pxa architecture to common clock framework, the
    NAND clock can be disabled on driver exit.
    
    In this case, it happens that if the driver used the NAND and set the
    DFI arbitration bit, the next access to a static memory controller area,
    such as an ethernet card, will stall the system bus, and the core will
    be stalled forever.
    
    This is especially true on pxa31x SoCs, where the NDCR was augmented
    with a new bit to prevent this lockups by giving full ownership of the
    DFI arbiter to the SMC, in change SCr#6.
    
    Fix this by clearing the DFI arbritration bit in driver exit. This
    effectively prevents a lockup on zylonite when removing pxa3xx-nand
    module, and using ethernet afterwards.
    Signed-off-by: default avatarRobert Jarzmik <robert.jarzmik@free.fr>
    Signed-off-by: default avatarBrian Norris <computersforpeace@gmail.com>
    e971affa
pxa3xx_nand.c 51.1 KB