mmc: davinci_mmc: add warnings for edma failures
PATCH 1/1 mmc: davinci_mmc: add warnings for edma failures
Add warnings in case the edma engine driver fails to allocate slots or channels requested from the davinci_mmc driver.
Some ti-davinci based boards (i.e. board-da850-evm.c) are asking for some reserved chans / slots at board init stage. Later, the mmc driver results in a silent locked state.
drivers/mmc/host/davinci_mmc.c +4 -4
@@ -439,8 +439,8 @@ static int mmc_davinci_send_dma_request(struct mmc_davinci_host *host,DMA_MEM_TO_DEV , DMA_PREP_INTERRUPT | DMA_CTRL_ACK);if (!desc) { -dev_dbg (mmc_dev (host->mmc), -"failed to allocate DMA TX descriptor" ); +WARN (1 ,KERN_WARNING +"failed to allocate DMA TX descriptor\n" ); ret =-1 ; goto out; }
@@ -461,8 +461,8 @@ static int mmc_davinci_send_dma_request(struct mmc_davinci_host *host,DMA_DEV_TO_MEM , DMA_PREP_INTERRUPT | DMA_CTRL_ACK);if (!desc) { -dev_dbg (mmc_dev (host->mmc), -"failed to allocate DMA RX descriptor" ); +WARN (1 ,KERN_WARNING +"failed to allocate DMA RX descriptor\n" ); ret =-1 ; goto out; }
PATCH 1/1 mmc: davinci_mmc: add warnings for edma failures
Dear all,
would like some feedback / comment to this patch.
Even a NACK is good if you find it nonsense or un-useful, just to close the loop.
Regards
angelo
-------- Original Message --------
Message-ID: <[email protected]>
Date: Sat, 22 Nov 2014 01:00:28 +0100
From: Angelo Dureghello <[email protected]>
User-Agent: Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20100101 Icedove/24.5.0
MIME-Version: 1.0
To: [email protected]
Subject: [PATCH] mmc: davinci_mmc: add warnings for edma failures
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Add warnings in case the edma engine driver fails to allocate slots or channels requested from the davinci_mmc driver.
Some ti-davinci based boards (i.e. board-da850-evm.c) are asking for some reserved chans / slots at board init stage. Later, the mmc driver results in a silent locked state.
drivers/mmc/host/davinci_mmc.c +0 -0
@@ -439,8 +439,8 @@ static int mmc_davinci_send_dma_request(struct
mmc_davinci_host *host,
DMA_MEM_TO_DEV,
DMA_PREP_INTERRUPT | DMA_CTRL_ACK);
if (!desc) {- dev_dbg(mmc_dev(host->mmc),
- "failed to allocate DMA TX descriptor");
+ WARN(1, KERN_WARNING
+ "failed to allocate DMA TX descriptor\n");
ret = -1;
goto out;
}
@@ -461,8 +461,8 @@ static int mmc_davinci_send_dma_request(struct
mmc_davinci_host *host,
DMA_DEV_TO_MEM,
DMA_PREP_INTERRUPT | DMA_CTRL_ACK);
if (!desc) {- dev_dbg(mmc_dev(host->mmc),
- "failed to allocate DMA RX descriptor");
+ WARN(1, KERN_WARNING
+ "failed to allocate DMA RX descriptor\n");
ret = -1;
goto out;
}Quoted 6 lines · Angelo Dureghello
Add warnings in case the edma engine driver fails to allocate slots or channels requested from the
davinci_mmcdriver.Some ti-davinci based boards (i.e.
board-da850-evm.c) are asking for some reserved chans / slots at board init stage. Later, the mmc driver results in a silent locked state.
So why does davinci_acquire_dma_channels() succeed then? Isn't that real problem you should be looking into?
Kind regards
Uffe
Quoted 36 lines
Signed-off-by Angelo Dureghello <angelo <at> sysam.it>drivers/mmc/host/davinci_mmc.c +2
-2@@ -439,8 +439,8 @@ static int mmc_davinci_send_dma_request(struct mmc_davinci_host *host,DMA_MEM_TO_DEV , DMA_PREP_INTERRUPT | DMA_CTRL_ACK);if (!desc) { -dev_dbg (mmc_dev (host->mmc), -"failed to allocate DMA TX descriptor" ); +WARN (1 ,KERN_WARNING +"failed to allocate DMA TX descriptor\n" ); ret =-1 ; goto out;}drivers/mmc/host/davinci_mmc.c +2
-2@@ -461,8 +461,8 @@ static int mmc_davinci_send_dma_request(struct mmc_davinci_host *host,DMA_DEV_TO_MEM , DMA_PREP_INTERRUPT | DMA_CTRL_ACK);if (!desc) { -dev_dbg (mmc_dev (host->mmc), -"failed to allocate DMA RX descriptor" ); +WARN (1 ,KERN_WARNING +"failed to allocate DMA RX descriptor\n" ); ret =-1 ; goto out;}--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi Uffe,
many hanks for the reply,
Quoted 9 lines
Quoted 6 lines
Add warnings in case the edma engine driver fails to allocate slots or channels requested from the
davinci_mmcdriver.Some ti-davinci based boards (i.e.
board-da850-evm.c) are asking for some reserved chans / slots at board init stage. Later, the mmc driver results in a silent locked state.So why does
davinci_acquire_dma_channels()succeed then? Isn't that real problem you should be looking into?
i explain with more details,
my custom am1808 board initialization, based on arch/arm/mach-davinci/board-da850-evm.c, reserves some dma chans / slots for the audio at early boot.
While on kernel 3.5.1 mmc was working properly, moving to kernel 3.17.0, due to the dma-engine wrapper introduction (to be selected into menuconfig), the mmc host driver locks silently. System cannot even "reboot" after the failed attempt to reserve the dma slots.
I hardly found out the reason due to missing of clear warnings.
So there is nothing to fix in any other place. Simply, i am suggesting a more visible warning so the driver, instead of lock-up silently, throws a problem.
Feel free to add or discard the patch, as you can see it is nothing functional.
Regards,
Angelo
Quoted 26 lines · Angelo Dureghello
Hi Uffe,
many hanks for the reply,
Quoted 9 lines
Quoted 6 lines
Add warnings in case the edma engine driver fails to allocate slots or channels requested from the
davinci_mmcdriver.Some ti-davinci based boards (i.e.
board-da850-evm.c) are asking for some reserved chans / slots at board init stage. Later, the mmc driver results in a silent locked state.So why does
davinci_acquire_dma_channels()succeed then? Isn't that real problem you should be looking into?i explain with more details,
my custom am1808 board initialization, based on
arch/arm/mach-davinci/board-da850-evm.c, reserves some dma chans / slots for the audio at
early boot.While on kernel 3.5.1 mmc was working properly, moving to kernel 3.17.0, due to the dma-engine wrapper introduction (to be selected into menuconfig), the mmc host driver locks silently. System cannot even "reboot" after the failed attempt to reserve the dma slots.
Quoted 5 lines
I hardly found out the reason due to missing of clear warnings.
So there is nothing to fix in any other place. Simply, i am suggesting a more visible warning so the driver, instead of lock-up silently, throws a problem.
I understand, thanks for clarifying.
So apparently the error handling for this path isn't working. I think we should fix that instead of just WARN about it.
Kind regards
Uffe