On 2015/9/3 20:54, Mark Brown wrote:
On Tue, Sep 01, 2015 at 05:58:44PM +0800, Shawn Lin wrote:
Generic dma controller on Rockchips' platform cannot support
DMAFLUSHP instruction which make dma to flush the req of non-aligned
or non-multiple of what we need. That will cause an unrecoverable
dma bus error. The saftest way is to set dma max burst to 1.
If this is a quirk of the DMA controller why is it being fixed with a
property specific to the SPI controller? Can't the DMA controller just
override the burst size?
Cool...that's a good question. Actually DMA controller can't do that
since block peripheral controller(e.g sd/emmc, they always access data
by block-512Bytes.) can't meet the case. So It's hard for dma controller
know who is the caller, and what should be done.
The only thing dma controller can do is avoid to execute DMAFLUSHP on
its own. But how about peripheral controller trigger non-multiple
access? So that's what I mentioned on covery letter that we should do
"broken things" for both dma controller and some peripherals.
+#define ROCKCHIP_SPI_BORKEN_BURST_LEN (1<<0) /* broken burst len*/
This is misspelt.
Woops, sorry for the bit. Thanks, Mark.
--
Best Regards
Shawn Lin
--
To unsubscribe from this list: send the line "unsubscribe dmaengine" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html