From abc6c7ad71d85532db725198cecab0aa282e7b50 Mon Sep 17 00:00:00 2001 From: Diana Z Date: Sat, 14 Aug 2021 22:58:16 -0600 Subject: USB MUX: Update mux HPD update interface to use mux_state_t Since the drivers are now taking a mux_state_t set of flags to update, go ahead and unify the usb_mux API this way as well. It makes the parameters more apparent than the 1/0 inputs, and aligns the stack to use the same parameters. BRANCH=None BUG=b:172222942 TEST=make -j buildall Signed-off-by: Diana Z Change-Id: Ie943dbdf03818d8497c0e328adf2b9794585d96e Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3095438 Commit-Queue: Abe Levkoy Reviewed-by: Abe Levkoy --- driver/usb_mux/usb_mux.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) (limited to 'driver') diff --git a/driver/usb_mux/usb_mux.c b/driver/usb_mux/usb_mux.c index 56eb104b5d..a362412995 100644 --- a/driver/usb_mux/usb_mux.c +++ b/driver/usb_mux/usb_mux.c @@ -326,10 +326,9 @@ void usb_mux_flip(int port) configure_mux(port, USB_MUX_SET_MODE, &mux_state); } -void usb_mux_hpd_update(int port, int hpd_lvl, int hpd_irq) +void usb_mux_hpd_update(int port, mux_state_t hpd_state) { - mux_state_t mux_state = (hpd_lvl ? USB_PD_MUX_HPD_LVL : 0) | - (hpd_irq ? USB_PD_MUX_HPD_IRQ : 0); + mux_state_t get_state; if (port >= board_get_usb_pd_port_count()) { return; @@ -342,12 +341,11 @@ void usb_mux_hpd_update(int port, int hpd_lvl, int hpd_irq) if (exit_low_power_mode(port) != EC_SUCCESS) return; - configure_mux(port, USB_MUX_HPD_UPDATE, &mux_state); + configure_mux(port, USB_MUX_HPD_UPDATE, &hpd_state); - if (!configure_mux(port, USB_MUX_GET_MODE, &mux_state)) { - mux_state |= (hpd_lvl ? USB_PD_MUX_HPD_LVL : 0) | - (hpd_irq ? USB_PD_MUX_HPD_IRQ : 0); - configure_mux(port, USB_MUX_SET_MODE, &mux_state); + if (!configure_mux(port, USB_MUX_GET_MODE, &get_state)) { + get_state |= hpd_state; + configure_mux(port, USB_MUX_SET_MODE, &get_state); } } @@ -475,7 +473,7 @@ static enum ec_status hc_usb_pd_mux_info(struct host_cmd_handler_args *args) /* Clear HPD IRQ event since we're about to inform host of it. */ if (IS_ENABLED(CONFIG_USB_MUX_VIRTUAL) && (r->flags & USB_PD_MUX_HPD_IRQ)) { - usb_mux_hpd_update(port, r->flags & USB_PD_MUX_HPD_LVL, 0); + usb_mux_hpd_update(port, r->flags & USB_PD_MUX_HPD_LVL); } args->response_size = sizeof(*r); -- cgit v1.2.1