Changeset 31cca4f3 in mainline for uspace/drv/bus/usb/xhci/rh.c
- Timestamp:
- 2017-10-23T18:37:53Z (6 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- e160bfe8
- Parents:
- 81487c4a
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/bus/usb/xhci/rh.c
r81487c4a r31cca4f3 315 315 } 316 316 317 /* TODO: Figure out how to handle errors here. So far, they are reported and skipped. */ 318 317 319 /* Make DDF (and all drivers) forget about the device. */ 318 320 if ((err = ddf_fun_unbind(dev->base.fun))) { … … 321 323 } 322 324 323 /* FIXME: 324 * A deadlock happens on the previous line. For some reason, the HID driver 325 * does not fully release its DDF function (tracked it down to release_endpoint 326 * in usb_remote.c so far). 327 * 328 * For that reason as well, the following 3 lines are untested. 329 */ 330 331 xhci_bus_remove_device(&rh->hc->bus, rh->hc, &dev->base); 332 hc_disable_slot(rh->hc, dev->slot_id); 325 // TODO: Remove EP0. 326 // TODO: Deconfigure device. 327 328 /* Remove device from XHCI bus. */ 329 if ((err = xhci_bus_remove_device(&rh->hc->bus, rh->hc, &dev->base))) { 330 usb_log_warning("Failed to remove device '%s' from XHCI bus: %s", 331 ddf_fun_get_name(dev->base.fun), str_error(err)); 332 } 333 334 /* Disable device slot. */ 335 if ((err = hc_disable_slot(rh->hc, dev->slot_id))) { 336 usb_log_warning("Failed to disable slot for device '%s': %s", 337 ddf_fun_get_name(dev->base.fun), str_error(err)); 338 } 339 340 /* Destroy DDF device. */ 333 341 hcd_ddf_device_destroy(&dev->base); 334 342
Note:
See TracChangeset
for help on using the changeset viewer.