Changeset 51a51be in mainline for uspace/drv/bus/usb/usbhub/port.c
- Timestamp:
- 2018-01-16T21:19:37Z (8 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 1d218bf
- Parents:
- 4603b35
- File:
-
- 1 edited
-
uspace/drv/bus/usb/usbhub/port.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/bus/usb/usbhub/port.c
r4603b35 r51a51be 243 243 } 244 244 245 /* Reserve default address 246 * TODO: Make the request synchronous. 247 */ 248 while ((err = usbhc_reserve_default_address(exch)) == EAGAIN) { 249 fibril_condvar_wait_timeout(&port->state_cv, &port->guard, 500000); 250 if (port->state != PORT_CONNECTED) { 251 assert(port->state == PORT_ERROR); 252 port_change_state(port, PORT_DISABLED); 253 goto out_exch; 254 } 255 } 245 /* Reserve default address */ 246 err = usb_hub_reserve_default_address(port->hub, exch, &port->guard); 256 247 if (err != EOK) { 257 248 port_log(error, port, "Failed to reserve default address: %s", str_error(err)); 249 port_change_state(port, PORT_DISABLED); 250 goto out_exch; 251 } 252 253 /* Reservation of default address could have blocked */ 254 if (port->state != PORT_CONNECTED) { 255 assert(port->state == PORT_ERROR); 256 port_change_state(port, PORT_DISABLED); 258 257 goto out_exch; 259 258 } … … 282 281 if (port->state != PORT_ENABLED) 283 282 usb_hub_clear_port_feature(port->hub, port->port_number, USB_HUB_FEATURE_C_PORT_ENABLE); 284 285 283 out_address: 286 if ((err = usbhc_release_default_address(exch))) 287 port_log(error, port, "Failed to release default address: %s", str_error(err)); 288 284 usb_hub_release_default_address(port->hub, exch); 289 285 out_exch: 290 286 usb_device_bus_exchange_end(exch); 291 292 287 out: 293 288 assert(port->state == PORT_ENABLED || port->state == PORT_DISABLED);
Note:
See TracChangeset
for help on using the changeset viewer.
