From 050dc2142f83fc8dba2b9bad7dd71bee1d207748 Mon Sep 17 00:00:00 2001 From: Yue Du Date: Thu, 24 May 2018 00:12:14 -0500 Subject: STOP: Handle Quad Special Wakeup Done while pm_reset Key_Cronus_Test=PM_REGRESS Change-Id: I89c9a3b8a80a58653be60f5e84e42e89b301ce72 CQ: SW416547 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/59293 Tested-by: Jenkins Server Tested-by: FSP CI Jenkins Tested-by: Hostboot CI Reviewed-by: Prem Shanker Jha Reviewed-by: RANGANATHPRASAD G. BRAHMASAMUDRA Tested-by: Cronus HW CI Reviewed-by: Gregory S. Still --- .../chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_init.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_init.c b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_init.c index f1d4f325..48bc69e8 100644 --- a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_init.c +++ b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_init.c @@ -435,7 +435,9 @@ p9_sgpe_stop_init() G_sgpe_stop_record.state[qloop].act_state_q = STOP_LEVEL_0; G_sgpe_stop_record.group.quad[VECTOR_CONFIG] |= BIT32(qloop); // clear gpmmr[reset_state_indicator] if partial good quad - GPE_PUTSCOM(GPE_SCOM_ADDR_QUAD(PPM_GPMMR_CLR, qloop), BIT64(15)); + // clear quad special wakeup that may be set by pm_reset + // either way, before enable quad special wakeup interrupt service, start clean + GPE_PUTSCOM(GPE_SCOM_ADDR_QUAD(PPM_GPMMR_CLR, qloop), (BIT64(0) | BIT64(15))); if (qssr.value & m_qs) { -- cgit v1.2.3