mtd: nand: omap: Synchronize the access to the ECC engine
authorRostislav Lisovy <lisovy@gmail.com>
Wed, 29 Oct 2014 10:10:59 +0000 (11:10 +0100)
committerBrian Norris <computersforpeace@gmail.com>
Wed, 5 Nov 2014 21:01:22 +0000 (13:01 -0800)
commit1dc338e856744b8ca62addd1e29cc25fe6aae14d
treecb1adf5004dc038dc744e0f2f85309c7ddca4c2c
parent4414d3efe57df6168d1ea564d56557d76b5ad8c7
mtd: nand: omap: Synchronize the access to the ECC engine

The AM335x Technical Reference Manual (spruh73j.pdf) says
"Because the ECC engine includes only one accumulation context,
it can be allocated to only one chip-select at a time ... "
(7.1.3.3.12.3). Since the commit 97a288ba2cfa ("ARM: omap2+:
gpmc-nand: Use dynamic platform_device_alloc()") gpmc-nand
driver supports multiple NAND flash devices connected to
the single controller.
Use global 'struct nand_hw_control' among multiple NAND
instances to synchronize the access to the single ECC Engine.

Tested with custom AM335x board using 2x NAND flash chips.

Signed-off-by: Rostislav Lisovy <lisovy@merica.cz>
Acked-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
drivers/mtd/nand/omap2.c