All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mikko Vinni <mmvinni@yahoo.com>
To: Wolfram Sang <w.sang@pengutronix.de>
Cc: linux-mmc@vger.kernel.org
Subject: Re: [PATCH resend] sdhci: work around broken dma boundary behaviour
Date: Mon, 14 Mar 2011 08:58:02 -0700 (PDT)	[thread overview]
Message-ID: <727376.43956.qm@web161815.mail.bf1.yahoo.com> (raw)
In-Reply-To: <20110314152817.GD2206@pengutronix.de>

Hi,


> Then we'll have a  "useless" update. Won't hurt AFAICS, but might
> surprise people examining the  debug output.

Ok.

> > I only compile  tested this so far, so no proper patch yet, but what I would
> > write based  on the comments is something like this:
> 
> (Sidenote: Indentation is broken.  Tabwidth is 8)

Well yes, that is what yahoo likes to break. I will send a proper patch via
git send-email if/when I have actually tested it and it seems to work.

> 
> > --- a/drivers/mmc/host/sdhci.h
> > +++  b/drivers/mmc/host/sdhci.h
> > @@ -1545,9 +1546,20 @@ static void  sdhci_data_irq(struct sdhci_host *host, 
>u32 
>
> > intmask)
> >            * boundaries, but as we can't disable the  feature
> >           * we need to at least restart  the transfer.
> >           */
> > -         if (intmask & SDHCI_INT_DMA_END)
> > -             sdhci_writel(host, sdhci_readl(host,  SDHCI_DMA_ADDRESS),
> > -                 SDHCI_DMA_ADDRESS);
> > +        if (intmask  & SDHCI_INT_DMA_END) {
> > +             u32 dmastart, dmanow;
> > +             dmastart = sg_dma_address(host->data->sg);
> 
> Consecutive transfers  won't work (I know you know ;)).

I assume you mean a single transfer that exceeds whatever is
defined in SDHCI_DEFAULT_BOUNDARY_SIZE. As long as
it is kept at 512K things should be fine, but adding the auxiliary
variable to facilitate smaller values would make the patch
more invasive. Being an mmc non-hacker, I would rather leave
that kind of invasive patches for others :)


> 
> > +             dmanow = sdhci_readl(host, SDHCI_DMA_ADDRESS);
> > +             /*
> > +              * Force update to the next DMA block boundary.
> > +              */
> > +             dmanow = (dmastart &
> > +                 ~(SDHCI_DEFAULT_BOUNDARY_SIZE - 1)) +
> > +                  SDHCI_DEFAULT_BOUNDARY_SIZE;
> > +             DBG("%s: next DMA address after 0x%08x is 0x%08x\n",
> > +                 mmc_hostname(host->mmc), dmastart,  dmanow);
> > +            sdhci_writel(host,  dmanow, SDHCI_DMA_ADDRESS);
> > +        }
> 
> Other  than that, looks like the right direction to me.

Good to hear.

Mikko


      

  reply	other threads:[~2011-03-14 15:58 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-07 20:40 [PATCH resend] sdhci: work around broken dma boundary behaviour Mikko Vinni
2011-03-08 20:12 ` Chris Ball
2011-03-08 22:12   ` Wolfram Sang
2011-03-12 21:43 ` Wolfram Sang
2011-03-14  9:23   ` Mikko Vinni
2011-03-14 10:18     ` Wolfram Sang
2011-03-14 13:00       ` Mikko Vinni
2011-03-14 15:28         ` Wolfram Sang
2011-03-14 15:58           ` Mikko Vinni [this message]
2011-03-14 17:21             ` Wolfram Sang
2011-03-29  8:53               ` [RFC] mmc: sdhci: work around broken dma boundary behavior Mikko Vinni
2011-04-11 21:05                 ` Chris Ball
2011-04-12  4:56                   ` Wolfram Sang
2011-04-12 17:29                 ` Chris Ball
2011-04-13  7:04                   ` Mikko Vinni

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=727376.43956.qm@web161815.mail.bf1.yahoo.com \
    --to=mmvinni@yahoo.com \
    --cc=linux-mmc@vger.kernel.org \
    --cc=w.sang@pengutronix.de \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.