diff options
Diffstat (limited to 'common/usbc/usb_pe_drp_sm.c')
-rw-r--r-- | common/usbc/usb_pe_drp_sm.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/common/usbc/usb_pe_drp_sm.c b/common/usbc/usb_pe_drp_sm.c index 7390a5e78b..8e75e59ee4 100644 --- a/common/usbc/usb_pe_drp_sm.c +++ b/common/usbc/usb_pe_drp_sm.c @@ -4280,6 +4280,9 @@ void pd_set_vbus_discharge(int port, int enable) { static struct mutex discharge_lock[CONFIG_USB_PD_PORT_MAX_COUNT]; + if (port >= board_get_usb_pd_port_count()) + return; + mutex_lock(&discharge_lock[port]); enable &= !board_vbus_source_enabled(port); @@ -4731,7 +4734,7 @@ static int command_pe(int argc, char **argv) /* 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); @@ -4749,7 +4752,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); @@ -4772,7 +4775,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 */ |