• Ben Dooks's avatar
    s3cmci: DMA fixes · 68c5ed59
    Ben Dooks authored
    Fixes for the DMA transfer mode of the driver to try and improve the state
    of the code:
    
    - Ensure that dma_complete is set during the end of the command phase
      so that transfers do not stall awaiting the completion
    
    - Update the DMA debugging to provide a bit more useful information
      such as how many DMA descriptors where not processed and print the
      DMA addresses in hexadecimal.
    
    - Fix the DMA channel request code to actually request DMA for the
      S3CMCI block instead of whatever '0' signified.
    
    - Add fallback to PIO if we cannot get the DMA channel, as many of the
      devices with this block only have a limited number of DMA channels.
    
    - Only try and claim and free the DMA channel if we are trying to use it.
    
    This improves the driver DMA code to the point where it can now identify a
    card and read the partition table.  However the DMA can still stall when
    trying to move data between the host and memory.
    Signed-off-by: default avatarBen Dooks <ben@simtec.co.uk>
    Cc: <linux-mmc@vger.kernel.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    68c5ed59
s3cmci.c 45.7 KB