aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-shmobile/board-mackerel.c
diff options
context:
space:
mode:
authorRafael J. Wysocki <rjw@sisk.pl>2012-08-07 18:29:16 -0400
committerRafael J. Wysocki <rjw@sisk.pl>2012-09-03 19:44:59 -0400
commitb42879e2e9b130e9ea0df3f076a0742df46e143a (patch)
treef42037c60bcf561e42223b0d9ad19b0770b36aa0 /arch/arm/mach-shmobile/board-mackerel.c
parentc37b7a7b3454ea6e6b457ab458c694fe4d81cf9e (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.c31
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
1410static void __init mackerel_init(void) 1411static 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();