From 7f57b41ebfac95e8de4120c87272cfd895b2a21f Mon Sep 17 00:00:00 2001 From: Arun Murthy Date: Wed, 8 Feb 2012 19:05:44 +0530 Subject: u8500-shrm: before accessing GOP check modem reset Apart from checking the modem reset based on the shrm protocol internal state machine, PRCMU registers can also be checked to know the modem reset status before accessing the GOP registers. ST-Ericsson Linux next: NA ST-Ericsson ID: 413508 ST-Ericsson FOSS-OUT ID: Trivial Change-Id: I3fefea9d001ccd7a0478967706fec083085ac7f3 Signed-off-by: Arun Murthy Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/48278 Reviewed-by: QABUILD Reviewed-by: Srinidhi KASAGAR --- drivers/modem/shrm/shrm_protocol.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/drivers/modem/shrm/shrm_protocol.c b/drivers/modem/shrm/shrm_protocol.c index fa4251cdbbd..df277dc9dfd 100644 --- a/drivers/modem/shrm/shrm_protocol.c +++ b/drivers/modem/shrm/shrm_protocol.c @@ -38,9 +38,12 @@ #define PRCM_MOD_AWAKE_STATUS_PRCM_MOD_COREPD_AWAKE BIT(0) #define PRCM_MOD_AWAKE_STATUS_PRCM_MOD_AAPD_AWAKE BIT(1) #define PRCM_MOD_AWAKE_STATUS_PRCM_MOD_VMODEM_OFF_ISO BIT(2) +#define PRCM_MOD_PURESET BIT(0) +#define PRCM_MOD_SW_RESET BIT(1) -#define PRCM_HOSTACCESS_REQ 0x334 -#define PRCM_MOD_AWAKE_STATUS 0x4A0 +#define PRCM_HOSTACCESS_REQ 0x334 +#define PRCM_MOD_AWAKE_STATUS 0x4A0 +#define PRCM_MOD_RESETN_VAL 0x204 static u8 boot_state = BOOT_INIT; static u8 recieve_common_msg[8*1024]; @@ -132,13 +135,16 @@ static u32 get_host_accessport_val(void) { u32 prcm_hostaccess; u32 status; + u32 reset_stats; status = (prcmu_read(PRCM_MOD_AWAKE_STATUS) & 0x03); + reset_stats = (prcmu_read(PRCM_MOD_RESETN_VAL) & 0x03); prcm_hostaccess = prcmu_read(PRCM_HOSTACCESS_REQ); wmb(); - prcm_hostaccess = (prcm_hostaccess & 0x01) && + prcm_hostaccess = ((prcm_hostaccess & 0x01) && (status == (PRCM_MOD_AWAKE_STATUS_PRCM_MOD_AAPD_AWAKE | - PRCM_MOD_AWAKE_STATUS_PRCM_MOD_COREPD_AWAKE)); + PRCM_MOD_AWAKE_STATUS_PRCM_MOD_COREPD_AWAKE)) && + (reset_stats == (PRCM_MOD_SW_RESET | PRCM_MOD_PURESET))); return prcm_hostaccess; } -- cgit v1.2.3