summaryrefslogtreecommitdiff
path: root/board/plankton/usb_pd_policy.c
diff options
context:
space:
mode:
authorAlec Berg <alecaberg@chromium.org>2015-03-31 16:09:24 -0700
committerChromeOS Commit Bot <chromeos-commit-bot@chromium.org>2015-04-07 03:41:01 +0000
commit2d2d1e15cfd3a91c6d624d380ce44945855d0c83 (patch)
treecb8f816a2e42560baed6d0f2cb26030a69bd4f9a /board/plankton/usb_pd_policy.c
parent077f7c8b4797218c7be52736b46e56a49c567765 (diff)
downloadchrome-ec-2d2d1e15cfd3a91c6d624d380ce44945855d0c83.tar.gz
pd: treat externally powered dualrole devices as dedicated chargers
Treat externally powered dualrole devices as dedicated chargers. This allows us to default to consuming power from externally powered dualrole devices and cancels a charger override when one is attached. BUG=chrome-os-partner:38785 BRANCH=samus TEST=tested with third-party dualrole device that can be externally powered. also tested with another samus that was hard-coded with externally powered bit set, and deleted it's policy for power swapping. when this externally-powered samus is plugged into a samus running this CL, we always charge from the externally-powered samus. Change-Id: I850eba668e86d311d9353aa3881fc3a518409630 Signed-off-by: Alec Berg <alecaberg@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/263331 Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
Diffstat (limited to 'board/plankton/usb_pd_policy.c')
-rw-r--r--board/plankton/usb_pd_policy.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/board/plankton/usb_pd_policy.c b/board/plankton/usb_pd_policy.c
index f007cd4b91..59a37c6922 100644
--- a/board/plankton/usb_pd_policy.c
+++ b/board/plankton/usb_pd_policy.c
@@ -143,14 +143,15 @@ void pd_execute_data_swap(int port, int data_role)
/* Do nothing */
}
-void pd_check_pr_role(int port, int pr_role, int partner_pr_swap)
+void pd_check_pr_role(int port, int pr_role, int flags)
{
}
-void pd_check_dr_role(int port, int dr_role, int partner_dr_swap)
+void pd_check_dr_role(int port, int dr_role, int flags)
{
/* If Plankton is in USB hub mode, always act as UFP */
- if (board_in_hub_mode() && dr_role == PD_ROLE_DFP && partner_dr_swap)
+ if (board_in_hub_mode() && dr_role == PD_ROLE_DFP &&
+ (flags & PD_FLAGS_PARTNER_DR_DATA))
pd_request_data_swap(port);
}