diff options
author | Rafael J. Wysocki <rjw@sisk.pl> | 2012-08-07 18:29:16 -0400 |
---|---|---|
committer | Rafael J. Wysocki <rjw@sisk.pl> | 2012-09-03 19:44:59 -0400 |
commit | b42879e2e9b130e9ea0df3f076a0742df46e143a (patch) | |
tree | f42037c60bcf561e42223b0d9ad19b0770b36aa0 /arch/arm/mach-shmobile/board-mackerel.c | |
parent | c37b7a7b3454ea6e6b457ab458c694fe4d81cf9e (diff) |
ARM: shmobile: Specify device latencies for Mackerel devices directly
The results of adaptive latency computations in
GENPD_DEV_TIMED_CALLBACK() show that the start/stop and save/restore
state latencies of all devices on the Mackerel board I have tried are
a little below 250 us. Therefore, if the 250 us is used as the
common initial value of the latency fields in struct gpd_timing_data
for all devices on Mackerel, the latency values will never have to
change at run time and there won't be any overhead related to
re-computation of the corresponding PM QoS data.
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Magnus Damm <damm@opensource.se>
Diffstat (limited to 'arch/arm/mach-shmobile/board-mackerel.c')
-rw-r--r-- | arch/arm/mach-shmobile/board-mackerel.c | 31 |
1 files changed, 19 insertions, 12 deletions
diff --git a/arch/arm/mach-shmobile/board-mackerel.c b/arch/arm/mach-shmobile/board-mackerel.c index 954b02e3bb18..c64fc40351da 100644 --- a/arch/arm/mach-shmobile/board-mackerel.c +++ b/arch/arm/mach-shmobile/board-mackerel.c | |||
@@ -1407,8 +1407,15 @@ static struct i2c_board_info i2c1_devices[] = { | |||
1407 | #define GPIO_PORT168CR 0xE60520A8 | 1407 | #define GPIO_PORT168CR 0xE60520A8 |
1408 | #define SRCR4 0xe61580bc | 1408 | #define SRCR4 0xe61580bc |
1409 | #define USCCR1 0xE6058144 | 1409 | #define USCCR1 0xE6058144 |
1410 | #define DEV_LATENCY_NS 250000 | ||
1410 | static void __init mackerel_init(void) | 1411 | static void __init mackerel_init(void) |
1411 | { | 1412 | { |
1413 | struct gpd_timing_data latencies = { | ||
1414 | .stop_latency_ns = DEV_LATENCY_NS, | ||
1415 | .start_latency_ns = DEV_LATENCY_NS, | ||
1416 | .save_state_latency_ns = DEV_LATENCY_NS, | ||
1417 | .restore_state_latency_ns = DEV_LATENCY_NS, | ||
1418 | }; | ||
1412 | u32 srcr4; | 1419 | u32 srcr4; |
1413 | struct clk *clk; | 1420 | struct clk *clk; |
1414 | 1421 | ||
@@ -1623,20 +1630,20 @@ static void __init mackerel_init(void) | |||
1623 | 1630 | ||
1624 | platform_add_devices(mackerel_devices, ARRAY_SIZE(mackerel_devices)); | 1631 | platform_add_devices(mackerel_devices, ARRAY_SIZE(mackerel_devices)); |
1625 | 1632 | ||
1626 | rmobile_add_device_to_domain("A4LC", &lcdc_device); | 1633 | rmobile_add_device_to_domain_td("A4LC", &lcdc_device, &latencies); |
1627 | rmobile_add_device_to_domain("A4LC", &hdmi_lcdc_device); | 1634 | rmobile_add_device_to_domain_td("A4LC", &hdmi_lcdc_device, &latencies); |
1628 | rmobile_add_device_to_domain("A4LC", &meram_device); | 1635 | rmobile_add_device_to_domain_td("A4LC", &meram_device, &latencies); |
1629 | rmobile_add_device_to_domain("A4MP", &fsi_device); | 1636 | rmobile_add_device_to_domain_td("A4MP", &fsi_device, &latencies); |
1630 | rmobile_add_device_to_domain("A3SP", &usbhs0_device); | 1637 | rmobile_add_device_to_domain_td("A3SP", &usbhs0_device, &latencies); |
1631 | rmobile_add_device_to_domain("A3SP", &usbhs1_device); | 1638 | rmobile_add_device_to_domain_td("A3SP", &usbhs1_device, &latencies); |
1632 | rmobile_add_device_to_domain("A3SP", &nand_flash_device); | 1639 | rmobile_add_device_to_domain_td("A3SP", &nand_flash_device, &latencies); |
1633 | rmobile_add_device_to_domain("A3SP", &sh_mmcif_device); | 1640 | rmobile_add_device_to_domain_td("A3SP", &sh_mmcif_device, &latencies); |
1634 | rmobile_add_device_to_domain("A3SP", &sdhi0_device); | 1641 | rmobile_add_device_to_domain_td("A3SP", &sdhi0_device, &latencies); |
1635 | #if !defined(CONFIG_MMC_SH_MMCIF) && !defined(CONFIG_MMC_SH_MMCIF_MODULE) | 1642 | #if !defined(CONFIG_MMC_SH_MMCIF) && !defined(CONFIG_MMC_SH_MMCIF_MODULE) |
1636 | rmobile_add_device_to_domain("A3SP", &sdhi1_device); | 1643 | rmobile_add_device_to_domain_td("A3SP", &sdhi1_device, &latencies); |
1637 | #endif | 1644 | #endif |
1638 | rmobile_add_device_to_domain("A3SP", &sdhi2_device); | 1645 | rmobile_add_device_to_domain_td("A3SP", &sdhi2_device, &latencies); |
1639 | rmobile_add_device_to_domain("A4R", &ceu_device); | 1646 | rmobile_add_device_to_domain_td("A4R", &ceu_device, &latencies); |
1640 | 1647 | ||
1641 | hdmi_init_pm_clock(); | 1648 | hdmi_init_pm_clock(); |
1642 | sh7372_pm_init(); | 1649 | sh7372_pm_init(); |