linux-mmc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* dma changes causes SD card to fail detection
@ 2014-03-03  6:56 Jon Ringle
  0 siblings, 0 replies; only message in thread
From: Jon Ringle @ 2014-03-03  6:56 UTC (permalink / raw)
  To: joelf, vinod.koul; +Cc: linux-mmc@vger.kernel.org

I am porting an arm board from linux-3.10 to linux-3.12 and found that
on linux-3.12 I was no longer able to detect the SD card on the board.
I found that the wait_for_completion(&mrq->completion) call in
drivers/mmc/core/core.c:mmc_wait_for_done() was never returning.

I was able to bisect the problem to the following commit. Could you
please advise as to what to do to resolve this issue?

  534070622d2c7fbc5cc929aa93541ccd0ae52ab1 is the first bad commit
  commit 534070622d2c7fbc5cc929aa93541ccd0ae52ab1
  Author: Joel Fernandes <joelf@ti.com>
  Date:   Tue Sep 3 10:02:46 2013 -0500

      dma: edma: Write out and handle MAX_NR_SG at a given time

      Process SG-elements in batches of MAX_NR_SG if they are greater
      than MAX_NR_SG. Due to this, at any given time only those many
      slots will be used in the given channel no matter how long the
      scatter list is. We keep track of how much has been written
      inorder to process the next batch of elements in the scatter-list
      and detect completion.

      For such intermediate transfer completions (one batch of MAX_NR_SG),
      make use of pause and resume functions instead of start and stop
      when such intermediate transfer is in progress or completed as we
      donot want to clear any pending events.

      Signed-off-by: Joel Fernandes <joelf@ti.com>
      Signed-off-by: Vinod Koul <vinod.koul@intel.com>


I tried reverting this commit, but this results in the compiler
complaining with the following:

drivers/dma/edma.c: In function 'edma_execute':
drivers/dma/edma.c:155:11: error: 'struct edma_desc' has no member
named 'processed'
  if (edesc->processed == edesc->pset_nr)
           ^
drivers/dma/edma.c:156:25: error: 'nslots' undeclared (first use in
this function)
   edma_link(echan->slot[nslots-1], echan->ecc->dummy_slot);
                         ^
drivers/dma/edma.c:156:25: note: each undeclared identifier is
reported only once for each function it appears in
drivers/dma/edma.c: At top level:
drivers/dma/edma.c:166:2: error: expected identifier or '(' before 'if'
  if (echan->missed) {
  ^

Thanks,
Jon

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2014-03-03  6:56 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-03-03  6:56 dma changes causes SD card to fail detection Jon Ringle

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).