Mark, Stefan Agner <stefan@xxxxxxxx> writes: > According to the device tree bindings the vcc-supply is optional. > So far the driver did request the regulator using devm_regulator_get > which creates a dummy regulator for convenience. Since we can have > the supply unconnected, we should make use of the optional variant > of the regulator call which does not return a dummy regulator but > -ENODEV. The driver already has checks in case the regulator is an > error pointer. > > Note that with this change the behavior is slightly different in > case devm_regulator_get_optional returns -EPROBE_DEFER: The driver > returns -EPROBE_DEFER even if needs_vcc is set false. This is the > correct behavior, since even if the regulator is optional, it might > get initialized later... > > Signed-off-by: Stefan Agner <stefan@xxxxxxxx> > --- > This gets rid of warnings such as this (seen on i.MX 7): > 30800000.aips-bus:usbphynop1 supply vcc not found, using dummy regulator > > -- > Stefan > > drivers/usb/phy/phy-generic.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/usb/phy/phy-generic.c b/drivers/usb/phy/phy-generic.c > index 980c9de..38ceadc 100644 > --- a/drivers/usb/phy/phy-generic.c > +++ b/drivers/usb/phy/phy-generic.c > @@ -275,12 +275,12 @@ int usb_phy_gen_create_phy(struct device *dev, struct usb_phy_generic *nop, > } > } > > - nop->vcc = devm_regulator_get(dev, "vcc"); > + nop->vcc = devm_regulator_get_optional(dev, "vcc"); > if (IS_ERR(nop->vcc)) { > dev_dbg(dev, "Error getting vcc regulator: %ld\n", > PTR_ERR(nop->vcc)); > - if (needs_vcc) > - return -EPROBE_DEFER; > + if (needs_vcc || PTR_ERR(nop->vcc) == -EPROBE_DEFER) > + return PTR_ERR(nop->vcc); does this look okay from a regulator API perspective? -- balbi
Attachment:
signature.asc
Description: PGP signature