linux-mmc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jon Ringle <jon@ringle.org>
To: joelf@ti.com, vinod.koul@intel.com
Cc: "linux-mmc@vger.kernel.org" <linux-mmc@vger.kernel.org>
Subject: dma changes causes SD card to fail detection
Date: Mon, 3 Mar 2014 01:56:45 -0500	[thread overview]
Message-ID: <CAMwGMjxv4FFtn7Aysctr4AALqmHNn4KJYJZWRK5NA09NFDd5zQ@mail.gmail.com> (raw)

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

                 reply	other threads:[~2014-03-03  6:56 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAMwGMjxv4FFtn7Aysctr4AALqmHNn4KJYJZWRK5NA09NFDd5zQ@mail.gmail.com \
    --to=jon@ringle.org \
    --cc=joelf@ti.com \
    --cc=linux-mmc@vger.kernel.org \
    --cc=vinod.koul@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).