Changeset a5b3de6 in mainline for uspace/lib/usbhost/src/usb2_bus.c
- Timestamp:
- 2017-10-25T11:55:15Z (8 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 2b35478
- Parents:
- c3d926f3
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/usbhost/src/usb2_bus.c
rc3d926f3 ra5b3de6 273 273 usb2_bus_t *bus = bus_to_usb2_bus(bus_base); 274 274 275 if (!usb_address_is_valid(target.address)) 276 return NULL; 275 assert(device->address == target.address); 277 276 278 277 list_foreach(*get_list(bus, target.address), link, endpoint_t, ep) { … … 280 279 || (ep->direction == USB_DIRECTION_BOTH) 281 280 || (direction == USB_DIRECTION_BOTH)) 282 && (target. packed == ep->target.packed))281 && (target.endpoint == ep->endpoint)) 283 282 return ep; 284 283 } … … 296 295 } 297 296 297 static usb_target_t usb2_ep_to_target(endpoint_t *ep) 298 { 299 assert(ep); 300 assert(ep->device); 301 302 return (usb_target_t) {{ 303 .address = ep->device->address, 304 .endpoint = ep->endpoint, 305 }}; 306 } 307 298 308 /** Register an endpoint to the bus. Reserves bandwidth. 299 309 * @param bus usb_bus structure, non-null. … … 308 318 309 319 /* Extract USB2-related information from endpoint_desc */ 310 ep->target = (usb_target_t) {{ 311 .address = ep->device->address, 312 .endpoint = desc->endpoint_no, 313 }}; 320 ep->endpoint = desc->endpoint_no; 314 321 ep->direction = desc->direction; 315 322 ep->transfer_type = desc->transfer_type; … … 320 327 321 328 /* Check for existence */ 322 if (usb2_bus_find_ep(bus_base, ep->device, ep->target, ep->direction))329 if (usb2_bus_find_ep(bus_base, ep->device, usb2_ep_to_target(ep), ep->direction)) 323 330 return EEXIST; 324 331 … … 356 363 357 364 list_foreach(*get_list(bus, target.address), link, endpoint_t, ep) { 358 if ((ep->target.address == target.address) 359 && (all || ep->target.endpoint == target.endpoint)) { 365 assert(ep->device->address == target.address); 366 367 if (all || ep->endpoint == target.endpoint) { 360 368 endpoint_toggle_set(ep, 0); 361 369 ret = EOK; … … 386 394 endpoint_t *ep = list_get_instance(link, endpoint_t, link); 387 395 link = list_next(link, list); 388 assert(ep->target.address == address); 396 397 assert(ep->device->address == address); 389 398 list_remove(&ep->link); 390 399 391 400 usb_log_warning("Endpoint %d:%d %s was left behind, removing.\n", 392 ep->target.address, ep->target.endpoint, usb_str_direction(ep->direction));401 address, ep->endpoint, usb_str_direction(ep->direction)); 393 402 394 403 /* Drop bus reference */
Note:
See TracChangeset
for help on using the changeset viewer.