Changeset eeca8a6 in mainline for uspace/lib/usbhost/src/ddf_helpers.c
- Timestamp:
- 2018-01-16T19:22:58Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 4603b35
- Parents:
- 47e9494
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/usbhost/src/ddf_helpers.c
r47e9494 reeca8a6 117 117 * 118 118 * @param fun DDF function of the device (hub) requesting the address. 119 * @param speed An USB speed of the device for which the address is reserved. 120 */ 121 static int reserve_default_address(ddf_fun_t *fun, usb_speed_t speed) 119 */ 120 static int reserve_default_address(ddf_fun_t *fun) 122 121 { 123 122 assert(fun); … … 128 127 assert(dev); 129 128 130 usb_log_debug("Device %d requested default address at %s speed", 131 dev->address, usb_str_speed(speed)); 132 return bus_reserve_default_address(hcd->bus, speed); 129 usb_log_debug("Device %d requested default address", dev->address); 130 return bus_reserve_default_address(hcd->bus, dev); 133 131 } 134 132 … … 148 146 149 147 usb_log_debug("Device %d released default address", dev->address); 150 bus_release_default_address(hcd->bus );148 bus_release_default_address(hcd->bus, dev); 151 149 152 150 return EOK; … … 157 155 * 158 156 * @param fun DDF function of the device (hub) requesting the address. 159 */ 160 static int device_enumerate(ddf_fun_t *fun, unsigned port) 157 * @param speed USB speed of the new device 158 */ 159 static int device_enumerate(ddf_fun_t *fun, unsigned port, usb_speed_t speed) 161 160 { 162 161 assert(fun); … … 170 169 int err; 171 170 172 usb_log_debug("Hub %d reported a new USBdevice on port: %u",173 hub->address, port);174 175 device_t *dev = hcd_ddf_fun_create(hcd );171 usb_log_debug("Hub %d reported a new %s device on port: %u", 172 hub->address, usb_str_speed(speed), port); 173 174 device_t *dev = hcd_ddf_fun_create(hcd, speed); 176 175 if (!dev) { 177 176 usb_log_error("Failed to create USB device function."); … … 181 180 dev->hub = hub; 182 181 dev->port = port; 182 dev->speed = speed; 183 183 184 184 if ((err = bus_device_enumerate(dev))) { … … 380 380 } 381 381 382 device_t *hcd_ddf_fun_create(hc_device_t *hc )382 device_t *hcd_ddf_fun_create(hc_device_t *hc, usb_speed_t speed) 383 383 { 384 384 /* Create DDF function for the new device */ … … 398 398 bus_device_init(dev, hc->bus); 399 399 dev->fun = fun; 400 dev->speed = speed; 400 401 return dev; 401 402 } … … 464 465 assert(hcd); 465 466 466 if ((err = bus_reserve_default_address(hcd->bus, USB_SPEED_MAX))) { 467 usb_log_error("Failed to reserve default address for roothub setup: %s", str_error(err)); 468 return err; 469 } 470 471 device_t *dev = hcd_ddf_fun_create(hcd); 467 device_t *dev = hcd_ddf_fun_create(hcd, USB_SPEED_MAX); 472 468 if (!dev) { 473 469 usb_log_error("Failed to create function for the root hub."); 474 goto err_default_address;470 return ENOMEM; 475 471 } 476 472 … … 488 484 } 489 485 490 bus_release_default_address(hcd->bus);491 486 return EOK; 492 487 … … 495 490 err_usb_dev: 496 491 hcd_ddf_fun_destroy(dev); 497 err_default_address:498 bus_release_default_address(hcd->bus);499 492 return err; 500 493 }
Note:
See TracChangeset
for help on using the changeset viewer.