Other Parts Discussed in Thread: TUSB4041I
工具与软件:
您好!
我在使用以下函数通过 libusb_control_transfer 命令控制 TUSB4041I 集线器电源关闭时遇到问题
/*
* Use a control transfer via libusb to turn a port off/on.
* Returns >= 0 on success.
*/
static int set_port_status_libusb(struct libusb_device_handle *devh, int port, int on)
{
int rc = 0;
int request = on ? LIBUSB_REQUEST_SET_FEATURE
: LIBUSB_REQUEST_CLEAR_FEATURE;
int repeat = on ? 1 : opt_repeat;
while (repeat-- > 0) {
rc = libusb_control_transfer(devh,
LIBUSB_REQUEST_TYPE_CLASS | LIBUSB_RECIPIENT_OTHER,
request, USB_PORT_FEAT_POWER,
port, NULL, 0, USB_CTRL_GET_TIMEOUT
);
if (rc < 0) {
perror("Failed to control port power!\n");
}
if (repeat > 0) {
sleep_ms(opt_wait);
}
}
return rc;
}
关闭其中一个 USB 集线器电源后、Linux 内仍然存在 USB 集线器信息、即使该器件已完全从主机中移除也是如此。
有什么想法吗?
