diff options
author | Alec Berg <alecaberg@chromium.org> | 2014-11-18 11:28:00 -0800 |
---|---|---|
committer | chrome-internal-fetch <chrome-internal-fetch@google.com> | 2014-11-21 04:37:50 +0000 |
commit | 2a9a859655689246630de3c86c7a254e611c1718 (patch) | |
tree | 2529e9db5b8aea1170bcefa564b4fab6f7db66bd /test | |
parent | 673255588bbf585aa3f9b79defe88dd85025eb36 (diff) | |
download | chrome-ec-2a9a859655689246630de3c86c7a254e611c1718.tar.gz |
pd: if our request is rejected, go to SNK_READY
If our request is rejected, go to SNK_READY, but don't set
explicit contract flag.
This also changes charge manager slightly to avoid new power
request loops. A new power request is only requested if the
charge port changes, or if the active charge port changes its
voltage/current offering. A new power request does not occur
if the current ceiling changes, since the existing contract
still suffices.
BUG=chrome-os-partner:33692, chrome-os-partner:28332
BRANCH=samus
TEST=make buildall. use samus and make sure we negotiate for 20V
as normal. modify zinger to send a REJECT and make sure we go from
PD_STATE_SNK_REQUESTED to PD_STATE_SNK_READY and explicit contract
bit is 0.
Signed-off-by: Alec Berg <alecaberg@chromium.org>
Change-Id: Iec02663364dcdc4aa66c681ec08911db7424abbc
Reviewed-on: https://chromium-review.googlesource.com/230522
Reviewed-by: Shawn Nematbakhsh <shawnn@chromium.org>
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
Diffstat (limited to 'test')
-rw-r--r-- | test/charge_manager.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/test/charge_manager.c b/test/charge_manager.c index 6c05d8e0b6..78fbd7bfae 100644 --- a/test/charge_manager.c +++ b/test/charge_manager.c @@ -257,10 +257,18 @@ static int test_new_power_request(void) TEST_ASSERT(new_power_request[1] == 1); clear_new_power_requests(); - /* Reduce port 1 limit and verify NPR on port 1 only */ + /* Reduce port 1 through ceil and verify no NPR */ charge_manager_set_ceil(1, 500); wait_for_charge_manager_refresh(); TEST_ASSERT(new_power_request[0] == 0); + TEST_ASSERT(new_power_request[1] == 0); + clear_new_power_requests(); + + /* Change port 1 voltage and verify NPR on port 1 */ + charge.voltage = 4000; + charge_manager_update(CHARGE_SUPPLIER_TEST2, 1, &charge); + wait_for_charge_manager_refresh(); + TEST_ASSERT(new_power_request[0] == 0); TEST_ASSERT(new_power_request[1] == 1); clear_new_power_requests(); |