From: Kishon Vijay Abraham I <kishon@ti.com>
To: <gregkh@linuxfoundation.org>
Cc: <kishon@ti.com>, <linux-kernel@vger.kernel.org>
Subject: [PATCH 8/8] phy: omap-usb2: Balance pm_runtime_enable() on probe failure and remove
Date: Mon, 7 Jul 2014 12:18:25 +0530 [thread overview]
Message-ID: <1404715705-5041-9-git-send-email-kishon@ti.com> (raw)
In-Reply-To: <1404715705-5041-1-git-send-email-kishon@ti.com>
From: Roger Quadros <rogerq@ti.com>
If probe fails then we need to call pm_runtime_disable() to balance
out the previous pm_runtime_enable() call. Else it will cause
unbalanced pm_runtime_enable() call in the succeding probe call.
This anomaly was observed when the call to devm_phy_create() failed
with -EPROBE_DEFER.
Balance out the pm_runtime_enable() call in .remove() as well.
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
---
drivers/phy/phy-omap-usb2.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/phy/phy-omap-usb2.c b/drivers/phy/phy-omap-usb2.c
index 2063d54..34b3961 100644
--- a/drivers/phy/phy-omap-usb2.c
+++ b/drivers/phy/phy-omap-usb2.c
@@ -262,7 +262,6 @@ static int omap_usb2_probe(struct platform_device *pdev)
otg->phy = &phy->phy;
platform_set_drvdata(pdev, phy);
- pm_runtime_enable(phy->dev);
generic_phy = devm_phy_create(phy->dev, &ops, NULL);
if (IS_ERR(generic_phy))
@@ -270,10 +269,13 @@ static int omap_usb2_probe(struct platform_device *pdev)
phy_set_drvdata(generic_phy, phy);
+ pm_runtime_enable(phy->dev);
phy_provider = devm_of_phy_provider_register(phy->dev,
of_phy_simple_xlate);
- if (IS_ERR(phy_provider))
+ if (IS_ERR(phy_provider)) {
+ pm_runtime_disable(phy->dev);
return PTR_ERR(phy_provider);
+ }
phy->wkupclk = devm_clk_get(phy->dev, "wkupclk");
if (IS_ERR(phy->wkupclk)) {
@@ -317,6 +319,7 @@ static int omap_usb2_remove(struct platform_device *pdev)
if (!IS_ERR(phy->optclk))
clk_unprepare(phy->optclk);
usb_remove_phy(&phy->phy);
+ pm_runtime_disable(phy->dev);
return 0;
}
--
1.7.9.5
prev parent reply other threads:[~2014-07-07 6:49 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-07 6:48 [GIT PULL 0/8] phy: fixes for 3.16 -rc cycle Kishon Vijay Abraham I
2014-07-07 6:48 ` [PATCH 1/8] phy: sun4i: depend on RESET_CONTROLLER Kishon Vijay Abraham I
2014-07-07 6:48 ` [PATCH 2/8] usb: phy: omap-usb2: fix devm_ioremap_resource error detection code Kishon Vijay Abraham I
2014-07-07 6:48 ` [PATCH 3/8] phy: phy-samsung-usb2: Change phy power on/power off sequence Kishon Vijay Abraham I
2014-07-08 1:44 ` Greg KH
2014-07-08 6:12 ` Kishon Vijay Abraham I
2014-07-09 21:36 ` Greg KH
2014-07-10 5:48 ` Kishon Vijay Abraham I
2014-07-07 6:48 ` [PATCH 4/8] drivers: phy: phy-samsung-usb2.c: Add missing MODULE_DEVICE_TABLE Kishon Vijay Abraham I
2014-07-07 6:48 ` [PATCH 5/8] phy: core: Fix error path in phy_create() Kishon Vijay Abraham I
2014-07-08 1:45 ` Greg KH
2014-07-08 6:14 ` Kishon Vijay Abraham I
2014-07-07 6:48 ` [PATCH 6/8] phy: core: Support regulator supply for PHY power Kishon Vijay Abraham I
2014-07-08 1:45 ` Greg KH
2014-07-08 6:18 ` Kishon Vijay Abraham I
2014-07-07 6:48 ` [PATCH 7/8] phy: core: Add phy-supply to DT binding documentation Kishon Vijay Abraham I
2014-07-07 6:48 ` Kishon Vijay Abraham I [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=1404715705-5041-9-git-send-email-kishon@ti.com \
--to=kishon@ti.com \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
/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.