]> git.baikalelectronics.ru Git - kernel.git/commit
mtd: nand: pxa3xx-nand: prevent DFI bus lockup on removal
authorRobert Jarzmik <robert.jarzmik@free.fr>
Mon, 28 Sep 2015 20:56:51 +0000 (22:56 +0200)
committerBrian Norris <computersforpeace@gmail.com>
Tue, 29 Sep 2015 00:32:19 +0000 (17:32 -0700)
commit14e27af99d4fa4fdebd2946e3a05a835b893d2ee
tree4ce244faf9d65464390b2c815a1c353c13c15cd5
parenteb4c72048a05e7c332eb44d024c2626ca1fe2cbb
mtd: nand: pxa3xx-nand: prevent DFI bus lockup on removal

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: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
drivers/mtd/nand/pxa3xx_nand.c