diff options
author | mbroyles <mbroyles@us.ibm.com> | 2017-07-26 14:36:03 -0500 |
---|---|---|
committer | William A. Bryan <wilbryan@us.ibm.com> | 2017-07-26 16:47:13 -0400 |
commit | 458a99921f4ed89d145d267ba837eb3228909d06 (patch) | |
tree | 2f315b5db7466443274061a847a145a080fc2809 /src/occ_gpe0/apss_read.c | |
parent | 579fd543e9d698dc3932e8f72b166233f8baa773 (diff) | |
download | talos-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.c | 28 |
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) { |