msm: allow for platform-specific memory power routines

We now support more than one platform whose memory
can be turned on and off and whose way of doing so
differs from platform to platform, so call the appropriate
platform-specific routine if one exists.

Signed-off-by: Larry Bassel <lbassel@codeaurora.org>
diff --git a/arch/arm/mach-msm/memory.c b/arch/arm/mach-msm/memory.c
index c38071ca..2ece32e 100644
--- a/arch/arm/mach-msm/memory.c
+++ b/arch/arm/mach-msm/memory.c
@@ -194,25 +194,32 @@
 	return (void *)addr;
 }
 
+int (*change_memory_power)(unsigned long, unsigned long, int);
+
 int platform_physical_remove_pages(unsigned long start_pfn,
 	unsigned long nr_pages)
 {
-	return 1;
+	if (!change_memory_power)
+		return 0;
+	return change_memory_power(start_pfn, nr_pages, MEMORY_DEEP_POWERDOWN);
 }
 
 int platform_physical_active_pages(unsigned long start_pfn,
 	unsigned long nr_pages)
 {
-	return 1;
+	if (!change_memory_power)
+		return 0;
+	return change_memory_power(start_pfn, nr_pages, MEMORY_ACTIVE);
 }
 
 int platform_physical_low_power_pages(unsigned long start_pfn,
 	unsigned long nr_pages)
 {
-	return 1;
+	if (!change_memory_power)
+		return 0;
+	return change_memory_power(start_pfn, nr_pages, MEMORY_SELF_REFRESH);
 }
 
-
 char *memtype_name[] = {
 	"SMI_KERNEL",
 	"SMI",