Re: Problem with mmc DMA on panda board in 3.6

From: Tim Bird
Date: Tue Oct 02 2012 - 19:01:38 EST


On 10/02/2012 03:28 PM, Robert Nelson wrote:
> On Tue, Oct 2, 2012 at 5:24 PM, Tim Bird <tim.bird@xxxxxxxxxxx> wrote:
>> This is an early report - I'm just checking if anyone else has seen this.
>>
>> With Linux version v3.6, my PandaBoard (OMAP-based) no longer boots. The
>> system appears to fail to initialize the mmc controller.
>>
>> The kernel log message of interest appears to be this:
>> [ 1.690002] omap_hsmmc omap_hsmmc.0: unable to obtain RX DMA engine channel 6
>>
>> I can supply full kernel log messages and my .config if needed.
>>
>> I bisected the code and arrived at the following commit:
>> -------
>> commit 26b88520b80695a6fa5fd95b5d97c03f4daf87e0
>> Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
>> Date: Fri Apr 13 12:27:37 2012 +0100
>>
>> mmc: omap_hsmmc: remove private DMA API implementation
>>
>> Remove the private DMA API implementation from omap_hsmmc, making it
>> use entirely the DMA engine API.
>>
>> Tested-by: Tony Lindgren <tony@xxxxxxxxxxx>
>> Tested-by: Venkatraman S <svenkatr@xxxxxx>
>> Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
>> -------
>> The board works up until this commit.
>> After this commit, the board hangs during boot after the message:
>> [ 1.852508] Waiting for root device /dev/mmcblk0p3...
>> (and some other USB and network messages, which I presume
>> are unrelated.)
>>
>> My questions are these:
>> Has anyone else had problems with the PandaBoard (or other OMAP) on 3.6?
>> Are there any related CONFIG_ variables I could change to try alternatives?
>> What should I try next to debug this?
>
> Check your config, to see if these are enabled:
>
> CONFIG_DMADEVICES=y
> CONFIG_DMA_OMAP=y

They were not. After enabling them, things work as expected.

Thanks very much!! :-)

I've been doing the following on a mainline kernel to generate the
.config for my panda board:

make omap2plus_defconfig
ttc set_config CONFIG_USB_EHCI_HCD=y CONFIG_MFD_OMAP_USB_HOST=y CONFIG_USB_EHCI_ROOT_HUB_TT=N CONFIG_USB_EHCI_TT_NEWSCHED=y CONFIG_USB_EHCI_HCD_OMAP=y CONFIG_USB_EHCI_MV=n
ttc set_config CONFIG_USB_NET_SMSC95XX=y CONFIG_USB_SISUSBVGA=n
make oldconfig

I've kind of lost track of the preferred method of doing board-specific configurations,
since the big defconfig purge of 2011. I think I need to go back to the drawing board
on my automatic config-setting.

In any event, thanks again.
-- Tim

=============================
Tim Bird
Architecture Group Chair, CE Workgroup of the Linux Foundation
Senior Staff Engineer, Sony Network Entertainment
=============================

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/