On Mon, Apr 1, 2013 at 4:13 PM, Marek Vasut <ma...@denx.de> wrote: >> >> Change the code to set the CS bits in the message transfer function >> once. Now the DMA and PIO txrx functions don't need to care about CS >> at all. > > Ok, lemme ask this one more time -- will the DMA work with long transfers > where > the CTRL0 will be overwritten on each turn? Did you actually test this?
I don't have SPI flash, so I can't test SPI flash. I can test other spi devices and by capturing the pins with a logic analyzer. It does work after the patch, and does not work before the patch. The error should be obvious from looking at the code. ctrl0 is not overwritten, from scratch, each on transfer. The ctrl0 value in the PIO part of the DMA is based on the current value of ctrl0 with additional bits ORed in. The flaw here is that bits that should not be set are not masked out. >> >> -static uint32_t mxs_spi_cs_to_reg(unsigned cs) >> +static u32 mxs_spi_cs_to_reg(unsigned cs) >> { >> - uint32_t select = 0; >> + u32 select = 0; I'll make it a separate patch. ------------------------------------------------------------------------------ Own the Future-Intel® Level Up Game Demo Contest 2013 Rise to greatness in Intel's independent game demo contest. Compete for recognition, cash, and the chance to get your game on Steam. $5K grand prize plus 10 genre and skill prizes. Submit your demo by 6/6/13. http://p.sf.net/sfu/intel_levelupd2d _______________________________________________ spi-devel-general mailing list spi-devel-general@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/spi-devel-general