All of lore.kernel.org
 help / color / mirror / Atom feed
From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Cc: Kishon Vijay Abraham I <kishon@ti.com>,
	Gregory Clement <gregory.clement@bootlin.com>,
	Jason Cooper <jason@lakedaemon.net>, Andrew Lunn <andrew@lunn.ch>,
	Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>,
	Rob Herring <robh+dt@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Mathias Nyman <mathias.nyman@intel.com>,
	Alan Stern <stern@rowland.harvard.edu>,
	devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-usb@vger.kernel.org,
	Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
	Antoine Tenart <antoine.tenart@bootlin.com>,
	Maxime Chevallier <maxime.chevallier@bootlin.com>,
	Nadav Haklai <nadavh@marvell.com>
Subject: [v2,03/10] usb: ehci-orion: avoid double PHY initialization
Date: Mon, 21 Jan 2019 11:00:47 +0100	[thread overview]
Message-ID: <20190121110047.7654a67e@xps13> (raw)

Hi Sergei,

Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> wrote on Fri, 11
Jan 2019 21:03:01 +0300:

> Hello!
> 
> On 01/11/2019 04:31 PM, Miquel Raynal wrote:
> 
> > No need to initialize the PHY from the driver's probe. It is done by
> > the core automatically and doing it twice would increment the
> > phy->powercount counter to 2 instead of 1. During later suspend
> > operation, the counter will be decremented to one, no phy->power_off()
> > will occur and worst than that, the following phy->power_on() at  
> 
>    Worse.

Noted

> 
> > resume time will be also skipped, failing the whole S2RAM operation.
> > 
> > Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
> > ---
> >  drivers/usb/host/ehci-orion.c | 26 +++-----------------------
> >  1 file changed, 3 insertions(+), 23 deletions(-)
> > 
> > diff --git a/drivers/usb/host/ehci-orion.c b/drivers/usb/host/ehci-orion.c
> > index 1ad72647a069..3109f082949e 100644
> > --- a/drivers/usb/host/ehci-orion.c
> > +++ b/drivers/usb/host/ehci-orion.c
> > @@ -257,15 +257,7 @@ static int ehci_orion_drv_probe(struct platform_device *pdev)
> >  	if (IS_ERR(priv->phy)) {
> >  		err = PTR_ERR(priv->phy);
> >  		if (err != -ENOSYS)
> > -			goto err_phy_get;
> > -	} else {
> > -		err = phy_init(priv->phy);
> > -		if (err)
> > -			goto err_phy_init;
> > -
> > -		err = phy_power_on(priv->phy);
> > -		if (err)
> > -			goto err_phy_power_on;
> > +			goto err_dis_clk;  
> 
>    Familiar code in unfamiliar place. Somebody must have blindly copied it... :-)

Actually a git blame shows that this code is there since 2014, 4 years
before the HCD core supported PHYs. This driver was probably forgotten
during the process. 


Thanks,
Miquèl

WARNING: multiple messages have this Message-ID (diff)
From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Cc: Mark Rutland <mark.rutland@arm.com>, Andrew Lunn <andrew@lunn.ch>,
	Jason Cooper <jason@lakedaemon.net>,
	Mathias Nyman <mathias.nyman@intel.com>,
	devicetree@vger.kernel.org,
	Antoine Tenart <antoine.tenart@bootlin.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Gregory Clement <gregory.clement@bootlin.com>,
	linux-usb@vger.kernel.org, Kishon Vijay Abraham I <kishon@ti.com>,
	Nadav Haklai <nadavh@marvell.com>,
	Rob Herring <robh+dt@kernel.org>,
	Alan Stern <stern@rowland.harvard.edu>,
	Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
	Maxime Chevallier <maxime.chevallier@bootlin.com>,
	linux-arm-kernel@lists.infradead.org,
	Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Subject: Re: [PATCH v2 03/10] usb: ehci-orion: avoid double PHY initialization
Date: Mon, 21 Jan 2019 11:00:47 +0100	[thread overview]
Message-ID: <20190121110047.7654a67e@xps13> (raw)
In-Reply-To: <ffb3d79a-a506-5bda-402e-98e67d52933f@cogentembedded.com>

Hi Sergei,

Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> wrote on Fri, 11
Jan 2019 21:03:01 +0300:

