|
@@ -881,9 +881,17 @@ int i2c_dw_probe(struct dw_i2c_dev *dev)
|
|
|
return r;
|
|
|
}
|
|
|
|
|
|
+ /*
|
|
|
+ * Increment PM usage count during adapter registration in order to
|
|
|
+ * avoid possible spurious runtime suspend when adapter device is
|
|
|
+ * registered to the device core and immediate resume in case bus has
|
|
|
+ * registered I2C slaves that do I2C transfers in their probe.
|
|
|
+ */
|
|
|
+ pm_runtime_get_noresume(dev->dev);
|
|
|
r = i2c_add_numbered_adapter(adap);
|
|
|
if (r)
|
|
|
dev_err(dev->dev, "failure adding adapter: %d\n", r);
|
|
|
+ pm_runtime_put_noidle(dev->dev);
|
|
|
|
|
|
return r;
|
|
|
}
|