Skip to content

Commit 0eef091

Browse files
storulfrafaeljw
authored andcommitted
PM: domains: Split code in dev_pm_genpd_set_performance_state()
To prepare some of the code in dev_pm_genpd_set_performance_state() to be re-used from subsequent changes, let's split it up into two functions. Reviewed-by: Viresh Kumar <[email protected]> Signed-off-by: Ulf Hansson <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
1 parent 763663c commit 0eef091

File tree

1 file changed

+19
-12
lines changed

1 file changed

+19
-12
lines changed

drivers/base/power/domain.c

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -379,6 +379,24 @@ static int _genpd_set_performance_state(struct generic_pm_domain *genpd,
379379
return ret;
380380
}
381381

382+
static int genpd_set_performance_state(struct device *dev, unsigned int state)
383+
{
384+
struct generic_pm_domain *genpd = dev_to_genpd(dev);
385+
struct generic_pm_domain_data *gpd_data = dev_gpd_data(dev);
386+
unsigned int prev_state;
387+
int ret;
388+
389+
prev_state = gpd_data->performance_state;
390+
gpd_data->performance_state = state;
391+
state = _genpd_reeval_performance_state(genpd, state);
392+
393+
ret = _genpd_set_performance_state(genpd, state, 0);
394+
if (ret)
395+
gpd_data->performance_state = prev_state;
396+
397+
return ret;
398+
}
399+
382400
/**
383401
* dev_pm_genpd_set_performance_state- Set performance state of device's power
384402
* domain.
@@ -397,8 +415,6 @@ static int _genpd_set_performance_state(struct generic_pm_domain *genpd,
397415
int dev_pm_genpd_set_performance_state(struct device *dev, unsigned int state)
398416
{
399417
struct generic_pm_domain *genpd;
400-
struct generic_pm_domain_data *gpd_data;
401-
unsigned int prev;
402418
int ret;
403419

404420
genpd = dev_to_genpd_safe(dev);
@@ -410,16 +426,7 @@ int dev_pm_genpd_set_performance_state(struct device *dev, unsigned int state)
410426
return -EINVAL;
411427

412428
genpd_lock(genpd);
413-
414-
gpd_data = to_gpd_data(dev->power.subsys_data->domain_data);
415-
prev = gpd_data->performance_state;
416-
gpd_data->performance_state = state;
417-
418-
state = _genpd_reeval_performance_state(genpd, state);
419-
ret = _genpd_set_performance_state(genpd, state, 0);
420-
if (ret)
421-
gpd_data->performance_state = prev;
422-
429+
ret = genpd_set_performance_state(dev, state);
423430
genpd_unlock(genpd);
424431

425432
return ret;

0 commit comments

Comments
 (0)