diff options
Diffstat (limited to 'drivers/cpuidle/cpuidle-big_little.c')
| -rw-r--r-- | drivers/cpuidle/cpuidle-big_little.c | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/drivers/cpuidle/cpuidle-big_little.c b/drivers/cpuidle/cpuidle-big_little.c index 344d79fa3407..ef94c3b81f18 100644 --- a/drivers/cpuidle/cpuidle-big_little.c +++ b/drivers/cpuidle/cpuidle-big_little.c | |||
| @@ -138,25 +138,18 @@ static int bl_enter_powerdown(struct cpuidle_device *dev, | |||
| 138 | return idx; | 138 | return idx; |
| 139 | } | 139 | } |
| 140 | 140 | ||
| 141 | static int __init bl_idle_driver_init(struct cpuidle_driver *drv, int cpu_id) | 141 | static int __init bl_idle_driver_init(struct cpuidle_driver *drv, int part_id) |
| 142 | { | 142 | { |
| 143 | struct cpuinfo_arm *cpu_info; | ||
| 144 | struct cpumask *cpumask; | 143 | struct cpumask *cpumask; |
| 145 | unsigned long cpuid; | ||
| 146 | int cpu; | 144 | int cpu; |
| 147 | 145 | ||
| 148 | cpumask = kzalloc(cpumask_size(), GFP_KERNEL); | 146 | cpumask = kzalloc(cpumask_size(), GFP_KERNEL); |
| 149 | if (!cpumask) | 147 | if (!cpumask) |
| 150 | return -ENOMEM; | 148 | return -ENOMEM; |
| 151 | 149 | ||
| 152 | for_each_possible_cpu(cpu) { | 150 | for_each_possible_cpu(cpu) |
| 153 | cpu_info = &per_cpu(cpu_data, cpu); | 151 | if (smp_cpuid_part(cpu) == part_id) |
| 154 | cpuid = is_smp() ? cpu_info->cpuid : read_cpuid_id(); | ||
| 155 | |||
| 156 | /* read cpu id part number */ | ||
| 157 | if ((cpuid & 0xFFF0) == cpu_id) | ||
| 158 | cpumask_set_cpu(cpu, cpumask); | 152 | cpumask_set_cpu(cpu, cpumask); |
| 159 | } | ||
| 160 | 153 | ||
| 161 | drv->cpumask = cpumask; | 154 | drv->cpumask = cpumask; |
| 162 | 155 | ||
