TUSB4041I: Device infomation still exists in linux 6.8.0 after power off using usb control

Part Number: TUSB4041I

Tool/software:

Hi,

   I have encounter an issue while controlling TUSB4041I hub power off through libusb_control_transfer comand using below function

/*
 * 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;
}

while power off one of the usb hub, the usb hub information still exists inside the linux even when the device is removed entirely from the host machine.

Is there any idea about it?