工具与软件:
您好!
我在使用以下函数通过 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 集线器信息、即使该器件已完全从主机中移除也是如此。
有什么想法吗?