1. 30 4月, 2014 6 次提交
  2. 29 4月, 2014 1 次提交
  3. 23 4月, 2014 9 次提交
  4. 16 4月, 2014 3 次提交
  5. 14 4月, 2014 1 次提交
    • S
      dma: edma: fix incorrect SG list handling · 5fc68a6c
      Sekhar Nori 提交于
      The code to handle any length SG lists calls edma_resume()
      even before edma_start() is called. This is incorrect
      because edma_resume() enables edma events on the channel
      after which CPU (in edma_start) cannot clear posted
      events by writing to ECR (per the EDMA user's guide).
      
      Because of this EDMA transfers fail to start if due
      to some reason there is a pending EDMA event registered
      even before EDMA transfers are started. This can happen if
      an EDMA event is a byproduct of device initialization.
      
      Fix this by calling edma_resume() only if it is not the
      first batch of MAX_NR_SG elements.
      
      Without this patch, MMC/SD fails to function on DA850 EVM
      with DMA. The behaviour is triggered by specific IP and
      this can explain why the issue was not reported before
      (example with MMC/SD on AM335x).
      
      Tested on DA850 EVM and AM335x EVM-SK using MMC/SD card.
      
      Cc: stable@vger.kernel.org # v3.12.x+
      Cc: Joel Fernandes <joelf@ti.com>
      Acked-by: NJoel Fernandes <joelf@ti.com>
      Tested-by: NJon Ringle <jringle@gridpoint.com>
      Tested-by: NAlexander Holler <holler@ahsoftware.de>
      Reported-by: NJon Ringle <jringle@gridpoint.com>
      Signed-off-by: NSekhar Nori <nsekhar@ti.com>
      Signed-off-by: NVinod Koul <vinod.koul@intel.com>
      5fc68a6c
  6. 05 4月, 2014 1 次提交
  7. 04 4月, 2014 19 次提交