[target/msm7630] Get power on reason and pass to kernel for fluid
Added similar method from msm7627_* to target msm7630. Added a check
to work only for fluid device
CRs-fixed: 251522
Change-Id: Id3cbd887e04fb741931d6d19cc5a3ab541f6da21
diff --git a/platform/msm_shared/smem.h b/platform/msm_shared/smem.h
index 2b404f7..7e78293 100644
--- a/platform/msm_shared/smem.h
+++ b/platform/msm_shared/smem.h
@@ -121,7 +121,7 @@
SMEM_POWER_ON_STATUS_INFO = 403,
SMEM_FIRST_VALID_TYPE = SMEM_SPINLOCK_ARRAY,
- SMEM_LAST_VALID_TYPE = SMEM_USABLE_RAM_PARTITION_TABLE,
+ SMEM_LAST_VALID_TYPE = SMEM_POWER_ON_STATUS_INFO,
} smem_mem_type_t;
/* Note: buf MUST be 4byte aligned, and max_len MUST be a multiple of 4. */
diff --git a/target/msm7630_surf/init.c b/target/msm7630_surf/init.c
index f05c728..bf956e6 100644
--- a/target/msm7630_surf/init.c
+++ b/target/msm7630_surf/init.c
@@ -345,6 +345,34 @@
return mode[0];
}
+static unsigned target_check_power_on_reason(void)
+{
+ unsigned power_on_status = 0;
+ unsigned int status_len = sizeof(power_on_status);
+ unsigned smem_status;
+
+ smem_status = smem_read_alloc_entry(SMEM_POWER_ON_STATUS_INFO,
+ &power_on_status, status_len);
+
+ if (!smem_status)
+ {
+ dprintf(CRITICAL, "ERROR: unable to read shared memory for power on reason\n");
+ }
+
+ return power_on_status;
+}
+
+unsigned target_pause_for_battery_charge(void)
+{
+ //check power on reason only for fluid devices
+ if( hw_platform_type != LINUX_MACHTYPE_7x30_FLUID)
+ return 0;
+
+ if (target_check_power_on_reason() == PWR_ON_EVENT_USB_CHG)
+ return 1;
+ return 0;
+}
+
void target_battery_charging_enable(unsigned enable, unsigned disconnect)
{
}