Hello Nick, On 21/06/2010, at 11:27, Nick Thompson wrote: > The following restructuring and optimisations increase the SPI > read performance from 1.3MiB/s (on da850) to 2.87MiB/s (on da830):
Using this patch I get 2.21MiB/s on my L138 EVM (da850), quite an improvement! I would like to see how much my original patch can be improved using some of your changes without splitting the code to handle the three cases. I will try later this week. [...] > + if (!dout) > + return davinci_spi_read(slave, len, din, flags); > + else if (!din) > + return davinci_spi_write(slave, len, dout, flags); > +#ifndef CONFIG_SPI_HALF_DUPLEX > + else > + return davinci_spi_read_write(slave, len, din, dout, flags); > +#endif I think there should always be an else branch at the end even if CONFIG_SPI_HALF_DUPLEX is not defined. Something like: #else flags |= SPI_XFER_END; #endif to terminate the transfer instead of failing silently. In fact it should signal the error condition somehow, but I do not know enough about u-boot to provide an advice on this. Thanks -- Delio _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot