From: Jaehoon Chung <jh80.chung@samsung.com>
To: Lars-Peter Clausen <lars@metafoo.de>
Cc: Chris Ball <cjb@laptop.org>,
Antonio Ospite <ospite@studenti.unina.it>,
linux-mmc@vger.kernel.org, Will Newton <will.newton@gmail.com>,
Linus Walleij <linus.walleij@stericsson.com>,
Rabin Vincent <rabin.vincent@stericsson.com>,
Sascha Hauer <s.hauer@pengutronix.de>,
Madhusudhan Chikkature <madhu.cr@ti.com>,
Mark Brown <broonie@opensource.wolfsonmicro.com>,
linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH] mmc: fix handling NULL returned from regulator_get()
Date: Thu, 19 May 2011 14:14:00 +0900 [thread overview]
Message-ID: <4DD4A718.5030001@samsung.com> (raw)
In-Reply-To: <4DD47C24.1080404@metafoo.de>
Lars-Peter Clausen wrote:
> On 05/18/2011 02:47 PM, Chris Ball wrote:
>> Hi Antonio, thanks for doing this,
>>
>> On Wed, May 18 2011, Antonio Ospite wrote:
>>> When regulator_get() is stubbed down it returns NULL, handle this case
>>> when deciding whether the driver can use the regulator or not.
>>>
>>> Remember: IS_ERR(NULL) is false, see also this discussion for more
>>> insight: http://comments.gmane.org/gmane.linux.kernel.mmc/7934
>>>
>>> Now that regulator_get() is handled correctly, the ifdef on
>>> CONFIG_REGULATOR in mmci.c can go away as well.
>>>
>>> Signed-off-by: Antonio Ospite <ospite@studenti.unina.it>
>>> ---
>>>
>>> drivers/mmc/host/dw_mmc.c | 2 +-
>>> drivers/mmc/host/mmci.c | 4 +---
>>> drivers/mmc/host/mxcmmc.c | 2 +-
>>> drivers/mmc/host/omap_hsmmc.c | 4 ++--
>>> drivers/mmc/host/sdhci.c | 2 +-
>>> 5 files changed, 6 insertions(+), 8 deletions(-)
>>>
>>> diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
>>> index 87e1f57..5be1325 100644
>>> --- a/drivers/mmc/host/dw_mmc.c
>>> +++ b/drivers/mmc/host/dw_mmc.c
>>> @@ -1442,7 +1442,7 @@ static int __init dw_mci_init_slot(struct dw_mci *host, unsigned int id)
>>> #endif /* CONFIG_MMC_DW_IDMAC */
>>>
>>> host->vmmc = regulator_get(mmc_dev(mmc), "vmmc");
>>> - if (IS_ERR(host->vmmc)) {
>>> + if (IS_ERR_OR_NULL(host->vmmc)) {
>>> printk(KERN_INFO "%s: no vmmc regulator found\n", mmc_hostname(mmc));
>>> host->vmmc = NULL;
>>> } else
>>> diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
>>> index 259ece0..45fd4fe 100644
>>> --- a/drivers/mmc/host/omap_hsmmc.c
>>> +++ b/drivers/mmc/host/omap_hsmmc.c
>>> @@ -405,7 +405,7 @@ static int omap_hsmmc_reg_get(struct omap_hsmmc_host *host)
>>> }
>>>
>>> reg = regulator_get(host->dev, "vmmc");
>>> - if (IS_ERR(reg)) {
>>> + if (IS_ERR_OR_NULL(reg)) {
>>> dev_dbg(host->dev, "vmmc regulator missing\n");
>>> /*
>>> * HACK: until fixed.c regulator is usable,
>>> } else {
>>> [...]
>> I think I like this change for every driver *except* sdhci -- users who
>> compile with CONFIG_REGULATOR=n (i.e. most distros) will start seeing
>> "mmc0: no vmmc regulator found" when they boot their x86 laptops, and
>> printing a cryptic regulator error message when regulator support isn't
>> even compiled in seems uncalled for.
>>
>> So, I think my suggestion is to merge all but the last hunk of the
>> patch. How do others feel about it?
>>
>
> dw_mmc and omap_hsmmc will also print error messages if the regulator framework
> is not build-in. I suggest to use something like:
>
> if (IS_ERR(vmmc)) {
> ... do error handling
> } else if(vmmc) {
> ... use regulator
> } else {
> ... fallback code to initialize ocr_avail
> }
>
if we use IS_ERR_OR_NULL(), i think that we can confuse sometimes.
Because, When we set CONFIG_REGULATOR = n, we can find "mmc0: no vmmc regulator found".
That message means "error or not use regulator framework".
But by that message, we can't know whether error or not use regulator framework.
So i think that Lars's suggestion is better than IS_ERR_OR_NULL.
Regards,
Jaeehoon Chung
> --
> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
WARNING: multiple messages have this Message-ID (diff)
From: jh80.chung@samsung.com (Jaehoon Chung)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] mmc: fix handling NULL returned from regulator_get()
Date: Thu, 19 May 2011 14:14:00 +0900 [thread overview]
Message-ID: <4DD4A718.5030001@samsung.com> (raw)
In-Reply-To: <4DD47C24.1080404@metafoo.de>
Lars-Peter Clausen wrote:
> On 05/18/2011 02:47 PM, Chris Ball wrote:
>> Hi Antonio, thanks for doing this,
>>
>> On Wed, May 18 2011, Antonio Ospite wrote:
>>> When regulator_get() is stubbed down it returns NULL, handle this case
>>> when deciding whether the driver can use the regulator or not.
>>>
>>> Remember: IS_ERR(NULL) is false, see also this discussion for more
>>> insight: http://comments.gmane.org/gmane.linux.kernel.mmc/7934
>>>
>>> Now that regulator_get() is handled correctly, the ifdef on
>>> CONFIG_REGULATOR in mmci.c can go away as well.
>>>
>>> Signed-off-by: Antonio Ospite <ospite@studenti.unina.it>
>>> ---
>>>
>>> drivers/mmc/host/dw_mmc.c | 2 +-
>>> drivers/mmc/host/mmci.c | 4 +---
>>> drivers/mmc/host/mxcmmc.c | 2 +-
>>> drivers/mmc/host/omap_hsmmc.c | 4 ++--
>>> drivers/mmc/host/sdhci.c | 2 +-
>>> 5 files changed, 6 insertions(+), 8 deletions(-)
>>>
>>> diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
>>> index 87e1f57..5be1325 100644
>>> --- a/drivers/mmc/host/dw_mmc.c
>>> +++ b/drivers/mmc/host/dw_mmc.c
>>> @@ -1442,7 +1442,7 @@ static int __init dw_mci_init_slot(struct dw_mci *host, unsigned int id)
>>> #endif /* CONFIG_MMC_DW_IDMAC */
>>>
>>> host->vmmc = regulator_get(mmc_dev(mmc), "vmmc");
>>> - if (IS_ERR(host->vmmc)) {
>>> + if (IS_ERR_OR_NULL(host->vmmc)) {
>>> printk(KERN_INFO "%s: no vmmc regulator found\n", mmc_hostname(mmc));
>>> host->vmmc = NULL;
>>> } else
>>> diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
>>> index 259ece0..45fd4fe 100644
>>> --- a/drivers/mmc/host/omap_hsmmc.c
>>> +++ b/drivers/mmc/host/omap_hsmmc.c
>>> @@ -405,7 +405,7 @@ static int omap_hsmmc_reg_get(struct omap_hsmmc_host *host)
>>> }
>>>
>>> reg = regulator_get(host->dev, "vmmc");
>>> - if (IS_ERR(reg)) {
>>> + if (IS_ERR_OR_NULL(reg)) {
>>> dev_dbg(host->dev, "vmmc regulator missing\n");
>>> /*
>>> * HACK: until fixed.c regulator is usable,
>>> } else {
>>> [...]
>> I think I like this change for every driver *except* sdhci -- users who
>> compile with CONFIG_REGULATOR=n (i.e. most distros) will start seeing
>> "mmc0: no vmmc regulator found" when they boot their x86 laptops, and
>> printing a cryptic regulator error message when regulator support isn't
>> even compiled in seems uncalled for.
>>
>> So, I think my suggestion is to merge all but the last hunk of the
>> patch. How do others feel about it?
>>
>
> dw_mmc and omap_hsmmc will also print error messages if the regulator framework
> is not build-in. I suggest to use something like:
>
> if (IS_ERR(vmmc)) {
> ... do error handling
> } else if(vmmc) {
> ... use regulator
> } else {
> ... fallback code to initialize ocr_avail
> }
>
if we use IS_ERR_OR_NULL(), i think that we can confuse sometimes.
Because, When we set CONFIG_REGULATOR = n, we can find "mmc0: no vmmc regulator found".
That message means "error or not use regulator framework".
But by that message, we can't know whether error or not use regulator framework.
So i think that Lars's suggestion is better than IS_ERR_OR_NULL.
Regards,
Jaeehoon Chung
> --
> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
next prev parent reply other threads:[~2011-05-19 5:14 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-05-18 21:37 [PATCH] mmc: fix handling NULL returned from regulator_get() Antonio Ospite
2011-05-18 21:37 ` Antonio Ospite
2011-05-18 21:47 ` Chris Ball
2011-05-18 21:47 ` Chris Ball
2011-05-19 2:10 ` Lars-Peter Clausen
2011-05-19 2:10 ` Lars-Peter Clausen
2011-05-19 5:14 ` Jaehoon Chung [this message]
2011-05-19 5:14 ` Jaehoon Chung
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=4DD4A718.5030001@samsung.com \
--to=jh80.chung@samsung.com \
--cc=broonie@opensource.wolfsonmicro.com \
--cc=cjb@laptop.org \
--cc=lars@metafoo.de \
--cc=linus.walleij@stericsson.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-mmc@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=madhu.cr@ti.com \
--cc=ospite@studenti.unina.it \
--cc=rabin.vincent@stericsson.com \
--cc=s.hauer@pengutronix.de \
--cc=will.newton@gmail.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 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.