Re: [PACTH v1 1/2] usb: xhci: plat: Enable runtime PM
On 2016-07-28 08:24 PM, Felipe Balbi wrote: Hi, robert.f...@collabora.com writes: From: Andrew Bresticker Enable runtime PM for the xhci-plat device so that the parent device may implement runtime PM. Signed-off-by: Andrew Bresticker Tested-by: Robert Foss Signed-off-by: Robert Foss --- drivers/usb/host/xhci-plat.c | 19 +-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c index ed56bf9..fbd45c2 100644 --- a/drivers/usb/host/xhci-plat.c +++ b/drivers/usb/host/xhci-plat.c @@ -246,6 +246,9 @@ static int xhci_plat_probe(struct platform_device *pdev) if (ret) goto dealloc_usb2_hcd; + pm_runtime_set_active(&pdev->dev); + pm_runtime_enable(&pdev->dev); + return 0; @@ -274,6 +277,8 @@ static int xhci_plat_remove(struct platform_device *dev) struct xhci_hcd *xhci = hcd_to_xhci(hcd); struct clk *clk = xhci->clk; + pm_runtime_disable(&dev->dev); + usb_remove_hcd(xhci->shared_hcd); usb_phy_shutdown(hcd->usb_phy); @@ -292,7 +297,9 @@ static int xhci_plat_suspend(struct device *dev) { struct usb_hcd *hcd = dev_get_drvdata(dev); struct xhci_hcd *xhci = hcd_to_xhci(hcd); + int ret; + pm_runtime_get_sync(dev); you need to check for possible errors here. Ditto to the other occurence below. Thanks for the feedback (on this and the 0/2), I'll fix the issues and release a v3.
Re: [PACTH v1 1/2] usb: xhci: plat: Enable runtime PM
Hi, robert.f...@collabora.com writes: > From: Andrew Bresticker > > Enable runtime PM for the xhci-plat device so that the parent device > may implement runtime PM. > > Signed-off-by: Andrew Bresticker > Tested-by: Robert Foss > Signed-off-by: Robert Foss > --- > drivers/usb/host/xhci-plat.c | 19 +-- > 1 file changed, 17 insertions(+), 2 deletions(-) > > diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c > index ed56bf9..fbd45c2 100644 > --- a/drivers/usb/host/xhci-plat.c > +++ b/drivers/usb/host/xhci-plat.c > @@ -246,6 +246,9 @@ static int xhci_plat_probe(struct platform_device *pdev) > if (ret) > goto dealloc_usb2_hcd; > > + pm_runtime_set_active(&pdev->dev); > + pm_runtime_enable(&pdev->dev); > + > return 0; > > > @@ -274,6 +277,8 @@ static int xhci_plat_remove(struct platform_device *dev) > struct xhci_hcd *xhci = hcd_to_xhci(hcd); > struct clk *clk = xhci->clk; > > + pm_runtime_disable(&dev->dev); > + > usb_remove_hcd(xhci->shared_hcd); > usb_phy_shutdown(hcd->usb_phy); > > @@ -292,7 +297,9 @@ static int xhci_plat_suspend(struct device *dev) > { > struct usb_hcd *hcd = dev_get_drvdata(dev); > struct xhci_hcd *xhci = hcd_to_xhci(hcd); > + int ret; > > + pm_runtime_get_sync(dev); you need to check for possible errors here. Ditto to the other occurence below. -- balbi signature.asc Description: PGP signature