summaryrefslogtreecommitdiff
path: root/drivers/cpufreq/spear-cpufreq.c
diff options
context:
space:
mode:
authorLinus Walleij <linus.walleij@linaro.org>2016-06-15 02:02:26 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2016-08-20 19:09:18 +0300
commit0f984405d09114d07886850868a2a17232ab0f32 (patch)
tree3c511ae702c4b04f559e331475620881f5ca0b92 /drivers/cpufreq/spear-cpufreq.c
parent695c69bf304d7874e0b918684818711f0d7830f9 (diff)
downloadlinux-0f984405d09114d07886850868a2a17232ab0f32.tar.xz
mfd: qcom_rpm: Fix offset error for msm8660
commit 9835f1b70bb3890d38308b9be4fb9d7451ba67f1 upstream. The RPM in MSM8660/APQ8060 has different offsets to the selector ACK and request context ACK registers. Make all these register offsets part of the per-SoC data and assign the right values. The bug was found by verifying backwards to the vendor tree in the out-of-tree files <mach/rpm-[8660|8064|8960]>: all were using offsets 3,11,15,23 and a select size of 4, except the MSM8660/APQ8060 which was using offsets 3,11,19,27 and a select size of 7. All other platforms apart from msm8660 were affected by reading excess registers, since 7 was hardcoded as the number of select words, this patch makes also this part dynamic so we only write/read as many select words as the platform actually use. Symptoms of this bug when using msm8660: the first RPM transaction would work, but the next would stall or raise an error since the previous transaction was not properly ACKed as the ACK words were read at the wrong offset. Fixes: 58e214382bdd ("mfd: qcom-rpm: Driver for the Qualcomm RPM") Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Reviewed-by: Björn Andersson <bjorn.andersson@linaro.org> Signed-off-by: Lee Jones <lee.jones@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/cpufreq/spear-cpufreq.c')
0 files changed, 0 insertions, 0 deletions