Message ID | 1415081826-9297-1-git-send-email-kishon@ti.com |
---|---|
State | New |
Headers | show |
Hi, On Tue, Nov 04, 2014 at 11:47:06AM +0530, Kishon Vijay Abraham I wrote: > From: Oussama Ghorbel <ghorbel@pivasoftware.com> > > The USB OTG port does not work since v3.16 on omap platform. > This is a regression introduced by the commit > eb82a3d846fa (phy: omap-usb2: Balance pm_runtime_enable() on probe failure > and remove). > This because the call to pm_runtime_enable() function is moved after the > call to devm_phy_create() function, which has side effect since later in > the subsequent calls of devm_phy_create() there is a check with > pm_runtime_enabled() to configure few things. > > Signed-off-by: Oussama Ghorbel <ghorbel@pivasoftware.com> > Tested-by: Rabin Vincent <rabin@rab.in> > Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> stable annotations are missing. See Documentation/stable_kernel_rules.txt -- Sebastian
On Wed, Nov 05, 2014 at 06:54:23PM +0100, Sebastian Reichel wrote: > Hi, > > On Tue, Nov 04, 2014 at 11:47:06AM +0530, Kishon Vijay Abraham I wrote: > > From: Oussama Ghorbel <ghorbel@pivasoftware.com> > > > > The USB OTG port does not work since v3.16 on omap platform. > > This is a regression introduced by the commit > > eb82a3d846fa (phy: omap-usb2: Balance pm_runtime_enable() on probe failure > > and remove). > > This because the call to pm_runtime_enable() function is moved after the > > call to devm_phy_create() function, which has side effect since later in > > the subsequent calls of devm_phy_create() there is a check with > > pm_runtime_enabled() to configure few things. > > > > Signed-off-by: Oussama Ghorbel <ghorbel@pivasoftware.com> > > Tested-by: Rabin Vincent <rabin@rab.in> > > Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> > > stable annotations are missing. See > > Documentation/stable_kernel_rules.txt I can take care of that, thanks. greg k-h -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
diff --git a/drivers/phy/phy-omap-usb2.c b/drivers/phy/phy-omap-usb2.c index 8c84298..f091576 100644 --- a/drivers/phy/phy-omap-usb2.c +++ b/drivers/phy/phy-omap-usb2.c @@ -258,14 +258,16 @@ 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, NULL, &ops, NULL); - if (IS_ERR(generic_phy)) + if (IS_ERR(generic_phy)) { + pm_runtime_disable(phy->dev); return PTR_ERR(generic_phy); + } 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)) {