From: Pavan Kondeti <pkondeti@codeaurora.org>
To: Sergei Shtylyov <sshtylyov@mvista.com>
Cc: greg@kroah.com, linux-usb@vger.kernel.org,
linux-arm-msm@vger.kernel.org,
Anji jonnala <anjir@codeaurora.org>
Subject: Re: [PATCH 4/5] USB: OTG: msm: Configure PHY Analog and Digital voltage domains
Date: Mon, 02 May 2011 11:33:15 +0530 [thread overview]
Message-ID: <4DBE4923.2050802@codeaurora.org> (raw)
In-Reply-To: <4DBA8F6D.7000508@ru.mvista.com>
Hi Sergei,
Thanks for the review.
On 4/29/2011 3:44 PM, Sergei Shtylyov wrote:
> On 28.04.2011 12:01, Pavankumar Kondeti wrote:
>
>> From: Anji jonnala <anjir@codeaurora.org>
>
>> Signed-off-by: Anji jonnala <anjir@codeaurora.org>
>> Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
> [...]
>
<snip>
>> +static int msm_hsusb_init_vddcx(struct msm_otg *motg, int init)
>> +{
>> + int ret = 0;
>> +
>> + if (init) {
>> + hsusb_vddcx = regulator_get(motg->otg.dev, "HSUSB_VDDCX");
>> + if (IS_ERR(hsusb_vddcx)) {
>> + dev_err(motg->otg.dev, "unable to get hsusb vddcx\n");
>> + return PTR_ERR(hsusb_vddcx);
>> + }
>> +
>> + ret = regulator_set_voltage(hsusb_vddcx,
>> + USB_PHY_VDD_DIG_VOL_MIN,
>> + USB_PHY_VDD_DIG_VOL_MAX);
>> + if (ret) {
>> + dev_err(motg->otg.dev, "unable to set the voltage"
>> + "for hsusb vddcx\n");
>> + regulator_put(hsusb_vddcx);
>> + return ret;
>> + }
>> +
>> + ret = regulator_enable(hsusb_vddcx);
>> + if (ret) {
>> + dev_err(motg->otg.dev, "unable to enable hsusb vddcx\n");
>> + regulator_put(hsusb_vddcx);
>> + }
>> + } else {
>> + ret = regulator_set_voltage(hsusb_vddcx, 0,
>> + USB_PHY_VDD_DIG_VOL_MIN);
>> + if (ret) {
>> + dev_err(motg->otg.dev, "unable to set the voltage"
>> + "for hsusb vddcx\n");
>> + return ret;
>> + }
>> + ret = regulator_disable(hsusb_vddcx);
>> + if (ret) {
>> + dev_err(motg->otg.dev, "unable to disable hsusb vddcx\n");
>> + return ret;
>
> I suspect you should call regulator_put() on error cases as well...
>
Yep. Will fix it next patch set.
>> + }
>> +
>> + regulator_put(hsusb_vddcx);
>> + }
>> +
>> + return ret;
>> +}
>> +
>> +static int msm_hsusb_ldo_init(struct msm_otg *motg, int init)
>> +{
>> + int rc = 0;
>> +
>> + if (init) {
>> + hsusb_3p3 = regulator_get(motg->otg.dev, "HSUSB_3p3");
>> + if (IS_ERR(hsusb_3p3)) {
>> + dev_err(motg->otg.dev, "unable to get hsusb 3p3\n");
>> + return PTR_ERR(hsusb_3p3);
>> + }
>> +
>> + rc = regulator_set_voltage(hsusb_3p3, USB_PHY_3P3_VOL_MIN,
>> + USB_PHY_3P3_VOL_MAX);
>> + if (rc) {
>> + dev_err(motg->otg.dev, "unable to set voltage level for"
>> + "hsusb 3p3\n");
>> + goto put_3p3;
>> + }
>> + rc = regulator_enable(hsusb_3p3);
>> + if (rc) {
>> + dev_err(motg->otg.dev, "unable to enable the hsusb 3p3\n");
>> + goto put_3p3_lpm;
>> + }
>> + hsusb_1p8 = regulator_get(motg->otg.dev, "HSUSB_1p8");
>> + if (IS_ERR(hsusb_1p8)) {
>> + dev_err(motg->otg.dev, "unable to get hsusb 1p8\n");
>> + rc = PTR_ERR(hsusb_1p8);
>> + goto put_3p3_lpm;
>> + }
>> + rc = regulator_set_voltage(hsusb_1p8, USB_PHY_1P8_VOL_MIN,
>> + USB_PHY_1P8_VOL_MAX);
>> + if (rc) {
>> + dev_err(motg->otg.dev, "unable to set voltage level for"
>> + "hsusb 1p8\n");
>> + goto put_1p8;
>> + }
>> + rc = regulator_enable(hsusb_1p8);
>> + if (rc) {
>> + dev_err(motg->otg.dev, "unable to enable the hsusb 1p8\n");
>> + goto disable_1p8;
>> + }
>> +
>> + return 0;
>> + }
>> +
>> +disable_1p8:
>> + regulator_set_voltage(hsusb_1p8, 0, USB_PHY_1P8_VOL_MAX);
>> + regulator_disable(hsusb_1p8);
>
> Why call regualator_disable() if regulator_enable() has just failed?
Correct. regulator_disable() call is not required.
The error handling here seems to be wrong. We don't need to explicitly
call regulator_set_voltage() upon regulator_enable() failure. will fix
this in next patch set.
>
>> +put_1p8:
>> + regulator_put(hsusb_1p8);
>> +put_3p3_lpm:
>> + regulator_set_voltage(hsusb_3p3, 0, USB_PHY_3P3_VOL_MAX);
>> +put_3p3:
>> + regulator_put(hsusb_3p3);
>> + return rc;
>> +}
> [...]
>> @@ -1345,6 +1532,10 @@ free_irq:
>> disable_clks:
>> clk_disable(motg->pclk);
>> clk_disable(motg->clk);
>> +free_ldo_init:
>
> 'ldo_exit' perhaps?
>
sounds good.
>> + msm_hsusb_ldo_init(motg, 0);
>> +free_config_vddcx:
>
> 'vddcx_exit' perhaps?
>
sounds good.
>> + msm_hsusb_init_vddcx(motg, 0);
>> free_regs:
>> iounmap(motg->regs);
>> put_core_clk:
>
> WBR, Sergei
--
Sent by a consultant of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.
next prev parent reply other threads:[~2011-05-02 6:03 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-28 8:01 [PATCH 1/5] USB: gadget: Use Zero Interrupt Threshold Control for ci13xxx_msm Pavankumar Kondeti
2011-04-28 8:01 ` [PATCH 2/5] USB: OTG: vote for dayatona fabric clock Pavankumar Kondeti
2011-04-28 8:01 ` [PATCH 3/5] USB: OTG: msm: Implement charger detection Pavankumar Kondeti
2011-04-28 8:01 ` [PATCH 4/5] USB: OTG: msm: Configure PHY Analog and Digital voltage domains Pavankumar Kondeti
2011-04-29 10:14 ` Sergei Shtylyov
2011-05-02 6:03 ` Pavan Kondeti [this message]
2011-04-28 8:01 ` [PATCH 5/5] USB: OTG: msm: Add PHY suspend support for MSM8960 Pavankumar Kondeti
2011-04-28 14:49 ` Sergei Shtylyov
2011-04-29 5:20 ` Pavan Kondeti
2011-04-28 12:18 ` [PATCH 1/5] USB: gadget: Use Zero Interrupt Threshold Control for ci13xxx_msm Sergei Shtylyov
2011-04-29 5:16 ` Pavan Kondeti
2011-04-29 5:22 ` Pavankumar Kondeti
2011-04-29 5:22 ` [PATCH 2/5] USB: OTG: vote for dayatona fabric clock Pavankumar Kondeti
[not found] ` <1304054532-3523-1-git-send-email-pkondeti-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2011-04-29 5:22 ` [PATCH 3/5] USB: OTG: msm: Implement charger detection Pavankumar Kondeti
2011-04-29 5:22 ` [PATCH 5/5] USB: OTG: msm: Add PHY suspend support for MSM8960 Pavankumar Kondeti
2011-04-29 5:22 ` [PATCH 4/5] USB: OTG: msm: Configure PHY Analog and Digital voltage domains Pavankumar Kondeti
2011-05-02 6:36 ` [PATCH V2 0/5] USB Charging, PHY init and suspend support for MSM8960 Pavankumar Kondeti
2011-05-02 6:36 ` [PATCH V2 1/5] USB: gadget: Use Zero Interrupt Threshold Control for ci13xxx_msm Pavankumar Kondeti
2011-05-02 6:36 ` [PATCH V2 2/5] USB: OTG: vote for dayatona fabric clock Pavankumar Kondeti
2011-05-02 6:36 ` [PATCH V2 3/5] USB: OTG: msm: Implement charger detection Pavankumar Kondeti
[not found] ` <1304318192-24374-1-git-send-email-pkondeti-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2011-05-02 6:36 ` [PATCH V2 4/5] USB: OTG: msm: Configure PHY Analog and Digital voltage domains Pavankumar Kondeti
2011-05-02 6:36 ` [PATCH V2 5/5] USB: OTG: msm: Add PHY suspend support for MSM8960 Pavankumar Kondeti
2011-05-02 12:22 ` Sergei Shtylyov
2011-05-03 5:01 ` Pavan Kondeti
[not found] ` <1303977693-18389-1-git-send-email-pkondeti-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2011-05-02 9:58 ` [PATCH V3 0/5] USB Charging, PHY init and " Pavankumar Kondeti
[not found] ` <1304330325-21982-1-git-send-email-pkondeti-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2011-05-02 9:58 ` [PATCH V3 1/5] USB: gadget: Use Zero Interrupt Threshold Control for ci13xxx_msm Pavankumar Kondeti
2011-05-02 9:58 ` [PATCH V3 2/5] USB: OTG: msm: vote for dayatona fabric clock Pavankumar Kondeti
2011-05-02 9:58 ` [PATCH V3 3/5] USB: OTG: msm: Implement charger detection Pavankumar Kondeti
2011-05-02 9:58 ` [PATCH V3 4/5] USB: OTG: msm: Configure PHY Analog and Digital voltage domains Pavankumar Kondeti
2011-05-02 9:58 ` [PATCH V3 5/5] USB: OTG: msm: Add PHY suspend support for MSM8960 Pavankumar Kondeti
2011-05-03 5:13 ` [PATCH V4 0/5] USB Charging, PHY init and " Pavankumar Kondeti
[not found] ` <1304399633-16120-1-git-send-email-pkondeti-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2011-05-03 5:13 ` [PATCH V4 1/5] USB: gadget: Use Zero Interrupt Threshold Control for ci13xxx_msm Pavankumar Kondeti
2011-05-03 5:13 ` [PATCH V4 2/5] USB: OTG: msm: vote for dayatona fabric clock Pavankumar Kondeti
[not found] ` <1304399633-16120-3-git-send-email-pkondeti-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2011-05-03 11:14 ` Sergei Shtylyov
2011-05-03 12:29 ` Pavan Kondeti
2011-05-03 17:15 ` Greg KH
2011-05-04 4:48 ` Pavan Kondeti
2011-05-03 5:13 ` [PATCH V4 3/5] USB: OTG: msm: Implement charger detection Pavankumar Kondeti
2011-05-03 5:13 ` [PATCH V4 4/5] USB: OTG: msm: Configure PHY Analog and Digital voltage domains Pavankumar Kondeti
2011-05-03 5:13 ` [PATCH V4 5/5] USB: OTG: msm: Add PHY suspend support for MSM8960 Pavankumar Kondeti
2011-05-04 4:49 ` [PATCH V5 0/4] USB Charging, PHY init and " Pavankumar Kondeti
2011-05-04 4:49 ` [PATCH V5 1/4] USB: OTG: msm: vote for dayatona fabric clock Pavankumar Kondeti
2011-05-04 4:49 ` [PATCH V5 2/4] USB: OTG: msm: Implement charger detection Pavankumar Kondeti
[not found] ` <1304484589-17186-1-git-send-email-pkondeti-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2011-05-04 4:49 ` [PATCH V5 3/4] USB: OTG: msm: Configure PHY Analog and Digital voltage domains Pavankumar Kondeti
2011-05-04 4:49 ` [PATCH V5 4/4] USB: OTG: msm: Add PHY suspend support for MSM8960 Pavankumar Kondeti
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=4DBE4923.2050802@codeaurora.org \
--to=pkondeti@codeaurora.org \
--cc=anjir@codeaurora.org \
--cc=greg@kroah.com \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=sshtylyov@mvista.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).