1. 30 Dec, 2010 2 commits
    • Ilya Yanok's avatar
      powerpc/512x: scatter/gather dma fix · 6504cf34
      Ilya Yanok authored
      While testing mpc512x-dma driver with dmatest module I've found that
      I can hang the mpc512x-dma issuing request from multiple threads to
      the single channel.
      
          insmod dmatest.ko max_channels=1 threads_per_chan=16
      
      After investigating this case I've managed to find that this happens
      if and only if we have more than one queued requests.
      In this case the driver tries to make use of hardware scatter/gather
      functionality. I've found two problems with scatter/gather:
      
       1. When TCD is copied form RAM to the TCD register space with memcpy_io()
      e_sg bit eventually gets cleared. This results in only first TCD being
      executed. I've added setting of e_sg bit explicitly in the TCD registers.
      BTW, what is the correct way to do this? (How can I use setbits with bitfield
      structure?) After that hardware loads consecutive TCDs and we hit the
      second issue.
      
       2. Existing code clears int_maj bit in the last TCD so we never get
      an interrupt on transfer completion.
      
      With these fixes my tests with many threads of single channel succeed but
      tests that use many channels simultaneously still don't work reliable.
      Signed-off-by: default avatarIlya Yanok <yanok@emcraft.com>
      Acked-by: default avatarWolfgang Denk <wd@denx.de>
      Signed-off-by: default avatarGrant Likely <grant.likely@secretlab.ca>
      6504cf34
    • Grant Likely's avatar
      Merge v2.6.37-rc8 into powerpc/next · d392da52
      Grant Likely authored
      d392da52
  2. 29 Dec, 2010 1 commit
  3. 28 Dec, 2010 7 commits
  4. 27 Dec, 2010 8 commits
  5. 26 Dec, 2010 7 commits
  6. 25 Dec, 2010 1 commit
  7. 24 Dec, 2010 14 commits