diff mbox

[RFC,5/5] PM / shmobile: Allow device latencies to be read from a DT

Message ID 201207212356.28513.rjw@sisk.pl (mailing list archive)
State Awaiting Upstream
Headers show

Commit Message

Rafael Wysocki July 21, 2012, 9:56 p.m. UTC
Modify rmobile_read_domain_from_dt() so that it can read device
latency information from the device tree along with the PM
domain name and make it use rmobile_add_device_to_domain_td()
for adding the device to the PM domain along with the device latency
data.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
---
 arch/arm/mach-shmobile/pm-rmobile.c |   24 ++++++++++++++++++++++--
 1 file changed, 22 insertions(+), 2 deletions(-)


--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

Index: linux/arch/arm/mach-shmobile/pm-rmobile.c
===================================================================
--- linux.orig/arch/arm/mach-shmobile/pm-rmobile.c
+++ linux/arch/arm/mach-shmobile/pm-rmobile.c
@@ -170,14 +170,34 @@  void rmobile_add_device_to_domain_td(con
 
 static void rmobile_read_domain_from_dt(struct device *dev)
 {
+	struct gpd_timing_data latencies = { 0 };
 	const char *domain_name;
+	u64 val;
 	int ret;
 
 	ret = of_property_read_string(dev->of_node, "renesas,pmdomain",
 				      &domain_name);
+	if (ret)
+		return;
+
+	ret = of_property_read_u64(dev->of_node, "pm-stop-latency", &val);
+	if (!ret)
+		latencies.stop_latency_ns = val;
+
+	ret = of_property_read_u64(dev->of_node, "pm-start-latency", &val);
+	if (!ret)
+		latencies.start_latency_ns = val;
+
+	ret = of_property_read_u64(dev->of_node, "pm-save-latency", &val);
+	if (!ret)
+		latencies.save_state_latency_ns = val;
+
+	ret = of_property_read_u64(dev->of_node, "pm-restore-latency", &val);
 	if (!ret)
-		rmobile_add_device_to_domain(domain_name,
-					     to_platform_device(dev));
+		latencies.restore_state_latency_ns = val;
+
+	rmobile_add_device_to_domain_td(domain_name, to_platform_device(dev),
+					&latencies);
 }
 
 static void rmobile_remove_from_domain(struct device *dev)