Dear Andrew Lunn,

On Tue, 6 May 2014 15:33:41 +0200, Andrew Lunn wrote:

> > +   priv->phy = devm_phy_get(&pdev->dev, "usb");
> > +   if (!IS_ERR(priv->phy)) {
> > +           err = phy_init(priv->phy);
> > +           if (err)
> > +                   goto err2;
> > +
> > +           err = phy_power_on(priv->phy);
> > +           if (err)
> > +                   goto err3;
> > +   }
> 
> Hi Gregory
> 
> What about EPROBE_DEFERRED?

In v4 (to be submitted soon), I've changed this to:

        priv->phy = devm_phy_optional_get(&pdev->dev, "usb");
        if (IS_ERR(priv->phy)) {
                err = PTR_ERR(priv->phy);
                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;
        }

Thanks to devm_phy_optional_get(), the fact of not having a PHY in the
DT is not considered an error. So on any error from
devm_phy_optional_get() (including -EPROBE_DEFER), we simply bail out.
Does this looks good?

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to