Bladeren bron

Hub: Unplug downstream devices on non-root hub disconnect

Ryzee119 3 jaren geleden
bovenliggende
commit
b7c8cb3c41
1 gewijzigde bestanden met toevoegingen van 6 en 0 verwijderingen
  1. 6 0
      src/host/usbh.c

+ 6 - 0
src/host/usbh.c

@@ -1107,6 +1107,12 @@ static void process_device_unplugged(uint8_t rhport, uint8_t hub_addr, uint8_t h
     {
       TU_LOG2("  Address = %u\r\n", dev_addr);
 
+      // If the device itself is a usb hub, unplug downstream devices.
+      if (dev_addr > CFG_TUH_DEVICE_MAX)
+      {
+        process_device_unplugged(rhport, dev_addr, 0);
+      }
+
       // Invoke callback before close driver
       if (tuh_umount_cb) tuh_umount_cb(dev_addr);