msm: Bug fixes in lpm_resources and mpm
Fixed incorrect setting of the internal state of the MPM driver. In
lpm_resources, since Vdd_dig is represented via corner voltage, update
the default value to represent the same. Also, modify lpm_resources to
use the noirq RPM API during exit sleep.
Change-Id: I58365702d1eb490504e62a6f45b93fd37f474e9f
Signed-off-by: Mahesh Sivasubramanian <msivasub@codeaurora.org>
diff --git a/arch/arm/mach-msm/lpm_resources.c b/arch/arm/mach-msm/lpm_resources.c
index e5be352..ebcbd26 100644
--- a/arch/arm/mach-msm/lpm_resources.c
+++ b/arch/arm/mach-msm/lpm_resources.c
@@ -46,7 +46,7 @@
static bool msm_lpm_get_rpm_notif = true;
/*Macros*/
-#define VDD_DIG_ACTIVE (950000)
+#define VDD_DIG_ACTIVE (5)
#define VDD_MEM_ACTIVE (1050000)
#define MAX_RS_NAME (16)
#define MAX_RS_SIZE (4)
@@ -264,7 +264,7 @@
return ret;
}
- ret = msm_rpm_wait_for_ack(msg_id);
+ ret = msm_rpm_wait_for_ack_noirq(msg_id);
if (ret < 0) {
pr_err("%s: Couldn't get ACK from RPM for Msg %d Error %d",
__func__, msg_id, ret);
diff --git a/arch/arm/mach-msm/mpm-of.c b/arch/arm/mach-msm/mpm-of.c
index 1832301..cc60596 100644
--- a/arch/arm/mach-msm/mpm-of.c
+++ b/arch/arm/mach-msm/mpm-of.c
@@ -554,7 +554,7 @@
pr_info("%s(): request_irq failed errno: %d\n", __func__, ret);
goto failed_irq_get;
}
- msm_mpm_initialized &= MSM_MPM_DEVICE_PROBED;
+ msm_mpm_initialized |= MSM_MPM_DEVICE_PROBED;
return 0;
@@ -701,9 +701,10 @@
}
}
- msm_mpm_initialized &= MSM_MPM_IRQ_MAPPING_DONE;
+ msm_mpm_initialized |= MSM_MPM_IRQ_MAPPING_DONE;
return;
+
failed_malloc:
for (i = 0; i < MSM_MPM_NR_MPM_IRQS; i++) {
mpm_of_map[i].chip->irq_mask = NULL;