diff options
Diffstat (limited to 'drivers/regulator/core.c')
| -rw-r--r-- | drivers/regulator/core.c | 14 | 
1 files changed, 9 insertions, 5 deletions
| diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c index ca6caba8a191..86aa4141efa9 100644 --- a/drivers/regulator/core.c +++ b/drivers/regulator/core.c @@ -145,7 +145,7 @@ static inline int regulator_lock_nested(struct regulator_dev *rdev,  	mutex_lock(®ulator_nesting_mutex); -	if (ww_ctx || !ww_mutex_trylock(&rdev->mutex)) { +	if (!ww_mutex_trylock(&rdev->mutex, ww_ctx)) {  		if (rdev->mutex_owner == current)  			rdev->ref_cnt++;  		else @@ -1151,9 +1151,10 @@ static int machine_constraints_voltage(struct regulator_dev *rdev,  		}  		if (current_uV < 0) { -			rdev_err(rdev, -				 "failed to get the current voltage: %pe\n", -				 ERR_PTR(current_uV)); +			if (current_uV != -EPROBE_DEFER) +				rdev_err(rdev, +					 "failed to get the current voltage: %pe\n", +					 ERR_PTR(current_uV));  			return current_uV;  		} @@ -1570,7 +1571,7 @@ static int set_supply(struct regulator_dev *rdev,  {  	int err; -	rdev_info(rdev, "supplied by %s\n", rdev_get_name(supply_rdev)); +	rdev_dbg(rdev, "supplied by %s\n", rdev_get_name(supply_rdev));  	if (!try_module_get(supply_rdev->owner))  		return -ENODEV; @@ -4248,6 +4249,9 @@ int regulator_sync_voltage(struct regulator *regulator)  	struct regulator_voltage *voltage = ®ulator->voltage[PM_SUSPEND_ON];  	int ret, min_uV, max_uV; +	if (!regulator_ops_is_valid(rdev, REGULATOR_CHANGE_VOLTAGE)) +		return 0; +  	regulator_lock(rdev);  	if (!rdev->desc->ops->set_voltage && | 
