All of lore.kernel.org
 help / color / mirror / Atom feed
From: Philip Rakity <prakity@marvell.com>
To: "Tardy, Pierre" <pierre.tardy@intel.com>
Cc: Pierre Tardy <tardyp@gmail.com>,
	Wolfram Sang <w.sang@pengutronix.de>,
	"linux-mmc@vger.kernel.org" <linux-mmc@vger.kernel.org>
Subject: Re: [RFC} sdhci.c set_ios -- disable global interrupts and Question on Power Management
Date: Mon, 14 Feb 2011 12:17:28 -0800	[thread overview]
Message-ID: <ADA48E01-9665-4D2B-889A-097FA4E6AD9F@marvell.com> (raw)
In-Reply-To: <8250E4885F9967469CAC3FB5CBA2CE69935205E445@irsmsx501.ger.corp.intel.com>


According to Zhangfei Gao -- android crashes when we are code to handle dual data rate because of the mdelay of 5ms that 
is needed for the voltage to become stable.  (see my ddr patch) 

I have never seen this problem with android.

The dual data rate code is in another patch;  it adds another call into set_ios to handle this.  

His comment was doing mdelay stopped the system from being scheduled since mdelay is done with interrupts disabled.  It also
stopped the system for keeping correct time.  

If doing mdelay breaks android then the original code (no ddr code) is wrong since mdelay should not be issued with
interrupts disabled and depending on the quirks defined the delays can be very large.

Wanted to handle his concern.


On Feb 14, 2011, at 10:41 AM, Tardy, Pierre wrote:

> Philip,
>>> And, more important, you will do cond_resched while holding you
>>> spinlock, which is *bad*.
>>> What if the mmc stack will call you again from another thread? deadlock...
> 
>> Assumptions -- Please Confirm
>> -------------------------------------------
> No need to do assumptions, schedule while holding spinlocks is bad, your kernel will oops with something like:
> BUG: scheduling while in atomic.
> 
> 
>>>> @@ -1108,7 +1108,7 @@ static void sdhci_set_power(struct sdhci_host *host, unsigned short power)
>>>>        * can apply clock after applying power
>>>>        */
>>>>       if (host->quirks & SDHCI_QUIRK_DELAY_AFTER_POWER)
>>>> -               mdelay(10);
>>>> +               mmc_delay(10);
>>> Do you need this quirk in your platform?
>> 
>> No
> Then, you dont have any mdelay in your set_ios, and you are trying to optimize something that never happen.
> 
> Pierre
> 
> ---------------------------------------------------------------------
> Intel Corporation SAS (French simplified joint stock company)
> Registered headquarters: "Les Montalets"- 2, rue de Paris, 
> 92196 Meudon Cedex, France
> Registration Number:  302 456 199 R.C.S. NANTERRE
> Capital: 4,572,000 Euros
> 
> This e-mail and any attachments may contain confidential material for
> the sole use of the intended recipient(s). Any review or distribution
> by others is strictly prohibited. If you are not the intended
> recipient, please contact the sender and delete all copies.
> 


  reply	other threads:[~2011-02-14 20:18 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-13  5:39 [RFC} sdhci.c set_ios -- disable global interrupts and Question on Power Management Philip Rakity
2011-02-13 10:25 ` Pierre Tardy
2011-02-13 17:57   ` Philip Rakity
2011-02-14  5:50     ` Philip Rakity
2011-02-14  9:29       ` Pierre Tardy
2011-02-14  9:55         ` Wolfram Sang
2011-02-14 17:27           ` Philip Rakity
2011-02-15  9:13             ` Wolfram Sang
2011-02-14 18:34         ` Philip Rakity
2011-02-14 18:41           ` Tardy, Pierre
2011-02-14 20:17             ` Philip Rakity [this message]
2011-02-14 20:44             ` Philip Rakity
2011-02-15  8:39             ` Wolfram Sang
2011-02-15  3:09         ` Philip Rakity

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=ADA48E01-9665-4D2B-889A-097FA4E6AD9F@marvell.com \
    --to=prakity@marvell.com \
    --cc=linux-mmc@vger.kernel.org \
    --cc=pierre.tardy@intel.com \
    --cc=tardyp@gmail.com \
    --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.