> Hello!
> 
> On 01/11/2019 04:31 PM, Miquel Raynal wrote:
> 
> > No need to initialize the PHY from the driver's probe. It is done by
> > the core automatically and doing it twice would increment the
> > phy->powercount counter to 2 instead of 1. During later suspend
> > operation, the counter will be decremented to one, no phy->power_off()
> > will occur and worst than that, the following phy->power_on() at  
> 
>    Worse.

Noted

> 
> > resume time will be also skipped, failing the whole S2RAM operation.
> > 
> > Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
> > ---
> >  drivers/usb/host/ehci-orion.c | 26 +++-----------------------
> >  1 file changed, 3 insertions(+), 23 deletions(-)
> > 
> > diff --git a/drivers/usb/host/ehci-orion.c b/drivers/usb/host/ehci-orion.c
> > index 1ad72647a069..3109f082949e 100644
> > --- a/drivers/usb/host/ehci-orion.c
> > +++ b/drivers/usb/host/ehci-orion.c
> > @@ -257,15 +257,7 @@ static int ehci_orion_drv_probe(struct platform_device *pdev)
> >  	if (IS_ERR(priv->phy)) {
> >  		err = PTR_ERR(priv->phy);
> >  		if (err != -ENOSYS)
> > -			goto err_phy_get;
> > -	} else {
> > -		err = phy_init(priv->phy);
> > -		if (err)
> > -			goto err_phy_init;
> > -
> > -		err = phy_power_on(priv->phy);
> > -		if (err)
> > -			goto err_phy_power_on;
> > +			goto err_dis_clk;  
> 
>    Familiar code in unfamiliar place. Somebody must have blindly copied it... :-)

Actually a git blame shows that this code is there since 2014, 4 years
before the HCD core supported PHYs. This driver was probably forgotten
during the process. 


Thanks,
Miquèl

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

             reply	other threads:[~2019-01-21 10:00 UTC|newest]

