diff options
author | Karthikeyan Ramasubramanian <kramasub@google.com> | 2019-10-02 15:09:45 -0600 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2019-11-09 02:16:42 +0000 |
commit | 27db31e6d02a54d5706d8cb4d1b5db6ff757f659 (patch) | |
tree | 638e3c80f757205774cc62037b056dc9cab64132 /common/usb_pd_policy.c | |
parent | ffb96cd5ba990c8d6d91a044105eb225087781aa (diff) | |
download | chrome-ec-27db31e6d02a54d5706d8cb4d1b5db6ff757f659.tar.gz |
Add a board specific helper to return USB PD port count
Certain SKUs of certain boards have less number of USB PD ports than
configured in CONFIG_USB_PD_PORT_MAX_COUNT. Hence define an overrideable
board specific helper to return the number of USB PD ports. This helps
to avoid initiating a PD firmware update in SKUs where there are less
number of USB PD ports. Also update charge manager to ensure that absent/
invalid PD ports are skipped during port initialization and management.
BUG=b:140816510, b:143196487
BRANCH=octopus
TEST=make -j buildall; Boot to ChromeOS in bobba(2A + 2C config) and
garg(2A + 1C + 1HDMI config).
Change-Id: Ie345cef470ad878ec443ddf4797e5d17cfe1f61e
Signed-off-by: Karthikeyan Ramasubramanian <kramasub@google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1879338
Tested-by: Karthikeyan Ramasubramanian <kramasub@chromium.org>
Reviewed-by: Jett Rink <jettrink@chromium.org>
Commit-Queue: Karthikeyan Ramasubramanian <kramasub@chromium.org>
Diffstat (limited to 'common/usb_pd_policy.c')
-rw-r--r-- | common/usb_pd_policy.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/common/usb_pd_policy.c b/common/usb_pd_policy.c index f36ec396ab..4b8fa85071 100644 --- a/common/usb_pd_policy.c +++ b/common/usb_pd_policy.c @@ -629,7 +629,7 @@ static int command_pe(int argc, char **argv) return EC_ERROR_PARAM_COUNT; /* command: pe <port> <subcmd> <args> */ port = strtoi(argv[1], &e, 10); - if (*e || port >= CONFIG_USB_PD_PORT_MAX_COUNT) + if (*e || port >= board_get_usb_pd_port_count()) return EC_ERROR_PARAM2; if (!strncasecmp(argv[2], "dump", 4)) dump_pe(port); @@ -884,7 +884,7 @@ static int command_cable(int argc, char **argv) if (argc < 2) return EC_ERROR_PARAM_COUNT; port = strtoi(argv[1], &e, 0); - if (*e || port >= CONFIG_USB_PD_PORT_MAX_COUNT) + if (*e || port >= board_get_usb_pd_port_count()) return EC_ERROR_PARAM2; if (!cable[port].is_identified) { @@ -984,7 +984,7 @@ static enum ec_status hc_remote_pd_discovery(struct host_cmd_handler_args *args) const uint8_t *port = args->params; struct ec_params_usb_pd_discovery_entry *r = args->response; - if (*port >= CONFIG_USB_PD_PORT_MAX_COUNT) + if (*port >= board_get_usb_pd_port_count()) return EC_RES_INVALID_PARAM; r->vid = pd_get_identity_vid(*port); @@ -1006,7 +1006,7 @@ static enum ec_status hc_remote_pd_get_amode(struct host_cmd_handler_args *args) const struct ec_params_usb_pd_get_mode_request *p = args->params; struct ec_params_usb_pd_get_mode_response *r = args->response; - if (p->port >= CONFIG_USB_PD_PORT_MAX_COUNT) + if (p->port >= board_get_usb_pd_port_count()) return EC_RES_INVALID_PARAM; /* no more to send */ |