summaryrefslogtreecommitdiffstats
path: root/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_irq_handlers.c
diff options
context:
space:
mode:
authorYue Du <daviddu@us.ibm.com>2016-07-14 01:18:16 -0500
committerJoshua Hunsberger <jahunsbe@us.ibm.com>2017-10-23 16:17:54 -0500
commita0e1f09e9f5b3333931c7bcb7afa84c519caafcb (patch)
treea57949d591dcc98f86c7628e85ca5df6a3641da4 /import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_irq_handlers.c
parentdc9c5e7d3b22825d2a00045c6e59e7875d7bd953 (diff)
downloadtalos-hcode-a0e1f09e9f5b3333931c7bcb7afa84c519caafcb.tar.gz
talos-hcode-a0e1f09e9f5b3333931c7bcb7afa84c519caafcb.zip
CME/SGPE: STOP Images functional bug fix collection
Change-Id: I3858a93ade6f21c006c980a497f58d6dafd9b628 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/27000 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: PPE CI <ppe-ci+hostboot@us.ibm.com> Reviewed-by: Douglas R. Gilbert <dgilbert@us.ibm.com> Reviewed-by: Gregory S. Still <stillgs@us.ibm.com>
Diffstat (limited to 'import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_irq_handlers.c')
-rw-r--r--import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_irq_handlers.c23
1 files changed, 15 insertions, 8 deletions
diff --git a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_irq_handlers.c b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_irq_handlers.c
index 85ddd82b..a1472174 100644
--- a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_irq_handlers.c
+++ b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_irq_handlers.c
@@ -246,16 +246,23 @@ p9_sgpe_stop_pig_handler(void* arg, PkIrqId irq)
G_sgpe_stop_record.group.core[VECTOR_ENTRY],
G_sgpe_stop_record.group.core[VECTOR_EXIT]);
- if (G_sgpe_stop_record.group.core[VECTOR_EXIT])
+ if ((!G_sgpe_stop_record.group.core[VECTOR_EXIT]) &&
+ (!G_sgpe_stop_record.group.core[VECTOR_ENTRY]))
{
- PK_TRACE("unblock exit");
- pk_semaphore_post(&(G_sgpe_stop_record.sem[1]));
+ out32(OCB_OIMR1_CLR, (BITS32(15, 2) | BIT32(19)));
}
-
- if (G_sgpe_stop_record.group.core[VECTOR_ENTRY])
+ else
{
- PK_TRACE("unblock entry");
- pk_semaphore_post(&(G_sgpe_stop_record.sem[0]));
- }
+ if (G_sgpe_stop_record.group.core[VECTOR_EXIT])
+ {
+ PK_TRACE("unblock exit");
+ pk_semaphore_post(&(G_sgpe_stop_record.sem[1]));
+ }
+ if (G_sgpe_stop_record.group.core[VECTOR_ENTRY])
+ {
+ PK_TRACE("unblock entry");
+ pk_semaphore_post(&(G_sgpe_stop_record.sem[0]));
+ }
+ }
}
OpenPOWER on IntegriCloud