Re: [PATCH 1/1] dma: edma: fix incorrect SG list handling

2014-04-14 Thread Sekhar Nori
Vinod,

On Wednesday 19 March 2014 11:25 AM, Sekhar Nori wrote:
 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: sta...@vger.kernel.org # v3.12.x+
 Cc: Joel Fernandes jo...@ti.com
 Acked-by: Joel Fernandes jo...@ti.com
 Tested-by: Jon Ringle jrin...@gridpoint.com
 Tested-by: Alexander Holler hol...@ahsoftware.de
 Reported-by: Jon Ringle jrin...@gridpoint.com
 Signed-off-by: Sekhar Nori nsek...@ti.com

Looks like this patch is not in mainline still?

Thanks,
Sekhar
___
Davinci-linux-open-source mailing list
Davinci-linux-open-source@linux.davincidsp.com
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source


Re: [PATCH 1/1] dma: edma: fix incorrect SG list handling

2014-04-14 Thread Vinod Koul
On Mon, Apr 14, 2014 at 02:01:11PM +0530, Sekhar Nori wrote:
 Vinod,
 
 On Wednesday 19 March 2014 11:25 AM, Sekhar Nori wrote:
  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: sta...@vger.kernel.org # v3.12.x+
  Cc: Joel Fernandes jo...@ti.com
  Acked-by: Joel Fernandes jo...@ti.com
  Tested-by: Jon Ringle jrin...@gridpoint.com
  Tested-by: Alexander Holler hol...@ahsoftware.de
  Reported-by: Jon Ringle jrin...@gridpoint.com
  Signed-off-by: Sekhar Nori nsek...@ti.com
 
 Looks like this patch is not in mainline still?

Sorry looks like I have missed sending the email. I had applied it last week and
today rebased after rc1. It would be part of rc2...

-- 
~Vinod
 
 Thanks,
 Sekhar

-- 
___
Davinci-linux-open-source mailing list
Davinci-linux-open-source@linux.davincidsp.com
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source


Re: [PATCH 1/1] dma: edma: fix incorrect SG list handling

2014-04-14 Thread Sekhar Nori
On Monday 14 April 2014 02:27 PM, Vinod Koul wrote:
 On Mon, Apr 14, 2014 at 02:01:11PM +0530, Sekhar Nori wrote:
 Vinod,

 On Wednesday 19 March 2014 11:25 AM, Sekhar Nori wrote:
 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: sta...@vger.kernel.org # v3.12.x+
 Cc: Joel Fernandes jo...@ti.com
 Acked-by: Joel Fernandes jo...@ti.com
 Tested-by: Jon Ringle jrin...@gridpoint.com
 Tested-by: Alexander Holler hol...@ahsoftware.de
 Reported-by: Jon Ringle jrin...@gridpoint.com
 Signed-off-by: Sekhar Nori nsek...@ti.com

 Looks like this patch is not in mainline still?
 
 Sorry looks like I have missed sending the email. I had applied it last week 
 and
 today rebased after rc1. It would be part of rc2...

Thank you!

Regards,
Sekhar
___
Davinci-linux-open-source mailing list
Davinci-linux-open-source@linux.davincidsp.com
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source