mtd: cqspi: Simplify indirect write code
authorMarek Vasut <marex@denx.de>
Wed, 27 Apr 2016 21:18:55 +0000 (23:18 +0200)
committerMarek Vasut <marex@denx.de>
Fri, 6 May 2016 16:41:49 +0000 (18:41 +0200)
commit26da6353e17111d7f0882866950cf26a679b8d5f
tree4d7f177d994f6f189869a3c75bae40655b92c4f1
parent8b1a07493f0ad56fafaccce640a0403500e57a78
mtd: cqspi: Simplify indirect write code

The indirect write code is buggy pile of nastiness which fails horribly
when the system runs fast enough to saturate the controller. The failure
results in some pages (256B) not being written to the flash. This can be
observed on systems which run with Dcache enabled and L2 cache enabled,
like the Altera SoCFPGA.

This patch replaces the whole unmaintainable indirect write implementation
with the one from upcoming Linux CQSPI driver, which went through multiple
rounds of thorough review and testing. While this makes the patch look
terrifying and violates all best-practices of software development, all
the patch does is it plucks out duplicate ad-hoc code distributed across
the driver and replaces it with more compact code doing exactly the same
thing.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Anatolij Gustschin <agust@denx.de>
Cc: Chin Liang See <clsee@altera.com>
Cc: Dinh Nguyen <dinguyen@opensource.altera.com>
Cc: Jagan Teki <jteki@openedev.com>
Cc: Pavel Machek <pavel@denx.de>
Cc: Stefan Roese <sr@denx.de>
Cc: Vignesh R <vigneshr@ti.com>
drivers/spi/cadence_qspi_apb.c