Changeset 90994fa in mainline
- Timestamp:
- 2011-10-12T20:03:36Z (13 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 162726b
- Parents:
- 205f0766
- Location:
- uspace
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/bus/usb/uhcirh/port.c
r205f0766 r90994fa 100 100 port->number = number; 101 101 port->wait_period_usec = usec; 102 port->attached_device. handle = 0;102 port->attached_device.fun = NULL; 103 103 port->attached_device.address = -1; 104 104 port->rh = rh; … … 169 169 170 170 /* Remove any old device */ 171 if (instance->attached_device. handle) {171 if (instance->attached_device.fun) { 172 172 usb_log_debug2("%s: Removing device.\n", 173 173 instance->id_string); … … 261 261 ret = usb_hc_new_device_wrapper(port->rh, &port->hc_connection, 262 262 speed, uhci_port_reset_enable, port->number, port, 263 &port->attached_device.address, 264 &port->attached_device. handle, NULL, NULL, NULL);263 &port->attached_device.address, NULL, NULL, NULL, 264 &port->attached_device.fun); 265 265 } while (ret != EOK && ++count < 4); 266 266 … … 274 274 usb_log_info("New device at port %u, address %d (handle %" PRIun ").\n", 275 275 port->number, port->attached_device.address, 276 port->attached_device. handle);276 port->attached_device.fun->handle); 277 277 return EOK; 278 278 } … … 287 287 assert(port); 288 288 /* There is nothing to remove. */ 289 if (port->attached_device. handle == 0) {289 if (port->attached_device.fun == NULL) { 290 290 usb_log_warning("%s: Removed a ghost device.\n", 291 291 port->id_string); … … 297 297 298 298 /* Stop driver first */ 299 int ret = d evman_remove_function(port->attached_device.handle);299 int ret = ddf_fun_unbind(port->attached_device.fun); 300 300 if (ret != EOK) { 301 301 usb_log_error("%s: Failed to remove child function: %s.\n", … … 303 303 return ret; 304 304 } 305 port->attached_device.handle = 0; 305 ddf_fun_destroy(port->attached_device.fun); 306 port->attached_device.fun = NULL; 306 307 307 308 /* Driver stopped, free used address */ -
uspace/drv/bus/usb/usbhub/port.c
r205f0766 r90994fa 257 257 usb_log_debug("Removing device on port %zu.\n", 258 258 port->port_number); 259 const int ret = 260 devman_remove_function(port->attached_device.handle); 259 const int ret = ddf_fun_unbind(port->attached_device.fun); 261 260 if (ret == EOK) { 261 ddf_fun_destroy(port->attached_device.fun); 262 262 const int ret = 263 263 usb_hc_unregister_device(&hub->connection, … … 269 269 } 270 270 } else { 271 usb_log_error("Failed to removechild function on port"271 usb_log_error("Failed to unbind child function on port" 272 272 " %zu: %s.\n", port->port_number, str_error(ret)); 273 273 } 274 274 port->attached_device.address = -1; 275 port->attached_device. handle = 0;275 port->attached_device.fun = NULL; 276 276 fibril_mutex_unlock(&port->mutex); 277 277 usb_log_info("Removed device on port %zu.\n", … … 418 418 419 419 usb_address_t new_address; 420 d evman_handle_t child_handle;420 ddf_fun_t *child_fun; 421 421 422 422 const int rc = usb_hc_new_device_wrapper(data->hub->usb_device->ddf_dev, 423 423 &data->hub->connection, data->speed, 424 424 enable_port_callback, (int) data->port->port_number, 425 data->port, &new_address, &child_handle,426 NULL, NULL, NULL);425 data->port, &new_address, NULL, 426 NULL, NULL, &child_fun); 427 427 428 428 if (rc != EOK) { … … 433 433 434 434 fibril_mutex_lock(&data->port->mutex); 435 data->port->attached_device. handle = child_handle;435 data->port->attached_device.fun = child_fun; 436 436 data->port->attached_device.address = new_address; 437 437 fibril_mutex_unlock(&data->port->mutex); … … 440 440 "address %d (handle %" PRIun ").\n", 441 441 data->hub->usb_device->ddf_dev->name, data->port->port_number, 442 new_address, child_ handle);442 new_address, child_fun->handle); 443 443 444 444 leave: -
uspace/drv/bus/usb/usbhub/port.h
r205f0766 r90994fa 70 70 assert(port); 71 71 port->attached_device.address = -1; 72 port->attached_device. handle = 0;72 port->attached_device.fun = NULL; 73 73 port->port_number = port_number; 74 74 port->control_pipe = control_pipe; -
uspace/lib/usbdev/include/usb/dev/hub.h
r205f0766 r90994fa 38 38 #define LIBUSBDEV_HUB_H_ 39 39 40 #include <ddf/driver.h> 40 41 #include <sys/types.h> 41 42 #include <usb/hc.h> … … 55 56 /** Device address. */ 56 57 usb_address_t address; 57 /** D evman handleof the device. */58 d evman_handle_t handle;58 /** DDF function (external) of the device. */ 59 ddf_fun_t *fun; 59 60 } usb_hub_attached_device_t; 60 61 -
uspace/lib/usbdev/src/hub.c
r205f0766 r90994fa 105 105 int rc = async_req_3_0(exch, DEV_IFACE_ID(USBHC_DEV_IFACE), 106 106 IPC_M_USBHC_BIND_ADDRESS, 107 attached_device->address, attached_device-> handle);107 attached_device->address, attached_device->fun->handle); 108 108 async_exchange_end(exch); 109 109 … … 320 320 */ 321 321 /* FIXME: create device_register that will get opened ctrl pipe. */ 322 d evman_handle_t child_handle;322 ddf_fun_t *child_fun; 323 323 rc = usb_device_register_child_in_devman(dev_addr, dev_conn.hc_handle, 324 parent, &child_handle,325 dev_ops, new_dev_data, new_fun);324 parent, NULL, 325 dev_ops, new_dev_data, &child_fun); 326 326 if (rc != EOK) { 327 327 rc = ESTALL; … … 334 334 usb_hub_attached_device_t new_device = { 335 335 .address = dev_addr, 336 . handle = child_handle336 .fun = child_fun, 337 337 }; 338 338 rc = usb_hc_register_device(&hc_conn, &new_device); … … 351 351 } 352 352 if (assigned_handle != NULL) { 353 *assigned_handle = child_handle; 353 *assigned_handle = child_fun->handle; 354 } 355 if (new_fun != NULL) { 356 *new_fun = child_fun; 354 357 } 355 358
Note:
See TracChangeset
for help on using the changeset viewer.