]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
usb: gadget: tegra-xudc: Always reinitialize data toggle when clear halt
authorHaotien Hsu <haotienh@nvidia.com>
Thu, 27 Nov 2025 03:35:40 +0000 (11:35 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 18 Dec 2025 12:55:22 +0000 (13:55 +0100)
commit6f31b2ca1e4838600e2dabaa9ba5a1e1b6c95640
tree947415c9f81343fa0b4b31747eea0881d3e1852f
parent4b89397807eb04986427c4786d065e9442834ad4
usb: gadget: tegra-xudc: Always reinitialize data toggle when clear halt

commit 2585973c7f9ee31d21e5848c996fab2521fd383d upstream.

The driver previously skipped handling ClearFeature(ENDPOINT_HALT)
when the endpoint was already not halted. This prevented the
controller from resetting the data sequence number and reinitializing
the endpoint state.

According to USB 3.2 specification Rev. 1.1, section 9.4.5,
ClearFeature(ENDPOINT_HALT) must always reset the data sequence and
set the stream state machine to Disabled, regardless of whether the
endpoint was halted.

Remove the early return so that ClearFeature(ENDPOINT_HALT) always
resets the endpoint sequence state as required by the specification.

Fixes: 49db427232fe ("usb: gadget: Add UDC driver for tegra XUSB device mode controller")
Cc: stable <stable@kernel.org>
Signed-off-by: Haotien Hsu <haotienh@nvidia.com>
Signed-off-by: Wayne Chang <waynec@nvidia.com>
Link: https://patch.msgid.link/20251127033540.2287517-1-waynec@nvidia.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/gadget/udc/tegra-xudc.c