mirror of
https://github.com/torvalds/linux.git
synced 2026-11-06 21:58:01 +01:00
cpufreq: sparc-us2e: fix frequency table index copy-paste error
In us2e_freq_cpu_init(), the last two frequency writes both use
index [2] instead of [3] and [4] respectively, and the terminator
uses [3] instead of [5]. This is a copy-paste error where the index
was not incremented, causing the divider-6 and divider-8 entries to
overwrite the already-written divider-4 entry.
As a result, only three frequency steps (div 1, 2, and 4) are actually
available to the cpufreq core, while the intended dividers 6 and 8 are
silently lost. The struct us2e_freq_percpu_info::table[6] has room for
5 entries plus a terminator, matching the 5 hardware dividers.
Fix the indices so all five frequency steps are correctly populated:
table[0]=div1, table[1]=div2, table[2]=div4, table[3]=div6,
table[4]=div8, table[5]=TABLE_END.
Fixes: 1da177e4c3 ("Linux-2.6.12-rc2")
Signed-off-by: Xueqin Luo <luoxueqin@kylinos.cn>
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
This commit is contained in:
parent
02c5d7bfa8
commit
e5b33fa477
|
|
@ -282,12 +282,11 @@ static int us2e_freq_cpu_init(struct cpufreq_policy *policy)
|
|||
table[1].frequency = clock_tick / 2;
|
||||
table[2].driver_data = 2;
|
||||
table[2].frequency = clock_tick / 4;
|
||||
table[2].driver_data = 3;
|
||||
table[2].frequency = clock_tick / 6;
|
||||
table[2].driver_data = 4;
|
||||
table[2].frequency = clock_tick / 8;
|
||||
table[2].driver_data = 5;
|
||||
table[3].frequency = CPUFREQ_TABLE_END;
|
||||
table[3].driver_data = 3;
|
||||
table[3].frequency = clock_tick / 6;
|
||||
table[4].driver_data = 4;
|
||||
table[4].frequency = clock_tick / 8;
|
||||
table[5].frequency = CPUFREQ_TABLE_END;
|
||||
|
||||
policy->cpuinfo.transition_latency = 0;
|
||||
policy->cur = clock_tick;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user