diff options
author | Zick Wei <zick.wei@quanta.corp-partner.google.com> | 2021-04-07 19:17:07 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-04-11 10:04:37 +0000 |
commit | 52cfe6a41f0f81a7e07a485d2770a91dd63b3d3e (patch) | |
tree | 44266180998419607b5ded37addfceacf9f912c2 /board | |
parent | 62aa709f472b6a4021ccb3396701b2a2036caea7 (diff) | |
download | chrome-ec-52cfe6a41f0f81a7e07a485d2770a91dd63b3d3e.tar.gz |
dooly: extend prochot latch time
This patch extend CPU prochot latch time to 60ms,
when OCP protect triggered to pass safety requirement.
BUG=b:184812462
BRANCH=puff
TEST=verify CPU prochot can latch 60ms when OCP triggered.
Signed-off-by: Zick Wei <zick.wei@quanta.corp-partner.google.com>
Change-Id: I41721670d6fac9266bad546fc86b0c1e0f46b183
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2810427
Reviewed-by: Andrew McRae <amcrae@chromium.org>
Commit-Queue: Andrew McRae <amcrae@chromium.org>
Diffstat (limited to 'board')
-rw-r--r-- | board/dooly/board.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/board/dooly/board.c b/board/dooly/board.c index 21f5e8c914..0cbf2938c0 100644 --- a/board/dooly/board.c +++ b/board/dooly/board.c @@ -961,11 +961,17 @@ unsigned int ec_config_get_thermal_solution(void) #define POWER_DELAY_MS 2 #define POWER_READINGS (10/POWER_DELAY_MS) +/* PROCHOT_DEFER_OFF is to extend CPU prochot long enough + * to pass safety requirement 30 * 2ms = 60 ms + */ +#define PROCHOT_DEFER_OFF 30 + static void power_monitor(void) { static uint32_t current_state; static uint32_t history[POWER_READINGS]; static uint8_t index; + static uint8_t prochot_linger; int32_t delay; uint32_t new_state = 0, diff; int32_t headroom_5v = PWR_MAX - base_5v_power; @@ -1066,8 +1072,16 @@ static void power_monitor(void) * As a last resort, turn on PROCHOT to * throttle the CPU. */ - if (gap <= 0) + if (gap <= 0) { + prochot_linger = 0; new_state |= THROT_PROCHOT; + } else if (prochot_linger < PROCHOT_DEFER_OFF) { + /* + * Do not turn off PROCHOT immediately. + */ + prochot_linger++; + new_state |= THROT_PROCHOT; + } } } /* |