From 3dff77460d0faf5d4b72fc6d2eb46ad6514140de Mon Sep 17 00:00:00 2001 From: mojyack Date: Wed, 3 Dec 2025 09:55:18 +0900 Subject: [PATCH] usb: arc: fix unable to receive 64 bytes long control packet by adding QH_ZLT_SEL to control endpoints Change-Id: I27ccf6a6db302688f1df2e6fd1d3fe98c20323cf --- firmware/target/arm/usb-drv-arc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/firmware/target/arm/usb-drv-arc.c b/firmware/target/arm/usb-drv-arc.c index 1596f6a4d5..1eeee010b3 100644 --- a/firmware/target/arm/usb-drv-arc.c +++ b/firmware/target/arm/usb-drv-arc.c @@ -974,8 +974,8 @@ static void init_control_queue_heads(void) memset(qh_array, 0, sizeof qh_array); /*** control ***/ - qh_array[EP_CONTROL].max_pkt_length = 64 << QH_MAX_PKT_LEN_POS | QH_IOS; + qh_array[EP_CONTROL].max_pkt_length = 64 << QH_MAX_PKT_LEN_POS | QH_IOS | QH_ZLT_SEL; qh_array[EP_CONTROL].dtd.next_td_ptr = QH_NEXT_TERMINATE; - qh_array[EP_CONTROL+1].max_pkt_length = 64 << QH_MAX_PKT_LEN_POS; + qh_array[EP_CONTROL+1].max_pkt_length = 64 << QH_MAX_PKT_LEN_POS | QH_ZLT_SEL; qh_array[EP_CONTROL+1].dtd.next_td_ptr = QH_NEXT_TERMINATE; }