Thread overview: 64+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-21 10:00 Miquel Raynal [this message]
2019-01-21 10:00 ` [PATCH v2 03/10] usb: ehci-orion: avoid double PHY initialization Miquel Raynal
  -- strict thread matches above, loose matches on Subject: below --
2019-01-21 10:54 [v2,02/10] usb: host: xhci: mvebu: add reset on resume quirk Miquel Raynal
2019-01-21 10:54 ` [PATCH v2 02/10] " Miquel Raynal
2019-01-21 10:37 [v2,05/10] phy: add A3700 UTMI PHY driver Miquel Raynal
2019-01-21 10:37 ` [PATCH v2 05/10] " Miquel Raynal
2019-01-21 10:24 [v2,05/10] " Miquel Raynal
2019-01-21 10:24 ` [PATCH v2 05/10] " Miquel Raynal
2019-01-21  9:55 [v2,03/10] usb: ehci-orion: avoid double PHY initialization Miquel Raynal
2019-01-21  9:55 ` [PATCH v2 03/10] " Miquel Raynal
2019-01-18 16:36 [v2,05/10] phy: add A3700 UTMI PHY driver Gregory CLEMENT
2019-01-18 16:36 ` [PATCH v2 05/10] " Gregory CLEMENT
2019-01-18 16:25 [v2,03/10] usb: ehci-orion: avoid double PHY initialization Gregory CLEMENT
2019-01-18 16:25 ` [PATCH v2 03/10] " Gregory CLEMENT
2019-01-18 16:25 ` Gregory CLEMENT
2019-01-18 16:04 [v2,02/10] usb: host: xhci: mvebu: add reset on resume quirk Gregory CLEMENT
2019-01-18 16:04 ` [PATCH v2 02/10] " Gregory CLEMENT
2019-01-18 16:04 ` Gregory CLEMENT
2019-01-16 21:05 [v2,06/10] dt-bindings: phy: mvebu-utmi: add UTMI PHY bindings Rob Herring
2019-01-16 21:05 ` [PATCH v2 06/10] " Rob Herring
2019-01-16 21:05 ` Rob Herring
2019-01-16  9:20 [v2,05/10] phy: add A3700 UTMI PHY driver Kishon Vijay Abraham I
2019-01-16  9:20 ` [PATCH v2 05/10] " Kishon Vijay Abraham I
2019-01-15  2:40 [v2,05/10] " Chunfeng Yun
2019-01-15  2:40 ` [PATCH v2 05/10] " Chunfeng Yun
2019-01-11 18:03 [v2,03/10] usb: ehci-orion: avoid double PHY initialization Sergei Shtylyov
2019-01-11 18:03 ` [PATCH v2 03/10] " Sergei Shtylyov
2019-01-11 18:03 ` Sergei Shtylyov
2019-01-11 13:31 [v2,10/10] ARM64: dts: marvell: armada-37xx: link USB hosts with their PHYs Miquel Raynal
2019-01-11 13:31 ` [PATCH v2 10/10] " Miquel Raynal
2019-01-11 13:31 ` Miquel Raynal
2019-01-11 13:31 [v2,09/10] ARM64: dts: marvell: armada-37xx: declare USB2 UTMI PHYs Miquel Raynal
2019-01-11 13:31 ` [PATCH v2 09/10] " Miquel Raynal
2019-01-11 13:31 ` Miquel Raynal
2019-01-11 13:31 [v2,08/10] ARM64: dts: marvell: armada-37xx: fix USB2 memory region Miquel Raynal
2019-01-11 13:31 ` [PATCH v2 08/10] " Miquel Raynal
2019-01-11 13:31 ` Miquel Raynal
2019-01-11 13:31 [v2,07/10] MAINTAINERS: phy: fill Armada 3700 PHY drivers entry Miquel Raynal
2019-01-11 13:31 ` [PATCH v2 07/10] " Miquel Raynal
2019-01-11 13:31 ` Miquel Raynal
2019-01-11 13:31 [v2,05/10] phy: add A3700 UTMI PHY driver Miquel Raynal
2019-01-11 13:31 ` [PATCH v2 05/10] " Miquel Raynal
2019-01-11 13:31 [v2,04/10] usb: ehci-orion: add S2RAM support Miquel Raynal
2019-01-11 13:31 ` [PATCH v2 04/10] " Miquel Raynal
2019-01-11 13:31 ` Miquel Raynal
2019-01-11 13:31 [v2,03/10] usb: ehci-orion: avoid double PHY initialization Miquel Raynal
2019-01-11 13:31 ` [PATCH v2 03/10] " Miquel Raynal
2019-01-11 13:31 ` Miquel Raynal
2019-01-11 13:31 [v2,02/10] usb: host: xhci: mvebu: add reset on resume quirk Miquel Raynal
2019-01-11 13:31 ` [PATCH v2 02/10] " Miquel Raynal
2019-01-11 13:31 ` Miquel Raynal
2019-01-11 13:31 [v2,01/10] usb: core: comply to PHY framework Miquel Raynal
2019-01-11 13:31 ` [PATCH v2 01/10] " Miquel Raynal
2019-01-11 13:31 ` Miquel Raynal
2019-01-11 13:31 [PATCH v2 00/10] A3700 USB S2RAM support Miquel Raynal
2019-01-11 13:31 ` [v2,06/10] dt-bindings: phy: mvebu-utmi: add UTMI PHY bindings Miquel Raynal
2019-01-11 13:31   ` [PATCH v2 06/10] " Miquel Raynal
2019-01-11 13:31   ` Miquel Raynal
2019-01-15 21:44   ` [v2,06/10] " Rob Herring
2019-01-15 21:44     ` [PATCH v2 06/10] " Rob Herring
2019-01-15 21:44     ` Rob Herring
2019-01-16 13:20     ` [v2,06/10] " Miquel Raynal
2019-01-16 13:20       ` [PATCH v2 06/10] " Miquel Raynal
2019-01-16 14:49       ` Rob Herring

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=20190121110047.7654a67e@xps13 \
    --to=miquel.raynal@bootlin.com \
    --cc=andrew@lunn.ch \
    --cc=antoine.tenart@bootlin.com \
    --cc=devicetree@vger.kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=gregory.clement@bootlin.com \
    --cc=jason@lakedaemon.net \
    --cc=kishon@ti.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=mathias.nyman@intel.com \
    --cc=maxime.chevallier@bootlin.com \
    --cc=nadavh@marvell.com \
    --cc=robh+dt@kernel.org \
    --cc=sebastian.hesselbarth@gmail.com \
    --cc=sergei.shtylyov@cogentembedded.com \
    --cc=stern@rowland.harvard.edu \
    --cc=thomas.petazzoni@bootlin.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.