Hi Mike, On Mon, Oct 11, 2010 at 23:39:35, Michael Williamson wrote:
> > > > Hmm, looks like the Tx and Rx DMA must always run for the same duration. I > > was > > under the impression Tx is required to keep the clock running, and so must > > always > > run for the length of transfer requested, but Rx DMA can finish earlier. > > > > That may be true. The scenario I was seeing was a requested Tx length of 1 > with no > Rx buffer supplied. The length of the internal buffer was bigger than 1, so > the resulting > Rx DMA size in the a_b_cnt was greater than the Tx size, and it stalled. > > > I guess replacing the line: > > > > param.a_b_cnt = rx_buf_count << 16 | data_type; > > > > with > > > > param.a_b_cnt = davinci_spi->rcount << 16 | data_type; > > > > will also fix the issue? > > > > A better fix. should be fine. I tested this on DA830 and DA850 EVMs with SPI nor flash - it works fine. I added your Tested-By to the DMA patches as well. Thanks for the testing and bug fixing. Updated set of patches pushed to my branch[1]. Testing on DM* platforms is the next task. Thanks, Sekhar [1] http://arago-project.org/git/projects/?p=linux-davinci.git;a=shortlog;h=refs/heads/davinci-spi-rewrite ------------------------------------------------------------------------------ Beautiful is writing same markup. Internet Explorer 9 supports standards for HTML5, CSS3, SVG 1.1, ECMAScript5, and DOM L2 & L3. Spend less time writing and rewriting code and more time creating great experiences on the web. Be a part of the beta today. http://p.sf.net/sfu/beautyoftheweb _______________________________________________ spi-devel-general mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/spi-devel-general
