summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRahul Batra <rbatra@us.ibm.com>2018-05-14 16:09:04 -0500
committerhostboot <hostboot@us.ibm.com>2018-05-23 10:55:19 -0500
commit503d2e402b13825ecee60d357ccf1fac62bf1ee7 (patch)
treef692d5ce613534db36a09388f23c64a223dd731c
parenta327175c6427ac21d98f5d8f2de1dac488f81a8b (diff)
downloadtalos-hcode-503d2e402b13825ecee60d357ccf1fac62bf1ee7.tar.gz
talos-hcode-503d2e402b13825ecee60d357ccf1fac62bf1ee7.zip
PGPE: Correctly Set retActQuads during Safe Mode
Key_Cronus_Test=PM_REGRESS Change-Id: I14a93245405ab1575675dee1140f33b9d6fde8bf CQ: SW427212 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/58794 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Cronus HW CI <cronushw-ci+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: RANGANATHPRASAD G. BRAHMASAMUDRA <prasadbgr@in.ibm.com> Reviewed-by: YUE DU <daviddu@us.ibm.com> Reviewed-by: Gregory S. Still <stillgs@us.ibm.com>
-rw-r--r--import/chips/p9/procedures/ppe_closed/pgpe/pstate_gpe/p9_pgpe_pstate.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/import/chips/p9/procedures/ppe_closed/pgpe/pstate_gpe/p9_pgpe_pstate.c b/import/chips/p9/procedures/ppe_closed/pgpe/pstate_gpe/p9_pgpe_pstate.c
index 20de38c0..365e8e0f 100644
--- a/import/chips/p9/procedures/ppe_closed/pgpe/pstate_gpe/p9_pgpe_pstate.c
+++ b/import/chips/p9/procedures/ppe_closed/pgpe/pstate_gpe/p9_pgpe_pstate.c
@@ -1494,13 +1494,15 @@ void p9_pgpe_pstate_safe_mode()
}
//ACK back to SGPE with "IPC_SGPE_PGPE_RC_SUCCESS"
+ //At this point, every quad is at safe Pstate, so no need to to move quad's frequency. Also,
+ //system is at safe frequency/voltage, so need to interlock with OCC for a quad exit. Simply,
+ //ACK back to SGPE, so that it can complete STOP11 Exit.
if (G_pgpe_pstate_record.ipcPendTbl[IPC_PEND_SGPE_ACTIVE_QUADS_UPDT].pending_ack == 1)
{
async_cmd = (ipc_async_cmd_t*)G_pgpe_pstate_record.ipcPendTbl[IPC_PEND_SGPE_ACTIVE_QUADS_UPDT].cmd;
ipcmsg_s2p_update_active_quads_t* args = (ipcmsg_s2p_update_active_quads_t*)async_cmd->cmd_data;
- p9_pgpe_pstate_process_quad_exit_notify(args->fields.requested_quads << 2);
- //activeQuads isn't updated until registration, so we OR with requested quads.
+ G_pgpe_pstate_record.pReqActQuads->fields.requested_active_quads |= (args->fields.requested_quads << 2);
args->fields.return_active_quads = G_pgpe_pstate_record.pReqActQuads->fields.requested_active_quads >> 2;
args->fields.return_code = IPC_SGPE_PGPE_RC_SUCCESS;
G_pgpe_pstate_record.ipcPendTbl[IPC_PEND_SGPE_ACTIVE_QUADS_UPDT].pending_ack = 0;
OpenPOWER on IntegriCloud