summaryrefslogtreecommitdiffstats
path: root/src/usr/intr
diff options
context:
space:
mode:
authorBill Hoffa <wghoffa@us.ibm.com>2016-08-10 09:31:13 -0500
committerMatthew A. Ploetz <maploetz@us.ibm.com>2016-08-10 14:51:24 -0400
commitc61d7f1c774442fc0830aa7bc0fd1c41eda0889f (patch)
tree6d731c7204e348d5e0fd763224c4d41169610e54 /src/usr/intr
parent0f64c7b414998e6f9b1b7211f55f0ca481208070 (diff)
downloadtalos-hostboot-c61d7f1c774442fc0830aa7bc0fd1c41eda0889f.tar.gz
talos-hostboot-c61d7f1c774442fc0830aa7bc0fd1c41eda0889f.zip
Refactor Polling for PSU Interrupt handling by INTRP
Change-Id: I4875bf436e5b258b7cd932b370e42b12cfdeea86 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/28101 Reviewed-by: Dean Sanner <dsanner@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Elizabeth K. Liner <eliner@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Matthew A. Ploetz <maploetz@us.ibm.com>
Diffstat (limited to 'src/usr/intr')
-rw-r--r--src/usr/intr/intrrp.C8
-rw-r--r--src/usr/intr/intrrp.H2
2 files changed, 5 insertions, 5 deletions
diff --git a/src/usr/intr/intrrp.C b/src/usr/intr/intrrp.C
index 25bf01d82..dcabd16f1 100644
--- a/src/usr/intr/intrrp.C
+++ b/src/usr/intr/intrrp.C
@@ -1049,7 +1049,7 @@ errlHndl_t IntrRp::handlePsuInterrupt(ext_intr_t i_type)
uint32_t l_addr = PSI_BRIDGE_PSU_DOORBELL_REG;
size_t scom_len = sizeof(uint64_t);
uint64_t reg = 0x0;
- uint64_t l_num_yields = 0;
+ uint64_t l_elapsed_time_ns = 0;
TARGETING::Target* procTarget = NULL;
TARGETING::targetService().masterProcChipTargetHandle( procTarget );
@@ -1074,15 +1074,15 @@ errlHndl_t IntrRp::handlePsuInterrupt(ext_intr_t i_type)
TRACDCOMP(g_trac_intr, "Host/SBE Mailbox "
"response. Wait for Polling to handle"
" response");
- task_yield(); // allow PSU mbox task to handle
- l_num_yields += 1;
+ nanosleep(0,10000);
+ l_elapsed_time_ns += 10000;
}
else
{
//Polling Complete
break;
}
- if (l_num_yields > 30)
+ if (l_elapsed_time_ns > MAX_PSU_LONG_TIMEOUT_NS)
{
TRACFCOMP(g_trac_intr, "PSU Timeout hit");
/*@ errorlog tag
diff --git a/src/usr/intr/intrrp.H b/src/usr/intr/intrrp.H
index 7b424fa02..a8a1eafba 100644
--- a/src/usr/intr/intrrp.H
+++ b/src/usr/intr/intrrp.H
@@ -218,7 +218,7 @@ namespace INTR
XIVE_RESET_UNIT_ENABLE = 0x8000000000000000,
ACK_HYPERVISOR_INT_REG_OFFSET = 0x830/sizeof(uint16_t),
POWERBUS_STATE_QUIESCE = 0xC000000000000000,
- MAX_PSU_LONG_TIMEOUT_NS = 100000*NS_PER_MSEC,
+ MAX_PSU_LONG_TIMEOUT_NS = 5000*NS_PER_MSEC, //5 seconds
ESB_STATE_RESET = 0,
ESB_STATE_OFF = 1,
OpenPOWER on IntegriCloud