From: "Antoine Ténart" <antoine.tenart@free-electrons.com>
To: Peter Chen <peter.chen@freescale.com>
Cc: "Antoine Ténart" <antoine.tenart@free-electrons.com>,
balbi@ti.com, gregkh@linuxfoundation.org, kishon@ti.com,
stern@rowland.harvard.edu, sergei.shtylyov@cogentembedded.com,
yoshihiro.shimoda.uh@renesas.com,
alexandre.belloni@free-electrons.com,
thomas.petazzoni@free-electrons.com, zmxu@marvell.com,
jszhang@marvell.com, linux-usb@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3 9/9] usb: chipidea: add support to the generic PHY framework in ChipIdea
Date: Fri, 29 Aug 2014 16:22:00 +0200 [thread overview]
Message-ID: <20140829142200.GB3848@kwain> (raw)
In-Reply-To: <20140826104241.GE16758@peterchendt>
Hi,
On Tue, Aug 26, 2014 at 06:42:42PM +0800, Peter Chen wrote:
> On Fri, Aug 22, 2014 at 05:50:20PM +0200, Antoine Ténart wrote:
> >
> > /**
> > + * _ci_usb_phy_init: initialize phy taking in account both phy and usb_phy
> > + * interfaces
> > + * @ci: the controller
> > + *
> > + * This function returns an error code if the phy failed to init
> > + */
> > +static int _ci_usb_phy_init(struct ci_hdrc *ci)
> > +{
> > + int ret;
> > +
> > + if (ci->phy) {
> > + ret = phy_init(ci->phy);
> > + if (ret) {
> > + phy_exit(ci->phy);
> > + return ret;
> > + }
> > + ret = phy_power_on(ci->phy);
>
> phy_exit is needed to call after phy_power_on failed
I was pretty sure I made the change. Sorry for the noise, I'll fix that
in the next version.
> >
> > - if (ci->platdata->usb_phy)
> > + if (ci->platdata->phy)
> > + ci->phy = ci->platdata->phy;
> > + else if (ci->platdata->usb_phy)
> > ci->usb_phy = ci->platdata->usb_phy;
> > else
> > - ci->usb_phy = devm_usb_get_phy(dev, USB_PHY_TYPE_USB2);
> > + ci->phy = devm_phy_get(dev, "usb-phy");
> >
> > - if (IS_ERR(ci->usb_phy)) {
> > - ret = PTR_ERR(ci->usb_phy);
> > + if (IS_ERR(ci->phy)) {
> > /*
> > * if -ENXIO is returned, it means PHY layer wasn't
> > * enabled, so it makes no sense to return -EPROBE_DEFER
> > * in that case, since no PHY driver will ever probe.
> > */
> > - if (ret == -ENXIO)
> > - return ret;
> > + if (PTR_ERR(ci->phy) == -ENXIO)
> > + return -ENXIO;
> >
> > - dev_err(dev, "no usb2 phy configured\n");
> > - return -EPROBE_DEFER;
> > + ci->usb_phy = devm_usb_get_phy(dev, USB_PHY_TYPE_USB2);
> > + if (IS_ERR(ci->usb_phy)) {
> > + dev_err(dev, "no usb2 phy configured\n");
> > + return -EPROBE_DEFER;
> > + }
> > }
>
> I am a little puzzled of your above change, if ci->phy == NULL, any chances
> for devm_usb_get_phy(dev, USB_PHY_TYPE_USB2) is invoded?
Right, now that there's two PHY pointers we need to check if ci->phy is
NULL too.
> > diff --git a/drivers/usb/chipidea/debug.c b/drivers/usb/chipidea/debug.c
> > index 5a7ea93011dd..9e9da190a144 100644
> > --- a/drivers/usb/chipidea/debug.c
> > +++ b/drivers/usb/chipidea/debug.c
> > @@ -219,7 +219,9 @@ static int ci_otg_show(struct seq_file *s, void *unused)
> > fsm = &ci->fsm;
> >
> > /* ------ State ----- */
> > - usb_otg_state_string(ci->usb_phy->otg.state));
> > + if (ci->usb_phy)
> > + seq_printf(s, "OTG state: %s\n\n",
>
> Why above line is added? Did you delete wrongly before?
I'll fix that.
> > + usb_otg_state_string(ci->usb_phy->otg->state));
> >
Antoine
--
Antoine Ténart, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
prev parent reply other threads:[~2014-08-29 14:22 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-22 15:50 [PATCH v3 0/9] usb: add support for the generic PHY framework Antoine Ténart
2014-08-22 15:50 ` [PATCH v3 1/9] usb: move the OTG state from the USB PHY to the OTG structure Antoine Ténart
2014-08-22 15:50 ` [PATCH v3 2/9] usb: rename phy to usb_phy in OTG Antoine Ténart
2014-08-22 15:50 ` [PATCH v3 3/9] usb: add support to the generic PHY framework " Antoine Ténart
2014-08-22 15:50 ` [PATCH v3 4/9] usb: rename phy to usb_phy in HCD Antoine Ténart
2014-08-22 15:50 ` [PATCH v3 5/9] usb: rename gen_phy to phy " Antoine Ténart
2014-08-22 15:50 ` [PATCH v3 6/9] usb: allow to supply the PHY in the drivers when using HCD Antoine Ténart
2014-08-22 16:53 ` Sergei Shtylyov
2014-08-22 17:08 ` Sergei Shtylyov
2014-08-22 15:50 ` [PATCH v3 7/9] usb: rename transceiver and phy to usb_phy in ChipIdea Antoine Ténart
2014-08-26 10:08 ` Peter Chen
2014-08-22 15:50 ` [PATCH v3 8/9] usb: chipidea: move usb_otg into struct ci_hdrc Antoine Ténart
2014-08-26 10:22 ` Peter Chen
2014-08-29 14:25 ` Antoine Tenart
2014-09-01 1:13 ` Peter Chen
2014-09-02 9:08 ` Antoine Tenart
2014-09-02 10:18 ` Peter Chen
2014-08-22 15:50 ` [PATCH v3 9/9] usb: chipidea: add support to the generic PHY framework in ChipIdea Antoine Ténart
2014-08-26 10:42 ` Peter Chen
2014-08-29 14:22 ` Antoine Ténart [this message]
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=20140829142200.GB3848@kwain \
--to=antoine.tenart@free-electrons.com \
--cc=alexandre.belloni@free-electrons.com \
--cc=balbi@ti.com \
--cc=gregkh@linuxfoundation.org \
--cc=jszhang@marvell.com \
--cc=kishon@ti.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=peter.chen@freescale.com \
--cc=sergei.shtylyov@cogentembedded.com \
--cc=stern@rowland.harvard.edu \
--cc=thomas.petazzoni@free-electrons.com \
--cc=yoshihiro.shimoda.uh@renesas.com \
--cc=zmxu@marvell.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.