diff options
| -rw-r--r-- | import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop.h | 1 | ||||
| -rw-r--r-- | import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_threads.c | 4 |
2 files changed, 3 insertions, 2 deletions
diff --git a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop.h b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop.h index dfad53d7..dcc7355c 100644 --- a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop.h +++ b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop.h @@ -308,6 +308,7 @@ typedef struct typedef struct { uint32_t starve_counter; + uint8_t entry_pending; } sgpe_fit_t; /// SGPE Stop Score Board Structure diff --git a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_threads.c b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_threads.c index 87b64191..b13c35cb 100644 --- a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_threads.c +++ b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_threads.c @@ -44,8 +44,7 @@ p9_sgpe_stop_exit_thread(void* arg) // The actual exit sequence p9_sgpe_stop_exit(); - if ((!G_sgpe_stop_record.group.core[VECTOR_ENTRY]) && - (!G_sgpe_stop_record.group.qswu[VECTOR_ENTRY])) + if (!G_sgpe_stop_record.fit.entry_pending) { #if !SKIP_IPC @@ -115,6 +114,7 @@ p9_sgpe_stop_enter_thread(void* arg) p9_sgpe_ack_pgpe_ctrl_stop_updates(); } + G_sgpe_stop_record.fit.entry_pending = 0; PK_TRACE_INF("Setup: Entry done. Enable Type2/3/5/6 Interrupt"); g_oimr_override &= ~(BITS64(47, 2) | BITS64(50, 2)); pk_irq_vec_restore(&ctx); |

