From 8fbf4ba6058bcf736317d8a7aa75d0578563c38b Mon Sep 17 00:00:00 2001 From: Roman Leonov Date: Wed, 13 Sep 2023 17:20:36 +0200 Subject: [PATCH] bugfix(usb/host): Fix transfer direction determination during argument checking for regular EP transfer --- components/usb/usbh.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/components/usb/usbh.c b/components/usb/usbh.c index c37b2e21cbeb..a23f57467c28 100644 --- a/components/usb/usbh.c +++ b/components/usb/usbh.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2015-2022 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2015-2023 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -1078,14 +1078,13 @@ esp_err_t usbh_ep_enqueue_urb(usbh_ep_handle_t ep_hdl, urb_t *urb) { USBH_CHECK(ep_hdl != NULL && urb != NULL, ESP_ERR_INVALID_ARG); USBH_CHECK(urb_check_args(urb), ESP_ERR_INVALID_ARG); - bool xfer_is_in = ((usb_setup_packet_t *)urb->transfer.data_buffer)->bmRequestType & USB_BM_REQUEST_TYPE_DIR_IN; endpoint_t *ep_obj = (endpoint_t *)ep_hdl; USBH_CHECK( transfer_check_usb_compliance(&(urb->transfer), USB_EP_DESC_GET_XFERTYPE(ep_obj->constant.ep_desc), USB_EP_DESC_GET_MPS(ep_obj->constant.ep_desc), - xfer_is_in), + USB_EP_DESC_GET_EP_DIR(ep_obj->constant.ep_desc)), ESP_ERR_INVALID_ARG); // Check that the EP's underlying pipe is in the active state before submitting the URB if (hcd_pipe_get_state(ep_obj->constant.pipe_hdl) != HCD_PIPE_STATE_ACTIVE) {