summaryrefslogtreecommitdiff
path: root/drivers/cpufreq
AgeCommit message (Collapse)Author
2011-12-16Squashandroid-20111223Benn Pörscke
Change-Id: I2fcf46d1fc4b0cd4c61e5be3654c43b80db86015
2011-10-19cpufreq: interactive: Fix handling of SMP where CPUs must scale in tandemTodd Poynor
The interactive governor relies on quirks of the Tegra 2 cpufreq implementation for handling SMP systems where the CPUs do not have separate rate controls. It needs to determine the maximum rate for all CPUs covered by the policy and set that speed. ST-Ericsson ID: 365995 ST-Ericsson Linux next: NA ST-Ericsson FOSS-OUT ID: Trivial Change-Id: I1ed9fa171e5a9c45a1fa5944e3fa823eb157e81f Signed-off-by: Todd Poynor <toddpoynor@google.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/34425 Tested-by: Venkata Biswanath DEVARASETTY <venkata.biswanath@stericsson.com> Reviewed-by: Rabin VINCENT <rabin.vincent@stericsson.com>
2011-10-19arm: ux500: Removing U8400 legacyDaniel Willerud
Removing U8400 legacy from PRCMU and cpufreq drivers ST-Ericsson ID: 364381 ST-Ericsson FOSS-OUT ID: Trivial ST-Ericsson Linux next: NA Depends-On: Idcc4acd8ed9a319a52cfaa6c603e346cae965148 Depends-On: Id4f13fece9ad0769ae77366e62e3bad86d718b3a Change-Id: I694b5c08df05f3f09b188730141d0487b404bd45 Signed-off-by: Daniel Willerud <daniel.willerud@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/33910 Reviewed-by: Mattias NILSSON <mattias.i.nilsson@stericsson.com> Reviewed-by: QATOOLS Reviewed-by: Jonas ABERG <jonas.aberg@stericsson.com>
2011-10-11ux500: add smp_twd clockRabin Vincent
Add a smp_twd clock with an appropriate get_rate() implementation so that localtimers scale correctly with cpufreq changes. ST-Ericsson ID: 361450 ST-Ericsson Linux next: NA ST-Ericsson FOSS-OUT ID: Trivial Change-Id: I492af8efe1c8c081f6079e538f6edf296eca3a02 Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/33277 Reviewed-by: Linus WALLEIJ <linus.walleij@stericsson.com>
2011-10-10ARM: ux500: send cpufreq notification for all cpusVincent Guittot
The same clock is used for all cpus so we must notify the frequency change for each one in order to update the configuration of all twd clockevents. change since V1: * use policy->cpus instead of cpu_online_mask Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org> Change-Id: Ib05cc1bb37a1a1dc740257c6f24dd2f3c53f8261 Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/33276 Reviewed-by: Linus WALLEIJ <linus.walleij@stericsson.com> Tested-by: Rabin VINCENT <rabin.vincent@stericsson.com>
2011-09-29drivers: cpufreq: dbx500: Add interface to get lowest frequencyJonas Aaberg
Change-Id: If41bdc4356b066b20c682b683a90cfd7bfd16bb1 Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/32066
2011-09-29drivers: cpufreq: Add function to update freq limitsJonas Aaberg
Change-Id: I40a7771d452da56c28c0f976df81aac7362d2d72 Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/32065
2011-09-29cpufreq: Unified DBX500 driverJonas Aaberg
Change-Id: Ief4e698b114917dae1ba40e82e0ed4b529d37846 Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/32064
2011-09-29cpufreq: db5500 & db8500: Prepare for unified driverJonas Aaberg
Change-Id: Iaad284680b3ea91b10134138f57f64ff5fbaaf6d Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/32063
2011-09-29cpufreq: db8500: Reset to mainline statusJonas Aaberg
Change-Id: I29a6895fa7d61bce44fb0492edd358eee9f5f3fa Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/32062
2011-09-29ARM: ux500: Remove powersaveJonas Aaberg
Since we don't know really the status of powersave related feature on this development track, let's remove everything, except: - prcmu driver: New location, which is the same as linux-next - cpufreq: new location, same as linux-next - regulator: keep as is for the moment, needed for the system to work. - clocks: same as for regulator. - pm-runtime: keep it as is. Later patches will re-add powersave, based upon what exists on SI u8500-android-2.3_v3.15 MTU from plat-nomadik is now used instead of own copy in mach. Change-Id: I8ceaa65e5e0905fcd85bf8e793b4a5ab2d2df64c Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/32048
2011-09-19ux500: cpufreq: Update wlan/usb performance boostJonas Aaberg
Instead of fiddling with the ondemand governor, use proper pm-qos interface. ST-Ericsson ID: - ST-Ericsson Linux next: Not tested ST-Ericsson FOSS-OUT ID: Trivial Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com> Change-Id: Ide38bbd00833f70e73b4da05c55a84febc43b9f5 Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/29536 Reviewed-by: QABUILD Reviewed-by: Mian Yousaf KAUKAB <mian.yousaf.kaukab@stericsson.com>
2011-09-19cpufreq: fix 5500 buildRabin Vincent
Change-Id: I0ebddd350374a079d9862b4cb8c55fd9cfa2cc91
2011-09-19ux500: pm: updateRabin Vincent
commit 1d3e28fa4e85d54434614575f37a4171e32dfe0c Author: Mian Yousaf Kaukab <mian.yousaf.kaukab@stericsson.com> Date: Tue Aug 23 12:28:26 2011 +0200 [Android]: pm: usecase: limit cpu frequency to 400MHz during voice-call ST Ericsson ID: 357594 commit 70f52392190a111758836d5fca7fb533ad8b4453 Author: Rickard Andersson <rickard.andersson@stericsson.com> Date: Tue Aug 23 11:05:58 2011 +0200 ux500: cpuidle: Correct PRCMU error messages Show correct error messages when PRCMU requested sleep fails. ST-Ericsson ID: - commit 912e987c1e46815c8cf128bce3d7077d3b05e7d6 Author: Rickard Andersson <rickard.andersson@stericsson.com> Date: Tue Aug 23 11:00:01 2011 +0200 ux500: cpuidle: Optimize stack sizes Optimze the stack sizes for arm registers and CP15 registers ST-Ericsson ID: - commit df0c08abadbdbe19c8c00ca09c3197f3fb0ead29 Author: Rickard Andersson <rickard.andersson@stericsson.com> Date: Mon Aug 22 11:19:13 2011 +0200 ux500: cpuidle: GIC freeze delay optimized GIC freeze delay was previously unnecessary long. ST-Ericsson ID: - commit a28fec98e99d5115b62d3d704452f427ca2a20ac Author: Rajagopala V <rajagopala.v@stericsson.com> Date: Wed Aug 24 13:16:39 2011 +0530 u5500: cpuidle: fix coverity warning check for clockevents_program_event return value in cpuidle driver during wakeup ST-Ericsson ID: ER356883 commit b716ed3140664c6b4b80381b18945032b792b853 Author: Rabin Vincent <rabin.vincent@stericsson.com> Date: Fri Aug 19 14:32:29 2011 +0530 u5500: enable PRCMU QoS and debugging Dummy implementations are provided to get it to build. ST-Ericsson ID: 348762 commit 34cd29c2f8cd1ce8fa51be6d33624b441416d478 Author: om prakash <omprakash.pal@stericsson.com> Date: Tue Aug 23 14:08:52 2011 +0530 cpuidle:Removed the CHECKED_RETURN error Removed the CHECKED_RETURN coverity error in cpuidle. ST-Ericsson ID: 354434 commit d9d500b6742ff1fcb12747cb55d7f26c89ef5c96 Author: Rabin Vincent <rabin.vincent@stericsson.com> Date: Mon Aug 22 10:23:36 2011 +0530 u5500: support cpufreq only on v2 Support cpufreq only on 5500v2+ only, since that is where the other power management features will be enabled. ST-Ericsson ID: 355981 commit 74cf0e658bb9abe240d04427d9043f145dd0505b Author: Hemanth Puranik <hemanth.puranik@stericsson.com> Date: Wed Aug 3 10:29:10 2011 +0530 U5500: Print PRCMU firware version ST-Ericsson ID: WP332193 commit bb04cadb6948a3a68f409fa7828457ce64540172 Author: Vijaya Kumar Kilari <vijay.kilari@stericsson.com> Date: Thu Aug 11 11:49:27 2011 +0530 U5500: Add MSP1 and Cable detect clock support MSP1 and CD clocks are managed by PRCMU FW so special handling for these clocks are required ST-Ericsson ID: 332193 commit 0d9b20560a729b4674d9f55c77572db04272edbd Author: Rajagopala V <rajagopala.v@stericsson.com> Date: Fri Aug 5 16:52:41 2011 +0530 u5500: prcmu: add irqs for db5500 temperature sensor add irqs to support db5500 temp sensor high and low interrupts so as to clearly distinguish whether sensor temperature has crossed min/max values ST-Ericsson ID: WP257616 commit 63877225cb09c38d0fbea2dcf01eb6670eb05549 Author: Jonas Aaberg <jonas.aberg@stericsson.com> Date: Wed Jul 13 09:01:22 2011 +0200 ARM: u8500: pm: Do not touch TPIU registers if JTAG disabled If JTAG is disabled, the Linux cannot touch the TPIU registers. ST-Ericsson ID: 349265 commit 9fcee5876ff138e85356b63d392b2a050a68601e Author: Jonas Aaberg <jonas.aberg@stericsson.com> Date: Mon Jul 11 15:27:49 2011 +0200 ARM: ux500: prcmu-debug: Add ARM opp to debugfs Add arm opp to debugfs interface, plus some code clean-up/simplification. ST-Ericsson ID: - commit 0e1f18385d2416e03af308cac1e38997f6bbf044 Author: Jonas Aaberg <jonas.aberg@stericsson.com> Date: Thu Jul 14 12:49:30 2011 +0200 ARM: ux500: context: Do not touch TPIU when not clocked ST-Ericsson ID: 352300 commit 0ebdb6b6b2a7f9924bd2785654f0abfb1473dda0 Author: Jayarami Reddy <jayarami.reddy@stericsson.com> Date: Thu Jul 14 14:39:07 2011 +0530 u5500: fix to boot the kernel in DB5500 commit a20f6a9088ac5d34634cd26207dd5a072f04c37b Author: Jonas Aaberg <jonas.aberg@stericsson.com> Date: Mon Jul 11 15:26:40 2011 +0200 ARM: ux500: prcmu-qos: Add ARM OPP qos Make it possible to request lowest ARM OPP. Must be bound to cpufreq to actually do something. ST-Ericsson ID: - commit be6842df3ee21a9aa00216c84e93a643b4ddeabe Author: Jonas Aaberg <jonas.aberg@stericsson.com> Date: Wed Jul 13 09:00:30 2011 +0200 ARM: ux500: Read product settings at boot ST-Ericsson ID: 349265 commit 94843c6131bac39aa8e7d0ec4c9c2b34e2819c92 Author: Jonas Aaberg <jonas.aberg@stericsson.com> Date: Wed Jul 13 08:56:38 2011 +0200 drivers: tee: Update with product id configuration Add structs and defines needed to detect product settings. ST-Ericsson ID: 349265 commit 4c70d615b782965c064b3f97963eff5a290acf68 Author: Jonas Aaberg <jonas.aberg@stericsson.com> Date: Wed Jul 6 08:26:41 2011 +0200 ARM: ux500: prcmu-wdog: Remove check for fw bug In prcmu fw version 3.4.4 the issue with longer intervalls than 131 s was fixed. ST-Ericsson ID: - commit f6ccbf262ddebe39584b4a4c01cfa16af1fbfac6 Author: Jonas Aaberg <jonas.aberg@stericsson.com> Date: Tue Jul 12 08:53:42 2011 +0200 ARM: ux500: cpuidle: Remove duplicated ApIdle state The ARM PLL is handled automatic by the prcmu fw and cpuidle cannot affect it. Remove duplicated ApIdle state that does the same as the other ApIdle state. ST-Ericsson ID: - commit bdf3c3dd8c22ffe0fbd8c674e8e6bdab83a5ec01 Author: Rabin Vincent <rabin.vincent@stericsson.com> Date: Fri Jul 8 14:33:23 2011 +0530 ux500: support ApDeepSleep on 5500 ST-Ericsson ID: 332193 commit 5326d7744cd226e67253774f30a2bb57c9b2badc Author: Rabin Vincent <rabin.vincent@stericsson.com> Date: Mon Jul 11 11:27:45 2011 +0530 u5500: fix prcmu_get_arm_opp() prcmu_set_arm_opp() maps between logical ARM OPP values and PRCMU firmware values, so prcmu_get_arm_opp() should do it too. ST-Ericsson ID: 332226 commit 6422856927e1230197ae674795eff6538df885e5 Author: Jonas Aaberg <jonas.aberg@stericsson.com> Date: Thu Jul 7 08:33:59 2011 +0200 ARM: u8500: prcmu-dbg: display AVS settings Add debugfs node showing AVS settings. root@ME:/ cat /debugfs/prcmu/avs VBB_RET : 0x 0 VBB_MAX_OPP : 0xdb VBB_100_OPP : 0xdb VBB_50_OPP : 0xdb VARM_MAX_OPP : 0x2f VARM_100_OPP : 0x2e VARM_50_OPP : 0x1d VARM_RET : 0x 0 VAPE_100_OPP : 0x2a VAPE_50_OPP : 0x1a VMOD_100_OPP : 0x29 VMOD_50_OPP : 0x1a VSAFE : 0x29 ST-Ericsson ID: - commit 3184873f10bff0c7c54db75d9c2694e21ebc40b0 Author: Pawel Szyszuk <pawel.szyszuk@stericsson.com> Date: Wed Jun 22 16:03:29 2011 +0200 ARM: U5500: PRCMU CLKOUTx configuration API U5500 API for setting the programmable CLKOUTx source and divisor. New API used for setting the sources of camera clocks. ST-Ericsson ID: - commit 98e9cfc32a25f6cf3b5d4c3456bb6ff6a34ff9cb Author: Mian Yousaf Kaukab <mian.yousaf.kaukab@stericsson.com> Date: Thu Jun 23 16:07:48 2011 +0200 [ANDROID]: pm: usecase: add sysfs interface to disable the governor Move all the code to control the state of the governor in a separate function. ST-Ericsson ID: CR339643 commit 6e9ab8ab3013d0b372a51d94d617d24fd8b38664 Author: Rickard Andersson <rickard.andersson@stericsson.com> Date: Tue Jun 7 13:04:08 2011 +0200 ARM: ux500: pm: Turn off unnecessary GIC IRQs in deep sleep In the sleep state ApDeepSleep turn off all IRQs in the GIC except for the PRCMU IRQs ST-Ericsson ID: ER338876 commit ba5f28731b27386cb90cf87c4e7b1910e09474a9 Author: Rickard Andersson <rickard.andersson@stericsson.com> Date: Fri May 27 08:56:47 2011 +0200 ARM: ux500: pm: Deepsleep bugfix and optimization Fixing deep sleep sync problems. Also cache clean and saves to backup RAM is now only done when really needed. ST-Ericsson ID: ER338876 commit 0415c755958de0d613a9bd52f73b820cb3a2b916 Author: Rabin Vincent <rabin.vincent@stericsson.com> Date: Tue Jun 28 18:18:36 2011 +0530 u5500: handle SDMMC0 clock change on DB5500v2 On DB5500v2, SDMMC0 is parented to SPARE1CLK instead of SDMMCCLK. Also, correct the PRCM_IRDACLK_MGT register address which is wrong even for v1. ST-Ericsson ID: 349062 commit 2036360d62f3c3f0cd722d751ba90a8739034c0f Author: Rabin Vincent <rabin.vincent@stericsson.com> Date: Mon Jun 27 20:25:06 2011 +0530 u5500: cpufreq: DB5500v2 support ST-Ericsson ID: 349062 commit 190b11834463e835de2d792116dfd8673d775752 Author: Rabin Vincent <rabin.vincent@stericsson.com> Date: Wed Jun 22 07:45:00 2011 +0530 u5500: allow SUSPEND_STANDBY and CPUIDLE to be enabled ST-Ericsson ID: 332226 commit 7c4906d6ee888df46baa64b690dfdfaf44502d86 Author: Pawel Szyszuk <pawel.szyszuk@stericsson.com> Date: Mon Jun 20 15:28:34 2011 +0200 ARM: u5500: PRCMU reset API Added API for rebooting the board and for getting the last reboot code. ST-Ericsson ID: 341245 Change-Id: Ibbcd9e3528cd605c724b9c2c88ae3b41a27f2f1c
2011-09-19ux500: pm: add use-case governorVincent Guittot
Signed-off-by: Vincent Guittot <vincent.guittot@stericsson.com> Signed-off-by: Mian Yousaf Kaukab <mian.yousaf.kaukab@stericsson.com> [ANDROID]: ux500: pm: update sysfs interface for usecase governor A separate sysfs node is added fro each use-case. It is now possible to enable multiple use-cases simultaneously. If multiple use-cases are enabled, each configuration (of all enabled uses-caes) is compared and the configuration which is requesting highest performance is selected. Signed-off-by: Mian Yousaf Kaukab <mian.yousaf.kaukab@stericsson.com> [ANDROID]: ux500: pm: usecase-gov Act on interrupts per s If the number of interrupts per seconds are above a certain level, exit from the asked mode. [ANDROID]: ux500: pm: update low-power-audio config in usecse-governor Update low-power-audio configuration to plug-out second cpu. This makes auto, voice-call and low-power-audio configurations to be same. Auto mode is activated by default (without any user space interaction). This makes voice-call and low-power-audio configurations redundant. However, analysis work is still on going for adding other settings that may become part of usecase governor so keeping all configurations in there for now. Signed-off-by: Mian Yousaf Kaukab <mian.yousaf.kaukab@stericsson.com> [ANDROID]: ux500: pm: update usecase governor dependencies in Kconfig [ANDROID]: ARM: ux500: pm: usecase gov depends on PM Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com> [ANDROID]: ux500: pm: minor code cleanup in UC governor Signed-off-by: Martin Persson <martin.persson@stericsson.com> [ANDROID] ux500: pm: disable auto mode in usecase governor In absence of auto mode there is no need to schedule work on early suspend so schedule work only when needed. Signed-off-by: Mian Yousaf Kaukab <mian.yousaf.kaukab@stericsson.com> [ANDROID]: pm: force ondemand governor to choose higher frequency In stead of overriding frequency selected by ondemand governor in u8500_cpufreq_target(), force ondemand governor to select higher frequency when wlan and usb workaround is enabled. ANDROID tag is used to keep the patch internal. Otherwise it does not have any Android dependency. Signed-off-by: Mian Yousaf Kaukab <mian.yousaf.kaukab@stericsson.com> [ANDROID]: ARM: u8500: usecaseg: Tiny code clean-up Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com> arm: ux500: halve the frequencies of some clocks in vc use case This patch adds a new APE OPP (50% with ACLK and DMACLK frequencies at 25%) which is used during the voice call use case. Signed-off-by: Mian Yousaf Kaukab <mian.yousaf.kaukab@stericsson.com> Signed-off-by: Mattias Nilsson <mattias.i.nilsson@stericsson.com> ux500: pm: Add min cpufreq to UC governor Add a minimum cpu frequency limit to each use case in the use case governor. Signed-off-by: Martin Persson <martin.persson@stericsson.com> ux500: pm: allow usecase governor to force cpu idle states Also update low-power-audio configuration to force ApSleep state. ux500: pm: move use case definitions to a header file ux500: pm: add pl310 prefetch control in use-case governor ux500: pm: cosmetic changes in use-case governor Signed-off-by: Mian Yousaf Kaukab <mian.yousaf.kaukab@stericsson.com>
2011-09-19Merge linux-linaro-3.0-2011.07-1-android-1 into..Ulf Hansson
..linux-linaro-3.0-2011.07-1_glk3.0 Conflicts: arch/arm/common/Makefile drivers/misc/Kconfig drivers/misc/Makefile kernel/printk.c Change-Id: I126f34edb1879981909072beefb2738cad26f951
2011-09-19ux500: align u5500 PRCMU & CPUFREQ management with u8500 (multiple commits ↵Philippe Langlais
in one) Signed-off-by: Philippe Langlais <philippe.langlais@linaro.org> Merge of following commits too: u5500: add support for sysclk basic sysclk support added in PRCMU driver and clock framework driver updated. Signed-off-by: Shreshtha Kumar Sahu <shreshthakumar.sahu@stericsson.com> U5500: Support for ESRAM12 EPOD in PRCMU driver Signed-off-by: Vijaya Kumar Kilari <vijay.kilari@stericsson.com> ux500: regulator: handle different base offset of ePOD ID 5500 ePOD ids are offseted for some reason in the PRCMU driver. Adjust the ids to index the local arrays to avoid memory corruption. Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com> ux500: pm: support PRCMU status check on 5500 This also removes unused 8500v1 code. Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com> arm: ux500: prcmu_ac_wake_req workaround This patch adds a check in prcmu_ac_wake_req that the modem is awake (in terms of the value in the PRCM_MOD_AWAKE_STATUS register) after the AC_WAKE_ACK has been received from the PRCMU FW. If the check fails, a retry is made. This seems to be necessary, since the modem can generate an AC_WAKE_ACK, and then still go to sleep. Signed-off-by: Mattias Nilsson <mattias.i.nilsson@stericsson.com> U5500: Add support for PRCMU Mailbox0 Add PRCMU mailbox 0 support for irq wakeup enable and disable Signed-off-by: Vijaya Kumar K <vijay.kilari@stericsson.com> U5500: Add support for power state transition PRCMU driver is updated to provide API for system power state transition Signed-off-by: Vijaya Kumar K <vijay.kilari@stericsson.com> ARM: ux500: prcmu: Add A9 watchdog interface Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com> U5500 : ab5500 core interrupt hander update AB5500 interrupts will be now handled by PRCMU and then routed to AB5500 core driver.AB5500 irq handler will no more read the latch registers to find the interrupt reason.Instead PRCMU will read the latch registers and provide the values to core driver. Signed-off-by: Bibek Basu <bibek.basu@stericsson.com> ARM: ux500: prcmu-dbg: Tiny code clean-up Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com> u5500: add mailbox1 and related function support Add cpufreq-db5500.c file for db5500 CPUfreq support. PRCMU mailbox1 and related functions' support is added. List of functions implemented: - prcmu_get/set_arm_opp - read_mailbox_1 Signed-off-by: Shreshtha Kumar Sahu <shreshthakumar.sahu@stericsson.com> Fix for PRCMU u5500: PRCMU IRQ should be NO_SUSPEND As on 8500. Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com> ARM: u5500: PRCMU reset API Added API for rebooting the board and for getting the last reboot code. Signed-off-by: Pawel Szyszuk <pawel.szyszuk@stericsson.com>
2011-09-19ux500: fix PRCMU boot problem, use new MFD driver & code cleanupPhilippe Langlais
Signed-off-by: Philippe Langlais <philippe.langlais@linaro.org>
2011-09-19ux500: cpufreq: try to fix merge regressionsPhilippe Langlais
Signed-off-by: Philippe Langlais <philippe.langlais@linaro.org>
2011-09-19cpufreq: return proper val in cpufreq_update_freqMartin Persson
ST-Ericsson ID: 342949 ST-Ericsson Linux next: NA ST-Ericsson FOSS-OUT ID: Trivial Change-Id: Id3505cbdd43f3b68dfcc882b7ca82075987349c4 Signed-off-by: Martin Persson <martin.persson@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/24231 Reviewed-by: Mian Yousaf KAUKAB <mian.yousaf.kaukab@stericsson.com> Reviewed-by: QATEST Reviewed-by: QATOOLS Reviewed-by: Jonas ABERG <jonas.aberg@stericsson.com>
2011-09-19cpufreq: add interface for updating frequency limitsVincent Guittot
ST-Ericsson ID: 337167 Change-Id: I4f66b7b46f1b20d955ce1b2a18b1ba9ece443a28 Signed-off-by: Vincent Guittot <vincent.guittot@stericsson.com> Signed-off-by: Mian Yousaf Kaukab <mian.yousaf.kaukab@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/21970 Reviewed-by: QATEST Reviewed-by: Jonas ABERG <jonas.aberg@stericsson.com>
2011-09-19cpufreq: update delay after dbs_cpu_checkRobert Marklund
cpufreq: Set default sampling_down_factor to 10 Signed-off-by: Robert Marklund <robert.marklund@stericsson.com>
2011-07-19cpufreq: interactive: fix checkpatch warnings on long linesAllen Martin
Fix up checkpatch warning introduced by long lines in timer_rate patch. Change-Id: I22b105dafb1b49390799bb7577464da03f0f8afb Signed-off-by: Allen Martin <amartin@nvidia.com>
2011-07-15cpufreq: interactive: cleanup checkpatch warningsAllen Martin
Cleanup some style warnings reported by checkpatch Change-Id: Ie2e6903d52867fb3347e009d7efa3bc4ca755cea Signed-off-by: Allen Martin <amartin@nvidia.com>
2011-07-15cpufreq: Add more verbose description of interactive governorAllen Martin
Update the Kconfig help paragraph to give more detail about interactive governor. Change-Id: I607b817b370accac3a685001649a15e2f7894f59 Signed-off-by: Allen Martin <amartin@nvidia.com>
2011-07-15cpufreq: interactive: add sysfs control for timer rateAllen Martin
Add a new sysfs control that tunes the rate of the timer used to increase cpu frequency Change-Id: I1aa13ae54bb43aff5b3688984d2955f56aae1658 Signed-off-by: Allen Martin <amartin@nvidia.com>
2011-07-15cpufreq: interactive: Add error checking on sysfs interfacesAllen Martin
This adds better error checking on tunable parameters on sysfs interfaces. Also fixes return value from these functions, previously on success they would return 0 which would cause a infinite loop. Change-Id: Ic05038492166f8673d007202092471f98a2f0dfa Signed-off-by: Allen Martin <amartin@nvidia.com>
2011-07-15cpufreq: interactive: use idle notifierAllen Martin
Convert interactive governor to use idle notifier instead of hooking pm_idle directly. Change-Id: I47e007f330468ac559240a0ae8a3cb06a89ccb67 Signed-off-by: Allen Martin <amartin@nvidia.com>
2011-07-15cpufreq: interactive: remove debug trace codeAllen Martin
Remove debug trace code in preparation of upstreaming Change-Id: I0905885e75031f5e9d7cb06878fb68c1fd06d4fe Signed-off-by: Allen Martin <amartin@nvidia.com>
2011-07-12Merge commit 'v3.0-rc7' into android-3.0Colin Cross
2011-07-10[CPUFREQ] fix cpumask memory leak in acpi-cpufreq on cpu hotplug.Luming Yu
I came across a memory leak during a cyclic cpu-online-offline test. Signed-off-by: Yu Luming <luming.yu@intel.com> Cc: Len Brown <lenb@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Dave Jones <davej@redhat.com>
2011-06-29Merge commit 'v3.0-rc5' into android-3.0Colin Cross
2011-06-16cpufreq interactive: support shared CPU scalingTodd Poynor
Change-Id: Id5267f04067bf023f6b140b4de2e88ef7287e941 Signed-off-by: Todd Poynor <toddpoynor@google.com>
2011-06-16[CPUFREQ] powernow-k8: Don't try to transition if the pstate is incorrectKonrad Rzeszutek Wilk
This patch augments the pstate transition code to error out (instead of returning 0) when an incorrect pstate is provided. Suggested-by: Borislav Petkov <bp@alien8.de> CC: andre.przywara@amd.com CC: Mark.Langsdorf@amd.com Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> Signed-off-by: Dave Jones <davej@redhat.com>
2011-06-16[CPUFREQ] powernow-k8: Don't notify of successful transition if we failed ↵Konrad Rzeszutek Wilk
(vid case). Before this patch if we failed the vid transition would still try to submit the "new" frequencies to cpufreq. That is incorrect - also we could submit a non-existing frequency value which would cause cpufreq to crash. The ultimate fix is in cpufreq to deal with incorrect values, but this patch improves the error recovery in the AMD powernowk8 driver. The failure that was reported was as follows: powernow-k8: Found 1 AMD Athlon(tm) 64 Processor 3700+ (1 cpu cores) (version 2.20.00) powernow-k8: fid 0x2 (1000 MHz), vid 0x12 powernow-k8: fid 0xa (1800 MHz), vid 0xa powernow-k8: fid 0xc (2000 MHz), vid 0x8 powernow-k8: fid 0xe (2200 MHz), vid 0x8 Marking TSC unstable due to cpufreq changes powernow-k8: fid trans failed, fid 0x2, curr 0x0 BUG: unable to handle kernel paging request at ffff880807e07b78 IP: [<ffffffff81479163>] cpufreq_stats_update+0x46/0x5b ... And transition fails and data->currfid ends up with 0. Since the machine does not support 800Mhz value when the calculation is done ('find_khz_freq_from_fid(data->currfid);') it reports the new frequency as 800000 which is bogus. This patch fixes the issue during target setting. The patch however does not fix the issue in 'powernowk8_cpu_init' where the pol->cur can also be set with the 800000 value: pol->cur = find_khz_freq_from_fid(data->currfid); dprintk("policy current frequency %d kHz\n", pol->cur); /* min/max the cpu is capable of */ if (cpufreq_frequency_table_cpuinfo(pol, data->powernow_table)) { The fix for that looks to update cpufreq_frequency_table_cpuinfo to check pol->cur.... but that would cause an regression in how the acpi-cpufreq driver works (it sets cpu->cur after calling cpufreq_frequency_table_cpuinfo). Instead the fix will be to let cpufreq gracefully handle bogus data (another patch). Acked-by: Borislav Petkov <bp@alien8.de> CC: andre.przywara@amd.com CC: Mark.Langsdorf@amd.com Reported-by: Tobias Diedrich <ranma+xen@tdiedrich.de> Tested-by: Tobias Diedrich <ranma+xen@tdiedrich.de> [v1: Rebased on v3.0-rc2, reduced patch to deal with vid case] Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> Signed-off-by: Dave Jones <davej@redhat.com>
2011-06-16[CPUFREQ] Don't set stat->last_index to -1 if the pol->cur has incorrect value.Konrad Rzeszutek Wilk
If the driver submitted an non-existing pol>cur value (say it used the default initialized value of zero), when the cpufreq stats tries to setup its initial values it incorrectly sets stat->last_index to -1 (or 0xfffff...). And cpufreq_stats_update tries to update at that index location and fails. This can be caused by: stat->last_index = freq_table_get_index(stat, policy->cur); not finding the appropiate frequency in the table (b/c the policy->cur is wrong) and we end up crashing. The fix however is concentrated in the 'cpufreq_stats_update' as the last_index (and old_index) are updated there. Which means it can reset the last_index to -1 again and on the next iteration cause a crash. Without this patch, the following crash is observed: powernow-k8: Found 1 AMD Athlon(tm) 64 Processor 3700+ (1 cpu cores) (version 2.20.00) powernow-k8: fid 0x2 (1000 MHz), vid 0x12 powernow-k8: fid 0xa (1800 MHz), vid 0xa powernow-k8: fid 0xc (2000 MHz), vid 0x8 powernow-k8: fid 0xe (2200 MHz), vid 0x8 Marking TSC unstable due to cpufreq changes powernow-k8: fid trans failed, fid 0x2, curr 0x0 BUG: unable to handle kernel paging request at ffff880807e07b78 IP: [<ffffffff81479163>] cpufreq_stats_update+0x46/0x5b .. snip.. Pid: 1, comm: swapper Not tainted 3.0.0-rc2 #45 MICRO-STAR INTERNATIONAL CO., LTD MS-7094/MS-7094 ..snip.. Call Trace: [<ffffffff81479248>] cpufreq_stat_notifier_trans+0x48/0x7c [<ffffffff81095d68>] notifier_call_chain+0x32/0x5e [<ffffffff81095e6b>] __srcu_notifier_call_chain+0x47/0x63 [<ffffffff81095e96>] srcu_notifier_call_chain+0xf/0x11 [<ffffffff81477e7a>] cpufreq_notify_transition+0x111/0x134 [<ffffffff8147b0d4>] powernowk8_target+0x53b/0x617 [<ffffffff8147723a>] __cpufreq_driver_target+0x2e/0x30 [<ffffffff8147a127>] cpufreq_governor_dbs+0x339/0x356 [<ffffffff81477394>] __cpufreq_governor+0xa8/0xe9 [<ffffffff81477525>] __cpufreq_set_policy+0x132/0x13e [<ffffffff8147848d>] cpufreq_add_dev_interface+0x272/0x28c Reported-by: Tobias Diedrich <ranma+xen@tdiedrich.de> Tested-by: Tobias Diedrich <ranma+xen@tdiedrich.de> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> Signed-off-by: Dave Jones <davej@redhat.com>
2011-06-14cpufreq: Prevent memory leak in cpufreq_stats on hotplugColin Cross
Ensures that cpufreq_stats_free_table is called before __cpufreq_remove_dev on cpu hotplug (which also occurs during suspend on SMP systems) to make sure that sysfs_remove_group can get called before the cpufreq kobj is freed. Otherwise, the sysfs file structures are leaked. Change-Id: I87e55277272f5cfad47e9e7c92630e990bb90069 Signed-off-by: Colin Cross <ccross@android.com>
2011-06-14cpufreq interactive governor: fix crash on CPU shutdownTodd Poynor
Don't reference the saved copy of the CPU's cpufreq policy pointer after the governor has been stopped for the CPU. When the governor is stopped for a CPU: * Use del_timer_sync() to wait for a currently-running timer function to stop. * Delete the timer when the governor is stopped for the associated CPU, not when the last CPU is stopped. * Flush any speed down work ongoing. * Reset the timestamp that is used to tell if the timer function has had a chance to run since last idle exit. Check the governor enabled flag for the CPU before re-arming the timer from within the timer function and at idle exit (in case stopping the governor at runtime). Check the governor enabled flag for the CPU in the worker function and thread before using the policy pointer. (There is still a tiny window in the thread that needs more work to close.) Change-Id: Ifaddf7a495a8dae15a579a57bdc654f7c47f6ada Signed-off-by: Todd Poynor <toddpoynor@google.com>
2011-06-14cpufreq interactive governor save/restore IRQs around cpumask spinlocksTodd Poynor
Need to use irqsave/restore spin locking for cpumasks since these are accessed in timers and in thread context. Change-Id: I4a53eaf0ced7e73b445feddba90ec11482de9126 Signed-off-by: Todd Poynor <toddpoynor@google.com>
2011-06-14cpufreq: interactive: New 'interactive' governorMike Chan
This governor is designed for latency-sensitive workloads, such as interactive user interfaces. The interactive governor aims to be significantly more responsive to ramp CPU quickly up when CPU-intensive activity begins. Existing governors sample CPU load at a particular rate, typically every X ms. This can lead to under-powering UI threads for the period of time during which the user begins interacting with a previously-idle system until the next sample period happens. The 'interactive' governor uses a different approach. Instead of sampling the CPU at a specified rate, the governor will check whether to scale the CPU frequency up soon after coming out of idle. When the CPU comes out of idle, a timer is configured to fire within 1-2 ticks. If the CPU is very busy from exiting idle to when the timer fires then we assume the CPU is underpowered and ramp to MAX speed. If the CPU was not sufficiently busy to immediately ramp to MAX speed, then the governor evaluates the CPU load since the last speed adjustment, choosing the highest value between that longer-term load or the short-term load since idle exit to determine the CPU speed to ramp to. A realtime thread is used for scaling up, giving the remaining tasks the CPU performance benefit, unlike existing governors which are more likely to schedule rampup work to occur after your performance starved tasks have completed. The tuneables for this governor are: /sys/devices/system/cpu/cpufreq/interactive/min_sample_time: The minimum amount of time to spend at the current frequency before ramping down. This is to ensure that the governor has seen enough historic CPU load data to determine the appropriate workload. Default is 80000 uS. /sys/devices/system/cpu/cpufreq/interactive/go_maxspeed_load The CPU load at which to ramp to max speed. Default is 85. Change-Id: Ib2b362607c62f7c56d35f44a9ef3280f98c17585 Signed-off-by: Mike Chan <mike@android.com> Signed-off-by: Todd Poynor <toddpoynor@google.com> Bug: 3152864
2011-06-12[CPUFREQ] Remove cpufreq_stats sysfs entries on module unload.Dave Jones
cpufreq_stats leaves behind its sysfs entries, which causes a panic when something stumbled across them. (Discovered by unloading cpufreq_stats while powertop was loaded). Signed-off-by: Dave Jones <davej@redhat.com> Cc: stable@kernel.org
2011-05-24cpufreq: make DB8500 cpufreq driver compileLinus Walleij
Concluding interface update and movement of the driver by making the DB8500 cpufreq driver compile in the cpufreq subsystem. Cc: Arnd Bergmann <arnd@arndb.de> Acked-by: Dave Jones <davej@redhat.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2011-05-24cpufreq: update DB8500 cpufreq driverLinus Walleij
This updates the ux500 cpufreq driver to the new interface from the updated DB8500 PRCMU Cc: Arnd Bergmann <arnd@arndb.de> Acked-by: Dave Jones <davej@redhat.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2011-05-24mach-ux500: move CPUfreq driver to cpufreq subsystemLinus Walleij
As part of the ARM arch subsystem migration, move the DB8500 cpufreq driver to drivers/cpufreq as discussed with Dave Jones. The Makefile is not updated in order to avoid cross-subsystem conflicts for this file in merges. Cc: Arnd Bergmann <arnd@arndb.de> Acked-by: Dave Jones <davej@redhat.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2011-05-19Merge branch 'x86-cpu-for-linus' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86, cpu: Fix detection of Celeron Covington stepping A1 and B0 Documentation, ABI: Update L3 cache index disable text x86, AMD, cacheinfo: Fix L3 cache index disable checks x86, AMD, cacheinfo: Fix fallout caused by max3 conversion x86, cpu: Change NOP selection for certain Intel CPUs x86, cpu: Clean up and unify the NOP selection infrastructure x86, percpu: Use ASM_NOP4 instead of hardcoding P6_NOP4 x86, cpu: Move AMD Elan Kconfig under "Processor family" Fix up trivial conflicts in alternative handling (commit dc326fca2b64 "x86, cpu: Clean up and unify the NOP selection infrastructure" removed some hacky 5-byte instruction stuff, while commit d430d3d7e646 "jump label: Introduce static_branch() interface" renamed HAVE_JUMP_LABEL to CONFIG_JUMP_LABEL in the code that went away)
2011-05-19[CPUFREQ] Move x86 drivers to drivers/cpufreq/Dave Jones
Signed-off-by: Dave Jones <davej@redhat.com>
2011-05-04[CPUFREQ] remove redundant sprintf from request_module call.Kees Cook
Since format string handling is part of request_module, there is no need to construct the module name. As such, drop the redundant sprintf and heap usage. Signed-off-by: Kees Cook <kees.cook@canonical.com> Signed-off-by: Dave Jones <davej@redhat.com>
2011-05-04[CPUFREQ] cpufreq_stats.c: Fixed brace coding style issueKarthigan Srinivasan
Fixed brace coding style issue. Signed-off-by: Karthigan Srinivasan <karthigan.srinivasan@hp.com> Signed-off-by: Dave Jones <davej@redhat.com>
2011-05-04[CPUFREQ] Fix memory leak in cpufreq_statsteven finney
When a CPU is taken offline in an SMP system, cpufreq_remove_dev() nulls out the per-cpu policy before cpufreq_stats_free_table() can make use of it. cpufreq_stats_free_table() then skips the call to sysfs_remove_group(), leaving about 100 bytes of sysfs-related memory unclaimed each time a CPU-removal occurs. Break up cpu_stats_free_table into sysfs and table portions, and call the sysfs portion early. Signed-off-by: Steven Finney <steven.finney@palm.com> Signed-off-by: Dave Jones <davej@redhat.com> Cc: stable@kernel.org
2011-05-04[CPUFREQ] use dynamic debug instead of custom infrastructureDominik Brodowski
With dynamic debug having gained the capability to report debug messages also during the boot process, it offers a far superior interface for debug messages than the custom cpufreq infrastructure. As a first step, remove the old cpufreq_debug_printk() function and replace it with a call to the generic pr_debug() function. How can dynamic debug be used on cpufreq? You need a kernel which has CONFIG_DYNAMIC_DEBUG enabled. To enabled debugging during runtime, mount debugfs and $ echo -n 'module cpufreq +p' > /sys/kernel/debug/dynamic_debug/control for debugging the complete "cpufreq" module. To achieve the same goal during boot, append ddebug_query="module cpufreq +p" as a boot parameter to the kernel of your choice. For more detailled instructions, please see Documentation/dynamic-debug-howto.txt Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net> Signed-off-by: Dave Jones <davej@redhat.com>