diff options
Diffstat (limited to 'drivers/cpufreq/cpufreq.c')
| -rw-r--r-- | drivers/cpufreq/cpufreq.c | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c index d3575f5ec6d2..7fce038fa57e 100644 --- a/drivers/cpufreq/cpufreq.c +++ b/drivers/cpufreq/cpufreq.c | |||
| @@ -583,15 +583,13 @@ out: | |||
| 583 | i += sprintf(&buf[i], "\n"); | 583 | i += sprintf(&buf[i], "\n"); |
| 584 | return i; | 584 | return i; |
| 585 | } | 585 | } |
| 586 | /** | 586 | |
| 587 | * show_affected_cpus - show the CPUs affected by each transition | 587 | static ssize_t show_cpus(cpumask_t mask, char *buf) |
| 588 | */ | ||
| 589 | static ssize_t show_affected_cpus(struct cpufreq_policy *policy, char *buf) | ||
| 590 | { | 588 | { |
| 591 | ssize_t i = 0; | 589 | ssize_t i = 0; |
| 592 | unsigned int cpu; | 590 | unsigned int cpu; |
| 593 | 591 | ||
| 594 | for_each_cpu_mask(cpu, policy->cpus) { | 592 | for_each_cpu_mask(cpu, mask) { |
| 595 | if (i) | 593 | if (i) |
| 596 | i += scnprintf(&buf[i], (PAGE_SIZE - i - 2), " "); | 594 | i += scnprintf(&buf[i], (PAGE_SIZE - i - 2), " "); |
| 597 | i += scnprintf(&buf[i], (PAGE_SIZE - i - 2), "%u", cpu); | 595 | i += scnprintf(&buf[i], (PAGE_SIZE - i - 2), "%u", cpu); |
| @@ -602,6 +600,25 @@ static ssize_t show_affected_cpus(struct cpufreq_policy *policy, char *buf) | |||
| 602 | return i; | 600 | return i; |
| 603 | } | 601 | } |
| 604 | 602 | ||
| 603 | /** | ||
| 604 | * show_related_cpus - show the CPUs affected by each transition even if | ||
| 605 | * hw coordination is in use | ||
| 606 | */ | ||
| 607 | static ssize_t show_related_cpus(struct cpufreq_policy *policy, char *buf) | ||
| 608 | { | ||
| 609 | if (cpus_empty(policy->related_cpus)) | ||
| 610 | return show_cpus(policy->cpus, buf); | ||
| 611 | return show_cpus(policy->related_cpus, buf); | ||
| 612 | } | ||
| 613 | |||
| 614 | /** | ||
| 615 | * show_affected_cpus - show the CPUs affected by each transition | ||
| 616 | */ | ||
| 617 | static ssize_t show_affected_cpus(struct cpufreq_policy *policy, char *buf) | ||
| 618 | { | ||
| 619 | return show_cpus(policy->cpus, buf); | ||
| 620 | } | ||
| 621 | |||
| 605 | static ssize_t store_scaling_setspeed(struct cpufreq_policy *policy, | 622 | static ssize_t store_scaling_setspeed(struct cpufreq_policy *policy, |
| 606 | const char *buf, size_t count) | 623 | const char *buf, size_t count) |
| 607 | { | 624 | { |
| @@ -646,6 +663,7 @@ define_one_ro(cpuinfo_max_freq); | |||
| 646 | define_one_ro(scaling_available_governors); | 663 | define_one_ro(scaling_available_governors); |
| 647 | define_one_ro(scaling_driver); | 664 | define_one_ro(scaling_driver); |
| 648 | define_one_ro(scaling_cur_freq); | 665 | define_one_ro(scaling_cur_freq); |
| 666 | define_one_ro(related_cpus); | ||
| 649 | define_one_ro(affected_cpus); | 667 | define_one_ro(affected_cpus); |
| 650 | define_one_rw(scaling_min_freq); | 668 | define_one_rw(scaling_min_freq); |
| 651 | define_one_rw(scaling_max_freq); | 669 | define_one_rw(scaling_max_freq); |
| @@ -658,6 +676,7 @@ static struct attribute *default_attrs[] = { | |||
| 658 | &scaling_min_freq.attr, | 676 | &scaling_min_freq.attr, |
| 659 | &scaling_max_freq.attr, | 677 | &scaling_max_freq.attr, |
| 660 | &affected_cpus.attr, | 678 | &affected_cpus.attr, |
| 679 | &related_cpus.attr, | ||
| 661 | &scaling_governor.attr, | 680 | &scaling_governor.attr, |
| 662 | &scaling_driver.attr, | 681 | &scaling_driver.attr, |
| 663 | &scaling_available_governors.attr, | 682 | &scaling_available_governors.attr, |
