diff options
Diffstat (limited to 'drivers/i2c/i2c-core.c')
| -rw-r--r-- | drivers/i2c/i2c-core.c | 54 | 
1 files changed, 24 insertions, 30 deletions
diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c index 6649176de94..bea4c5021d2 100644 --- a/drivers/i2c/i2c-core.c +++ b/drivers/i2c/i2c-core.c @@ -32,7 +32,6 @@  #include <linux/init.h>  #include <linux/idr.h>  #include <linux/mutex.h> -#include <linux/of_i2c.h>  #include <linux/of_device.h>  #include <linux/completion.h>  #include <linux/hardirq.h> @@ -197,11 +196,12 @@ static int i2c_device_pm_suspend(struct device *dev)  {  	const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL; -	if (pm_runtime_suspended(dev)) -		return 0; - -	if (pm) -		return pm->suspend ? pm->suspend(dev) : 0; +	if (pm) { +		if (pm_runtime_suspended(dev)) +			return 0; +		else +			return pm->suspend ? pm->suspend(dev) : 0; +	}  	return i2c_legacy_suspend(dev, PMSG_SUSPEND);  } @@ -216,12 +216,6 @@ static int i2c_device_pm_resume(struct device *dev)  	else  		ret = i2c_legacy_resume(dev); -	if (!ret) { -		pm_runtime_disable(dev); -		pm_runtime_set_active(dev); -		pm_runtime_enable(dev); -	} -  	return ret;  } @@ -229,11 +223,12 @@ static int i2c_device_pm_freeze(struct device *dev)  {  	const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL; -	if (pm_runtime_suspended(dev)) -		return 0; - -	if (pm) -		return pm->freeze ? pm->freeze(dev) : 0; +	if (pm) { +		if (pm_runtime_suspended(dev)) +			return 0; +		else +			return pm->freeze ? pm->freeze(dev) : 0; +	}  	return i2c_legacy_suspend(dev, PMSG_FREEZE);  } @@ -242,11 +237,12 @@ static int i2c_device_pm_thaw(struct device *dev)  {  	const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL; -	if (pm_runtime_suspended(dev)) -		return 0; - -	if (pm) -		return pm->thaw ? pm->thaw(dev) : 0; +	if (pm) { +		if (pm_runtime_suspended(dev)) +			return 0; +		else +			return pm->thaw ? pm->thaw(dev) : 0; +	}  	return i2c_legacy_resume(dev);  } @@ -255,11 +251,12 @@ static int i2c_device_pm_poweroff(struct device *dev)  {  	const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL; -	if (pm_runtime_suspended(dev)) -		return 0; - -	if (pm) -		return pm->poweroff ? pm->poweroff(dev) : 0; +	if (pm) { +		if (pm_runtime_suspended(dev)) +			return 0; +		else +			return pm->poweroff ? pm->poweroff(dev) : 0; +	}  	return i2c_legacy_suspend(dev, PMSG_HIBERNATE);  } @@ -876,9 +873,6 @@ static int i2c_register_adapter(struct i2c_adapter *adap)  	if (adap->nr < __i2c_first_dynamic_bus_num)  		i2c_scan_static_board_info(adap); -	/* Register devices from the device tree */ -	of_i2c_register_devices(adap); -  	/* Notify drivers */  	mutex_lock(&core_lock);  	bus_for_each_drv(&i2c_bus_type, NULL, adap, __process_new_adapter);  | 
