@@ -448,11 +448,9 @@ static ssize_t bq24190_sysfs_show(struct device *dev,
448448	if  (!info )
449449		return  - EINVAL ;
450450
451- 	ret  =  pm_runtime_get_sync (bdi -> dev );
452- 	if  (ret  <  0 ) {
453- 		pm_runtime_put_noidle (bdi -> dev );
451+ 	ret  =  pm_runtime_resume_and_get (bdi -> dev );
452+ 	if  (ret  <  0 )
454453		return  ret ;
455- 	}
456454
457455	ret  =  bq24190_read_mask (bdi , info -> reg , info -> mask , info -> shift , & v );
458456	if  (ret )
@@ -483,11 +481,9 @@ static ssize_t bq24190_sysfs_store(struct device *dev,
483481	if  (ret  <  0 )
484482		return  ret ;
485483
486- 	ret  =  pm_runtime_get_sync (bdi -> dev );
487- 	if  (ret  <  0 ) {
488- 		pm_runtime_put_noidle (bdi -> dev );
484+ 	ret  =  pm_runtime_resume_and_get (bdi -> dev );
485+ 	if  (ret  <  0 )
489486		return  ret ;
490- 	}
491487
492488	ret  =  bq24190_write_mask (bdi , info -> reg , info -> mask , info -> shift , v );
493489	if  (ret )
@@ -506,10 +502,9 @@ static int bq24190_set_charge_mode(struct regulator_dev *dev, u8 val)
506502	struct  bq24190_dev_info  * bdi  =  rdev_get_drvdata (dev );
507503	int  ret ;
508504
509- 	ret  =  pm_runtime_get_sync (bdi -> dev );
505+ 	ret  =  pm_runtime_resume_and_get (bdi -> dev );
510506	if  (ret  <  0 ) {
511507		dev_warn (bdi -> dev , "pm_runtime_get failed: %i\n" , ret );
512- 		pm_runtime_put_noidle (bdi -> dev );
513508		return  ret ;
514509	}
515510
@@ -539,10 +534,9 @@ static int bq24190_vbus_is_enabled(struct regulator_dev *dev)
539534	int  ret ;
540535	u8  val ;
541536
542- 	ret  =  pm_runtime_get_sync (bdi -> dev );
537+ 	ret  =  pm_runtime_resume_and_get (bdi -> dev );
543538	if  (ret  <  0 ) {
544539		dev_warn (bdi -> dev , "pm_runtime_get failed: %i\n" , ret );
545- 		pm_runtime_put_noidle (bdi -> dev );
546540		return  ret ;
547541	}
548542
@@ -1083,11 +1077,9 @@ static int bq24190_charger_get_property(struct power_supply *psy,
10831077
10841078	dev_dbg (bdi -> dev , "prop: %d\n" , psp );
10851079
1086- 	ret  =  pm_runtime_get_sync (bdi -> dev );
1087- 	if  (ret  <  0 ) {
1088- 		pm_runtime_put_noidle (bdi -> dev );
1080+ 	ret  =  pm_runtime_resume_and_get (bdi -> dev );
1081+ 	if  (ret  <  0 )
10891082		return  ret ;
1090- 	}
10911083
10921084	switch  (psp ) {
10931085	case  POWER_SUPPLY_PROP_CHARGE_TYPE :
@@ -1157,11 +1149,9 @@ static int bq24190_charger_set_property(struct power_supply *psy,
11571149
11581150	dev_dbg (bdi -> dev , "prop: %d\n" , psp );
11591151
1160- 	ret  =  pm_runtime_get_sync (bdi -> dev );
1161- 	if  (ret  <  0 ) {
1162- 		pm_runtime_put_noidle (bdi -> dev );
1152+ 	ret  =  pm_runtime_resume_and_get (bdi -> dev );
1153+ 	if  (ret  <  0 )
11631154		return  ret ;
1164- 	}
11651155
11661156	switch  (psp ) {
11671157	case  POWER_SUPPLY_PROP_ONLINE :
@@ -1431,11 +1421,9 @@ static int bq24190_battery_get_property(struct power_supply *psy,
14311421	dev_warn (bdi -> dev , "warning: /sys/class/power_supply/bq24190-battery is deprecated\n" );
14321422	dev_dbg (bdi -> dev , "prop: %d\n" , psp );
14331423
1434- 	ret  =  pm_runtime_get_sync (bdi -> dev );
1435- 	if  (ret  <  0 ) {
1436- 		pm_runtime_put_noidle (bdi -> dev );
1424+ 	ret  =  pm_runtime_resume_and_get (bdi -> dev );
1425+ 	if  (ret  <  0 )
14371426		return  ret ;
1438- 	}
14391427
14401428	switch  (psp ) {
14411429	case  POWER_SUPPLY_PROP_STATUS :
@@ -1479,11 +1467,9 @@ static int bq24190_battery_set_property(struct power_supply *psy,
14791467	dev_warn (bdi -> dev , "warning: /sys/class/power_supply/bq24190-battery is deprecated\n" );
14801468	dev_dbg (bdi -> dev , "prop: %d\n" , psp );
14811469
1482- 	ret  =  pm_runtime_get_sync (bdi -> dev );
1483- 	if  (ret  <  0 ) {
1484- 		pm_runtime_put_noidle (bdi -> dev );
1470+ 	ret  =  pm_runtime_resume_and_get (bdi -> dev );
1471+ 	if  (ret  <  0 )
14851472		return  ret ;
1486- 	}
14871473
14881474	switch  (psp ) {
14891475	case  POWER_SUPPLY_PROP_ONLINE :
@@ -1637,10 +1623,9 @@ static irqreturn_t bq24190_irq_handler_thread(int irq, void *data)
16371623	int  error ;
16381624
16391625	bdi -> irq_event  =  true;
1640- 	error  =  pm_runtime_get_sync (bdi -> dev );
1626+ 	error  =  pm_runtime_resume_and_get (bdi -> dev );
16411627	if  (error  <  0 ) {
16421628		dev_warn (bdi -> dev , "pm_runtime_get failed: %i\n" , error );
1643- 		pm_runtime_put_noidle (bdi -> dev );
16441629		return  IRQ_NONE ;
16451630	}
16461631	bq24190_check_status (bdi );
@@ -1860,11 +1845,9 @@ static int bq24190_remove(struct i2c_client *client)
18601845	struct  bq24190_dev_info  * bdi  =  i2c_get_clientdata (client );
18611846	int  error ;
18621847
1863- 	error  =  pm_runtime_get_sync (bdi -> dev );
1864- 	if  (error  <  0 ) { 
1848+ 	error  =  pm_runtime_resume_and_get (bdi -> dev );
1849+ 	if  (error  <  0 )
18651850		dev_warn (bdi -> dev , "pm_runtime_get failed: %i\n" , error );
1866- 		pm_runtime_put_noidle (bdi -> dev );
1867- 	}
18681851
18691852	bq24190_register_reset (bdi );
18701853	if  (bdi -> battery )
@@ -1913,11 +1896,9 @@ static __maybe_unused int bq24190_pm_suspend(struct device *dev)
19131896	struct  bq24190_dev_info  * bdi  =  i2c_get_clientdata (client );
19141897	int  error ;
19151898
1916- 	error  =  pm_runtime_get_sync (bdi -> dev );
1917- 	if  (error  <  0 ) { 
1899+ 	error  =  pm_runtime_resume_and_get (bdi -> dev );
1900+ 	if  (error  <  0 )
19181901		dev_warn (bdi -> dev , "pm_runtime_get failed: %i\n" , error );
1919- 		pm_runtime_put_noidle (bdi -> dev );
1920- 	}
19211902
19221903	bq24190_register_reset (bdi );
19231904
@@ -1938,11 +1919,9 @@ static __maybe_unused int bq24190_pm_resume(struct device *dev)
19381919	bdi -> f_reg  =  0 ;
19391920	bdi -> ss_reg  =  BQ24190_REG_SS_VBUS_STAT_MASK ; /* impossible state */ 
19401921
1941- 	error  =  pm_runtime_get_sync (bdi -> dev );
1942- 	if  (error  <  0 ) { 
1922+ 	error  =  pm_runtime_resume_and_get (bdi -> dev );
1923+ 	if  (error  <  0 )
19431924		dev_warn (bdi -> dev , "pm_runtime_get failed: %i\n" , error );
1944- 		pm_runtime_put_noidle (bdi -> dev );
1945- 	}
19461925
19471926	bq24190_register_reset (bdi );
19481927	bq24190_set_config (bdi );
0 commit comments