The following four patches make the MMC/SD driver use EDMA
reload slots to make it get good throughput without needing
to enable CONFIG_MMC_BLOCK_BOUNCE:

 - Allocate EDMA slots when NR_SG > 1 ... at a typical
   one page per scatterlist entry, NR_SG = 16 pages is
   64 KB, the same as the biggest bounce buffer.

 - Clean up some fault handling problems.  With this,
   I was often able to get 12 MByte/sec throughput on
   a DM6446 EVM ... but that's out-of-spec and would
   not even be reproducible on some days.

 - Some minor code shrinkage ... I happened to notice
   needless indirections, code became smaller/clearer.

 - Kick in NR_SG=16 and use those slots.  There's no
   longer any reason to enable CONFIG_MMC_BLOCK_BOUNCE
   with DaVinci; it won't kick in. 

If you were using CONFIG_MMC_BLOCK_BOUNCE before, you
won't notice much difference ... except that more CPU
time is available for Real Work, and sometimes you might
need fewer I/O requests to transfer the data.  If you
didn't configure that, you'll see a significant speedup.

- Dave

p.s. If you recall that an earlier patch ripped out some
  EDMA linkage support ... that was NR_SG=2 and didn't
  work very well (AFAICT).

p.p.s. After these merge, I think it's time for this
  driver to go to mainline.  So if anyone has other
  patches for this code, or comments, pile on soon!!
 

_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to