From nobody Mon Nov 02 03:02:50 2026 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4jHxMv0wFKz6yVT5 for ; Mon, 02 Nov 2026 03:02:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 4jHxMt25Zzz4STQ for ; Mon, 02 Nov 2026 03:02:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1793588570; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XfIlo7fJQSBt3UCX7uHpcKsLuUaxKWo6wVO5/gsaSWY=; b=eGnprJ51g2FT02YuEddj+rtFf/5y52hP2O+6VhsOewQBNpuCyNte3hjjWRVqgAfUaZEDM/ nXQfMOdkctC5kJDyXCqVDQaH7e3sIPNO1kjt2UM+czGusRLVbvITOkuNs1GOPgCC9525mZ 2oIz8bMBxnLlN4i3q+vRcpo4YehotBHxmk79EYF4pkbAcB12VBdpkr3yCfRnH5xRNQpVDO Q/+B5CQEHoLLJCvu8xiNMG3OKgi+BrSxbatWMm47LEECjJchOiDhgmhupl/KKYEmQBXSdx xfgPbC34+NtaawHnEl/myWyNhgDYn8zvPykCSv/F5nvlM4WPPqRA7Rz5BBePkA== ARC-Seal: i=1; a=rsa-sha256; d=freebsd.org; s=dkim; cv=none; t=1793588570; b=k0SiYpNqo4Q5JUJE99j7bRYuR7OVTd9izEx/AZARFXDNXszfzrbwXLDzxM4IX1c/DqMw90 T0Z6IvyFGf4Td+lM2jk9Fl50bS+xVG39b6LiR1USy66v9F++kGFuzTzKTY8IK2w/LDzXs8 gUXHWe9LU1ETyDTz5rc7JCs853a7TH7tzqt+LSNwYoDTXLooyLH879Oncrrq0/GE/eHyN/ +HC4nIWXHmzdJ8omJji5xoH1tiBINawSab176zb2N/0TkswWjrawvTs2bWCEwytvqldqy4 IauvG1/QT8e/cUd43ojLqGg/WgUU5iyBBqv7g9ag4vbzxy+WZQurMBfAWbkqjw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1793588570; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XfIlo7fJQSBt3UCX7uHpcKsLuUaxKWo6wVO5/gsaSWY=; b=FRFGnwxqUeakhQ8iZ6AM/5FDuImHyPCyyt94ab7VyaTzr/e0/csescTrWAUKGACJjNpytU RIwSCeOpkYS7PTp4+82HA4Kl9rhqO2ydWYdi3TPBYhyhmapUZPmWR4z+rPud1eIR/mPhsB oLlPltpwZB1YuM1jYRce8QPJ2i1pIf62TRJDu4Ufup8jbbOYp7Z8cUM5z/eZsEtYihOHf6 fLfRQO+Q0FDzvb8J8Cyu50uJWQBDXDcXDg4Nsmj/Cf+f48xm+XCp7niHpdW2fUl1RvM2Af GxAm/AkIO4BnKSB5JU3dxqBySZGXquScTFUDwAhcc/yw4+fr0vfUz9GOXhO8Hw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4jHxMt1lg3zRSG for ; Mon, 02 Nov 2026 03:02:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3ae88 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 02 Nov 2026 03:02:50 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: ShengYi Hung Subject: git: 1928debe1a47 - main - usb: Add get_ext_port_status helper function List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org List-Id: Commit messages for the main branch of the src repository List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: aokblast X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 1928debe1a47e3a7411a1c09e46ea910f73950d2 Auto-Submitted: auto-generated Date: Mon, 02 Nov 2026 03:02:50 +0000 Message-Id: <6ae7fd5a.3ae88.285650f8@gitrepo.freebsd.org> The branch main has been updated by aokblast: URL: https://cgit.FreeBSD.org/src/commit/?id=1928debe1a47e3a7411a1c09e46ea910f73950d2 commit 1928debe1a47e3a7411a1c09e46ea910f73950d2 Author: ShengYi Hung AuthorDate: 2026-05-22 16:23:07 +0000 Commit: ShengYi Hung CommitDate: 2026-11-02 03:02:11 +0000 usb: Add get_ext_port_status helper function usbd_req_get_ext_port_status() wraps the Get Extended Port Status request. Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D57201 --- sys/dev/usb/usb_request.c | 23 +++++++++++++++++++++++ sys/dev/usb/usb_request.h | 2 ++ 2 files changed, 25 insertions(+) diff --git a/sys/dev/usb/usb_request.c b/sys/dev/usb/usb_request.c index 879d57f00eec..df6dadae541b 100644 --- a/sys/dev/usb/usb_request.c +++ b/sys/dev/usb/usb_request.c @@ -1624,6 +1624,29 @@ usbd_req_get_port_status(struct usb_device *udev, struct mtx *mtx, return (usbd_do_request_flags(udev, mtx, &req, ps, 0, NULL, 1000)); } +/*------------------------------------------------------------------------* + * usbd_req_get_ext_port_status + * + * Returns: + * 0: Success + * Else: Failure + *------------------------------------------------------------------------*/ +usb_error_t +usbd_req_get_ext_port_status(struct usb_device *udev, struct mtx *mtx, + struct usb_ext_status *ps, uint8_t port) +{ + struct usb_device_request req; + + req.bmRequestType = UT_READ_CLASS_OTHER; + req.bRequest = UR_GET_STATUS; + USETW(req.wValue, 2); + req.wIndex[0] = port; + req.wIndex[1] = 0; + USETW(req.wLength, sizeof(*ps)); + + return (usbd_do_request_flags(udev, mtx, &req, ps, 0, NULL, 1000)); +} + /*------------------------------------------------------------------------* * usbd_req_clear_hub_feature * diff --git a/sys/dev/usb/usb_request.h b/sys/dev/usb/usb_request.h index 56a4003e8bae..f7ccd84eb69c 100644 --- a/sys/dev/usb/usb_request.h +++ b/sys/dev/usb/usb_request.h @@ -64,6 +64,8 @@ usb_error_t usbd_req_get_hub_status(struct usb_device *udev, struct mtx *mtx, struct usb_hub_status *st); usb_error_t usbd_req_get_port_status(struct usb_device *udev, struct mtx *mtx, struct usb_port_status *ps, uint8_t port); +usb_error_t usbd_req_get_ext_port_status(struct usb_device *udev, + struct mtx *mtx, struct usb_ext_status *ps, uint8_t port); usb_error_t usbd_req_reset_port(struct usb_device *udev, struct mtx *mtx, uint8_t port); usb_error_t usbd_req_warm_reset_port(struct usb_device *udev,