dma: mv_xor: clear the window override control registers
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Thu, 22 Nov 2012 17:16:37 +0000 (18:16 +0100)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Thu, 22 Nov 2012 17:16:37 +0000 (18:16 +0100)
commitc4b4b732b2e99e6e302d90d57f2a4f5c9516d9a3
tree158c098eac7c67375e037578e3f17e689efe03ae
parent9f3410ff217f55c2a30bd1b2eb1032806d17c80e
dma: mv_xor: clear the window override control registers

The XOR channels on Marvell SoCs have a Window Override Control
register that allow to do some fancy things with addresses. Those
features are not used by the driver, but some U-Boot versions anyway
modify those registers.

For some reason, the U-Boot on OpenBlocks AX3-4 was setting an invalid
value in those registers when the addition 2 GB DRAM chip was plugged
into the board, causing the XOR driver to fail in using the XOR
engines.

By setting those registers to 0 during the driver initialization, we
ensure that the registers are configured according with the driver
operation model.

Thanks to Lior Amsalem <alior@marvell.com> for his help in debugging
this problem.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
drivers/dma/mv_xor.c
drivers/dma/mv_xor.h