diff options
author | Vishwanath BS <vishwanath.bs@ti.com> | 2011-02-15 21:32:31 +0530 |
---|---|---|
committer | Nicolas Pitre <nicolas.pitre@linaro.org> | 2011-02-28 15:37:03 -0500 |
commit | 230389ddb190d8d98c48e15c6e3ded7773903ce5 (patch) | |
tree | 2e1782b310a1252df85626d1efc7ccb30ba382d8 | |
parent | dac48c7d39c6850e2c079d31cf3fd873f71c85f0 (diff) |
OMAP36xx PM: Updated C state latencies for OMAP3630
This patch has changes to update the C state latencies for OMAP3630 and
disables the useless C-States, keeping only the optimized ones with their
corresponding measured latencies. Only 4 C-states are kept instead of 7
C-States:
* C1 . MPU WFI clock gated + Core autogating
* C3 . MPU CSWR + Core inactive
* C5 . MPU CSWR + Core CSWR
* C7 . MPU OFF + Core OFF
Thanks to Nicole Chaloub<n-chalhoub@ti.com> and Vincent Bour <v-bour@ti.com>
for their investigation.
Tested on ZOOM3 board using latest pm branch.
Signed-off-by: Vishwanath BS <vishwanath.bs@ti.com>
Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
-rw-r--r-- | arch/arm/mach-omap2/board-3630sdp.c | 19 | ||||
-rw-r--r-- | arch/arm/mach-omap2/board-zoom.c | 19 |
2 files changed, 38 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/board-3630sdp.c b/arch/arm/mach-omap2/board-3630sdp.c index 62645640f5e..8d05fc94f51 100644 --- a/arch/arm/mach-omap2/board-3630sdp.c +++ b/arch/arm/mach-omap2/board-3630sdp.c @@ -25,6 +25,24 @@ #include "board-flash.h" #include "mux.h" #include "sdram-hynix-h8mbx00u0mer-0em.h" +#include "pm.h" + +static struct cpuidle_params omap36xx_cpuidle_params_table[] = { + /* C1 */ + {1, 74, 78, 152}, + /* C2 */ + {0, 165, 90, 255}, + /* C3 */ + {1, 163, 180, 345}, + /* C4 */ + {0, 2852, 605, 3457}, + /* C5 */ + {1, 800, 366, 2120}, + /* C6 */ + {0, 4080, 801, 4881}, + /* C7 */ + {1, 4300, 8794, 159000}, +}; #if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE) @@ -212,6 +230,7 @@ static void __init omap_sdp_init(void) board_flash_init(sdp_flash_partitions, chip_sel_sdp); enable_board_wakeup_source(); usb_ehci_init(&ehci_pdata); + omap3_pm_init_cpuidle(omap36xx_cpuidle_params_table); } MACHINE_START(OMAP_3630SDP, "OMAP 3630SDP board") diff --git a/arch/arm/mach-omap2/board-zoom.c b/arch/arm/mach-omap2/board-zoom.c index e26754c24ee..6bd364afe66 100644 --- a/arch/arm/mach-omap2/board-zoom.c +++ b/arch/arm/mach-omap2/board-zoom.c @@ -30,6 +30,24 @@ #include "mux.h" #include "sdram-micron-mt46h32m32lf-6.h" #include "sdram-hynix-h8mbx00u0mer-0em.h" +#include "pm.h" + +static struct cpuidle_params omap36xx_cpuidle_params_table[] = { + /* C1 */ + {1, 74, 78, 152}, + /* C2 */ + {0, 165, 90, 255}, + /* C3 */ + {1, 163, 180, 345}, + /* C4 */ + {0, 2852, 605, 3457}, + /* C5 */ + {1, 800, 366, 2120}, + /* C6 */ + {0, 4080, 801, 4881}, + /* C7 */ + {1, 4300, 8794, 159000}, +}; #define ZOOM3_EHCI_RESET_GPIO 64 @@ -126,6 +144,7 @@ static void __init omap_zoom_init(void) usb_ehci_init(&ehci_pdata); } + omap3_pm_init_cpuidle(omap36xx_cpuidle_params_table); board_nand_init(zoom_nand_partitions, ARRAY_SIZE(zoom_nand_partitions), ZOOM_NAND_CS); zoom_debugboard_init(); |