linux-arm-msm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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.

  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).