summaryrefslogtreecommitdiffstats
path: root/src/occ_gpe0/apss_read.c
diff options
context:
space:
mode:
authormbroyles <mbroyles@us.ibm.com>2017-07-26 14:36:03 -0500
committerWilliam A. Bryan <wilbryan@us.ibm.com>2017-07-26 16:47:13 -0400
commit458a99921f4ed89d145d267ba837eb3228909d06 (patch)
tree2f315b5db7466443274061a847a145a080fc2809 /src/occ_gpe0/apss_read.c
parent579fd543e9d698dc3932e8f72b166233f8baa773 (diff)
downloadtalos-occ-458a99921f4ed89d145d267ba837eb3228909d06.tar.gz
talos-occ-458a99921f4ed89d145d267ba837eb3228909d06.zip
Reduce number of checks when waiting for SPI completion
Fix GPE1 timing fw sensor Change-Id: I4e0d4256b0f55a5593b16237ace5bce73029f6da CQ: SW396887 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/43706 Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Christopher J. Cain <cjcain@us.ibm.com> Reviewed-by: Andres A. Lugo-Reyes <aalugore@us.ibm.com> Reviewed-by: William A. Bryan <wilbryan@us.ibm.com>
Diffstat (limited to 'src/occ_gpe0/apss_read.c')
-rw-r--r--src/occ_gpe0/apss_read.c28
1 files changed, 14 insertions, 14 deletions
diff --git a/src/occ_gpe0/apss_read.c b/src/occ_gpe0/apss_read.c
index 640e712..c6065bb 100644
--- a/src/occ_gpe0/apss_read.c
+++ b/src/occ_gpe0/apss_read.c
@@ -216,10 +216,10 @@ void apss_continue_pwr_meas_read(ipc_msg_t* cmd, void* arg)
#endif
do{
- // wait for ADC completion, or timeout after 100 micro seconds.
+ // wait for ADC completion, or timeout after 120us (from Jordan for 16 channels)
// scom register SPIPSS_ADC_STATUS_REG's bit 0 (HWCTRL_ONGOING)
// indicates when completion occurs.
- rc = wait_spi_completion(&(args->error), SPIPSS_ADC_STATUS_REG, 100);
+ rc = wait_spi_completion(&(args->error), SPIPSS_ADC_STATUS_REG, 120);
if(rc) // Timeout Reached, and SPI transaction didn't complete
{
PK_TRACE("apss_continue_pwr_meas_read:wait_spi_completion Timed out, rc = 0x%08x",
@@ -360,18 +360,6 @@ void apss_complete_pwr_meas_read(ipc_msg_t* cmd, void* arg)
apss_complete_args_t *args = (apss_complete_args_t*)async_cmd->cmd_data;
uint32_t rdata_reg = 0;
do {
- // wait for ADC completion, or timeout after 100 micro seconds.
- // scom register SPIPSS_ADC_STATUS_REG's bit 0 (HWCTRL_ONGOING)
- // indicates when completion occurs.
- rc = wait_spi_completion(&(args->error), SPIPSS_ADC_STATUS_REG, 100);
- if(rc) // Timeout Reached, and SPI transaction didn't complete
- {
- PK_TRACE("apss_complete_pwr_meas_read:wait_spi_completion Timed out, rc = 0x%08x",
- rc);
- // FFDC already set inside wait_spi_completion
- break;
- }
-
// Get Time of Day
rc = getscom_abs(TOD_VALUE_REG, &args->meas_data[3]);
if(rc)
@@ -382,6 +370,18 @@ void apss_complete_pwr_meas_read(ipc_msg_t* cmd, void* arg)
break;
}
+ // wait for completion, or timeout after 40us (from Jordan for GPIOs)
+ // scom register SPIPSS_ADC_STATUS_REG's bit 0 (HWCTRL_ONGOING)
+ // indicates when completion occurs.
+ rc = wait_spi_completion(&(args->error), SPIPSS_ADC_STATUS_REG, 40);
+ if(rc) // Timeout Reached, and SPI transaction didn't complete
+ {
+ PK_TRACE("apss_complete_pwr_meas_read:wait_spi_completion Timed out, rc = 0x%08x",
+ rc);
+ // FFDC already set inside wait_spi_completion
+ break;
+ }
+
// If we're in composite mode, collect the GPIO data
if (APSS_MODE_COMPOSITE == G_apss_mode)
{
OpenPOWER on IntegriCloud