android_kernel_google_msm/drivers/cpufreq
Mikulas Patocka 73cee5a80c cpufreq: speedstep-smi: enable interrupts when waiting
commit d4d4eda23794c701442e55129dd4f8f2fefd5e4d upstream.

On Dell Latitude C600 laptop with Pentium 3 850MHz processor, the
speedstep-smi driver sometimes loads and sometimes doesn't load with
"change to state X failed" message.

The hardware sometimes refuses to change frequency and in this case, we
need to retry later. I found out that we need to enable interrupts while
waiting. When we enable interrupts, the hardware blockage that prevents
frequency transition resolves and the transition is possible. With
disabled interrupts, the blockage doesn't resolve (no matter how long do
we wait). The exact reasons for this hardware behavior are unknown.

This patch enables interrupts in the function speedstep_set_state that can
be called with disabled interrupts. However, this function is called with
disabled interrupts only from speedstep_get_freqs, so it shouldn't cause
any problem.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Zefan Li <lizefan@huawei.com>
2015-06-19 11:40:15 +08:00
..
acpi-cpufreq.c
cpufreq-nforce2.c cpufreq: Add support for x86 cpuinfo auto loading v4 2012-01-26 16:49:06 -08:00
cpufreq.c cpufreq: expose scaling_cur_freq sysfs file for set_policy() drivers 2015-02-02 17:04:56 +08:00
cpufreq_conservative.c
cpufreq_ondemand.c [CPUFREQ] CPUfreq ondemand: update sampling rate without waiting for next sampling 2012-02-29 22:24:40 -05:00
cpufreq_performance.c
cpufreq_powersave.c
cpufreq_stats.c Fix memory leak in cpufreq stats. 2013-03-14 11:29:51 -07:00
cpufreq_userspace.c [CPUFREQ] cpufreq:userspace: fix cpu_cur_freq updation 2012-01-06 10:10:53 -05:00
db8500-cpufreq.c drivers/cpufreq/db8500-cpufreq: remove references to cpu_*_map. 2012-03-29 15:38:30 +10:30
e_powersaver.c cpufreq: Add support for x86 cpuinfo auto loading v4 2012-01-26 16:49:06 -08:00
elanfreq.c cpufreq: Add support for x86 cpuinfo auto loading v4 2012-01-26 16:49:06 -08:00
exynos-cpufreq.c EXYNOS5250: Add support cpufreq for EXYNOS5250 2012-03-14 14:39:50 -04:00
exynos4x12-cpufreq.c EXYNOS4X12: Add support cpufreq for EXYNOS4X12 2012-03-14 14:39:47 -04:00
exynos4210-cpufreq.c [CPUFREQ] EXYNOS4210: update the name of EXYNOS clock register 2012-02-29 22:24:38 -05:00
exynos5250-cpufreq.c EXYNOS5250: Add support cpufreq for EXYNOS5250 2012-03-14 14:39:50 -04:00
freq_table.c
gx-suspmod.c cpufreq/gx: Fix the compile error 2012-02-02 15:32:12 -08:00
Kconfig
Kconfig.arm cpufreq: OMAP: fix build errors: depends on ARCH_OMAP2PLUS 2012-04-13 17:57:40 -07:00
Kconfig.powerpc
Kconfig.x86
longhaul.c cpufreq / Longhaul: Disable driver by default 2013-05-11 13:48:10 -07:00
longhaul.h
longrun.c cpufreq: Add support for x86 cpuinfo auto loading v4 2012-01-26 16:49:06 -08:00
Makefile Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq 2012-03-23 17:56:39 -07:00
maple-cpufreq.c
mperf.c
mperf.h
omap-cpufreq.c Disintegrate and delete asm/system.h 2012-03-28 15:58:21 -07:00
p4-clockmod.c cpufreq: Add support for x86 cpuinfo auto loading v4 2012-01-26 16:49:06 -08:00
pcc-cpufreq.c
powernow-k6.c powernow-k6: reorder frequencies 2014-04-14 06:44:34 -07:00
powernow-k7.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
powernow-k7.h
powernow-k8.c cpufreq / powernow-k8: Remove usage of smp_processor_id() in preemptible code 2012-10-31 10:03:03 -07:00
powernow-k8.h
s3c64xx-cpufreq.c [CPUFREQ] s3c64xx: Fix mis-cherry pick of VDDINT 2012-02-29 22:24:38 -05:00
s3c2416-cpufreq.c [CPUFREQ] Add S3C2416/S3C2450 cpufreq driver 2012-02-29 22:24:39 -05:00
s5pv210-cpufreq.c
sc520_freq.c cpufreq: Add support for x86 cpuinfo auto loading v4 2012-01-26 16:49:06 -08:00
speedstep-centrino.c cpufreq: Add support for x86 cpuinfo auto loading v4 2012-01-26 16:49:06 -08:00
speedstep-ich.c cpufreq: Add support for x86 cpuinfo auto loading v4 2012-01-26 16:49:06 -08:00
speedstep-lib.c cpufreq: speedstep-smi: enable interrupts when waiting 2015-06-19 11:40:15 +08:00
speedstep-lib.h
speedstep-smi.c cpufreq: speedstep-smi: enable interrupts when waiting 2015-06-19 11:40:15 +08:00