On Wed, Apr 27, 2016 at 08:37:20AM +0300, Felipe Balbi wrote: > Jisheng Zhang writes: > > + vbus = devm_regulator_get(&pdev->dev, "vbus"); > devm_regulator_get_optional() ?? Does USB work without a VBUS? Unless the answer is yes then I'd expect this to be just a normal regulator_get(). > > > + if (PTR_ERR(vbus) == -ENODEV) { > > + vbus = NULL; > > + } else if (IS_ERR(vbus)) { > > + ret = PTR_ERR(vbus); > > + goto disable_clk; > > + } else if (vbus) { > > + ret = regulator_enable(vbus); > > + if (ret) { > > + dev_err(&pdev->dev, > > + "failed to enable usb vbus regulator: %d\n", > > + ret); > > + goto disable_clk; > > + } > > + } This is all completely broken unless the supply is optional.