diff options
Diffstat (limited to 'drivers/base/platform.c')
| -rw-r--r-- | drivers/base/platform.c | 9 | 
1 files changed, 3 insertions, 6 deletions
| diff --git a/drivers/base/platform.c b/drivers/base/platform.c index 075ec1d1b73a..09450349cf32 100644 --- a/drivers/base/platform.c +++ b/drivers/base/platform.c @@ -1396,15 +1396,13 @@ static int platform_probe(struct device *_dev)  	if (ret < 0)  		return ret; -	ret = dev_pm_domain_attach(_dev, true); +	ret = dev_pm_domain_attach(_dev, PD_FLAG_ATTACH_POWER_ON | +					 PD_FLAG_DETACH_POWER_OFF);  	if (ret)  		goto out; -	if (drv->probe) { +	if (drv->probe)  		ret = drv->probe(dev); -		if (ret) -			dev_pm_domain_detach(_dev, true); -	}  out:  	if (drv->prevent_deferred_probe && ret == -EPROBE_DEFER) { @@ -1422,7 +1420,6 @@ static void platform_remove(struct device *_dev)  	if (drv->remove)  		drv->remove(dev); -	dev_pm_domain_detach(_dev, true);  }  static void platform_shutdown(struct device *_dev) | 
