On Mon, Sep 09, 2013 at 06:29:11PM +0800, Wei Ni wrote:Then he'll have to make sure that all devicetree files in the system contain references
+ reg = devm_regulator_get_optional(dev, "vcc");
+ if (!IS_ERR(reg)) {
+ err = regulator_enable(reg);
+ if (err < 0) {
+ dev_err(&client->dev,
+ "Failed to enable regulator: %d\n", err);
+ return err;
+ }
+ msleep(25);
+ } else {
+ if (PTR_ERR(reg) == -EPROBE_DEFER)
+ return -EPROBE_DEFER;
+ }
This doesn't look good, it is going to ignore actual errors - I *really*
doubt that vcc is optional, it looks like it's the main power supply for
the device. You should use normal regulator_get(), _optional() is for
supplies which could physically not be provided in a system (eg, if the
device can generate them internally if required).
Also do you really need 25ms after power on?I had not noticed, but I recommend to reject the patch because of it. If we add 25ms delay to each driver,