Re: ARM: AM335x: Kernel oops when using EDMA and MMC

2013-07-18 Thread Mark Jackson
On 17/07/13 17:38, Joel Fernandes wrote: On 07/17/2013 10:55 AM, Mark Jackson wrote: I'm trying to get the MMC port working on our custom AM3352 CPU board. I have added MMC entries to out dts file (similar to [1]), and I've enabled CONFIG_TI_EDMA. Our board boots fine without an SD card

Re: omap_hsmmc: race between omap_hsmmc_start_command() and DMA callback

2013-07-18 Thread Balaji T K
On Thursday 18 July 2013 09:36 PM, Daniel Mack wrote: Hi, I'm facing a NULL pointer dereference in omap_hsmmc_start_command() on an AM33xx board running 3.11-rc1 (DMA enabled). A quick debug session showed that DMA engine timing leads to a very reproducable race condition. In

Re: ARM: AM335x: Kernel oops when using EDMA and MMC

2013-07-18 Thread Balaji T K
On Wednesday 17 July 2013 10:08 PM, Joel Fernandes wrote: On 07/17/2013 10:55 AM, Mark Jackson wrote: I'm trying to get the MMC port working on our custom AM3352 CPU board. I have added MMC entries to out dts file (similar to [1]), and I've enabled CONFIG_TI_EDMA. Our board boots fine without

Re: ARM: AM335x: Kernel oops when using EDMA and MMC

2013-07-18 Thread Daniel Mack
Hi Balaji, On 18.07.2013 18:40, Balaji T K wrote: With DMA channel info retrieved from dt binding on 3.11rc1, unused_chan_list is broken after hwmod cleanup removing mmc sdma resource info, hence pdev resource wont have DMA resource populated. arch/arm/common/edma.c static int

[PATCH 2/3] mmc: omap_hsmmc: set max_segs based on dma engine limits

2013-07-18 Thread Joel Fernandes
From: Matt Porter mpor...@ti.com The EDMA DMAC has a hardware limitation that prevents supporting scatter gather lists with any number of segments. The DMA Engine API reports the maximum number of segments a channel can support via the optional dma_get_slave_sg_limits() API. If the max_nr_segs

[PATCH 1/3] dmaengine: add dma_get_slave_sg_limits()

2013-07-18 Thread Joel Fernandes
From: Matt Porter mpor...@ti.com Add a dmaengine API to retrieve slave SG transfer limits. The API is optionally implemented by dmaengine drivers and when unimplemented will return a NULL pointer. A client driver using this API provides the required dma channel, address width, and burst size of

Re: [PATCH 1/3] dmaengine: add dma_get_slave_sg_limits()

2013-07-18 Thread Vinod Koul
On Thu, Jul 18, 2013 at 11:46:39AM -0500, Joel Fernandes wrote: From: Matt Porter mpor...@ti.com Add a dmaengine API to retrieve slave SG transfer limits. The API is optionally implemented by dmaengine drivers and when unimplemented will return a NULL pointer. A client driver using this

Re: ARM: AM335x: Kernel oops when using EDMA and MMC

2013-07-18 Thread Joel Fernandes
Hi Balaji, On 07/18/2013 11:40 AM, Balaji T K wrote: On Wednesday 17 July 2013 10:08 PM, Joel Fernandes wrote: On 07/17/2013 10:55 AM, Mark Jackson wrote: I'm trying to get the MMC port working on our custom AM3352 CPU board. I have added MMC entries to out dts file (similar to [1]), and

Re: ARM: AM335x: Kernel oops when using EDMA and MMC

2013-07-18 Thread Joel Fernandes
On 07/18/2013 11:47 AM, Daniel Mack wrote: Hi Balaji, On 18.07.2013 18:40, Balaji T K wrote: With DMA channel info retrieved from dt binding on 3.11rc1, unused_chan_list is broken after hwmod cleanup removing mmc sdma resource info, hence pdev resource wont have DMA resource populated.

Re: [PATCH 1/3] dmaengine: add dma_get_slave_sg_limits()

2013-07-18 Thread Russell King - ARM Linux
On Thu, Jul 18, 2013 at 11:46:39AM -0500, Joel Fernandes wrote: The API is optionally implemented by dmaengine drivers and when unimplemented will return a NULL pointer. A client driver using this API provides the required dma channel, address width, and burst size of the transfer.

Re: [PATCH 1/3] dmaengine: add dma_get_slave_sg_limits()

2013-07-18 Thread Joel Fernandes
On 07/18/2013 12:08 PM, Russell King - ARM Linux wrote: On Thu, Jul 18, 2013 at 11:46:39AM -0500, Joel Fernandes wrote: The API is optionally implemented by dmaengine drivers and when unimplemented will return a NULL pointer. A client driver using this API provides the required dma channel,