mirror of
https://github.com/freebsd/freebsd-src.git
synced 2026-11-07 04:36:52 -10:00
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
This commit is contained in:
1 parent
1fe552b036
commit
1928debe1a
2 files changed
+25
No files matched your search
@@ -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
|
||||
*
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in new issue
Block a user