The MMC driver allocates channels with EVENTQ_DEFAULT, they
get put into EVENTQ_1, which the second EDMA controller does
not have and hence transfers stall. This is fixed
in commit f23fe857bbea393b4b94fe2218c98d934bd3d4cf
"ARM: davinci: Explicitly set channel controllers' default queues"
from Ido Yariv. This patch sets immediately in edma_probe()
the proper default_queue, so this patch does not really fix
something, it is more a cosmetic change.

Signed-off-by: Heiko Schocher <[email protected]>
Signed-off-by: [email protected]
Reported-by: [email protected]
Acked-by: Rajashekhara, Sudhakar <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: Rajashekhara, Sudhakar <[email protected]>
Cc: Ido Yariv <[email protected]>
Cc: Sekhar Nori <[email protected]>
Cc: Wolfgang Denk <[email protected]>
Cc: Sergei Shtylyov <[email protected]>

---
- changes for v2:
  - add comment from Sergei Shtylyov
    add in commit message the commit's summary in parens.
  - add comment from Ido Yariv:
    changed comment and commit message
  - added Acked-by from Rajashekhara, Sudhakar

 arch/arm/mach-davinci/dma.c |   10 ++++++----
 1 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/arch/arm/mach-davinci/dma.c b/arch/arm/mach-davinci/dma.c
index da90103..a0cabc7 100644
--- a/arch/arm/mach-davinci/dma.c
+++ b/arch/arm/mach-davinci/dma.c
@@ -1508,12 +1508,14 @@ static int __init edma_probe(struct platform_device 
*pdev)
                        goto fail;
                }
 
-               /* Everything lives on transfer controller 1 until otherwise
-                * specified. This way, long transfers on the low priority queue
-                * started by the codec engine will not cause audio defects.
+               /*
+                * Everything lives on transfer controller 1, except on the
+                * da850 MMC2 controller, so pass info[j]->default_queue.
+                * This way, long transfers on the low priority queue started
+                * by the codec engine will not cause audio defects.
                 */
                for (i = 0; i < edma_cc[j]->num_channels; i++)
-                       map_dmach_queue(j, i, EVENTQ_1);
+                       map_dmach_queue(j, i, info[j]->default_queue);
 
                queue_tc_mapping = info[j]->queue_tc_mapping;
                queue_priority_mapping = info[j]->queue_priority_mapping;
-- 
1.7.6.4

--
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

Reply via email to