Changeset fb2ef35 in mainline
- Timestamp:
- 2011-12-11T20:17:05Z (13 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 4c67e52
- Parents:
- c6d5f08
- Location:
- uspace/drv/bus/usb/usbhub
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/bus/usb/usbhub/port.c
rc6d5f08 rfb2ef35 288 288 port->attached_device.fun = NULL; 289 289 290 ret = usb_hc_connection_open(&hub->connection); 291 if (ret == EOK) { 292 ret = usb_hc_unregister_device(&hub->connection, 293 port->attached_device.address); 294 if (ret != EOK) { 295 usb_log_warning("Failed to unregister address of the " 296 "removed device: %s.\n", str_error(ret)); 297 } 298 ret = usb_hc_connection_close(&hub->connection); 299 if (ret != EOK) { 300 usb_log_warning("Failed to close hc connection %s.\n", 301 str_error(ret)); 302 } 303 304 } else { 305 usb_log_warning("Failed to open hc connection %s.\n", 306 str_error(ret)); 290 ret = usb_hc_unregister_device(&hub->usb_device->hc_conn, 291 port->attached_device.address); 292 if (ret != EOK) { 293 usb_log_warning("Failed to unregister address of the " 294 "removed device: %s.\n", str_error(ret)); 307 295 } 308 296 … … 438 426 439 427 const int rc = usb_hc_new_device_wrapper(data->hub->usb_device->ddf_dev, 440 &data->hub-> connection, data->speed, enable_port_callback,428 &data->hub->usb_device->hc_conn, data->speed, enable_port_callback, 441 429 data->port, &new_address, NULL, NULL, &child_fun); 442 430 -
uspace/drv/bus/usb/usbhub/usbhub.c
rc6d5f08 rfb2ef35 99 99 fibril_condvar_initialize(&hub_dev->pending_ops_cv); 100 100 101 /* Create hc connection */ 102 usb_log_debug("Initializing USB wire abstraction.\n"); 103 int opResult = usb_hc_connection_initialize_from_device( 104 &hub_dev->connection, hub_dev->usb_device->ddf_dev); 105 if (opResult != EOK) { 106 usb_log_error("Could not initialize connection to device: %s\n", 101 102 int opResult = usb_pipe_start_long_transfer(&usb_dev->ctrl_pipe); 103 if (opResult != EOK) { 104 usb_log_error("Failed to start long ctrl pipe transfer: %s\n", 107 105 str_error(opResult)); 108 106 return opResult; … … 112 110 opResult = usb_set_first_configuration(usb_dev); 113 111 if (opResult != EOK) { 112 usb_pipe_end_long_transfer(&usb_dev->ctrl_pipe); 114 113 usb_log_error("Could not set hub configuration: %s\n", 115 114 str_error(opResult)); … … 120 119 opResult = usb_hub_process_hub_specific_info(hub_dev); 121 120 if (opResult != EOK) { 121 usb_pipe_end_long_transfer(&usb_dev->ctrl_pipe); 122 122 usb_log_error("Could process hub specific info, %s\n", 123 123 str_error(opResult)); … … 130 130 fun_exposed, HUB_FNC_NAME); 131 131 if (hub_dev->hub_fun == NULL) { 132 usb_pipe_end_long_transfer(&usb_dev->ctrl_pipe); 132 133 usb_log_error("Failed to create hub function.\n"); 133 134 return ENOMEM; … … 137 138 opResult = ddf_fun_bind(hub_dev->hub_fun); 138 139 if (opResult != EOK) { 140 usb_pipe_end_long_transfer(&usb_dev->ctrl_pipe); 139 141 usb_log_error("Failed to bind hub function: %s.\n", 140 142 str_error(opResult)); … … 148 150 usb_hub_polling_terminated_callback, hub_dev); 149 151 if (opResult != EOK) { 152 usb_pipe_end_long_transfer(&usb_dev->ctrl_pipe); 150 153 /* Function is already bound */ 151 154 ddf_fun_unbind(hub_dev->hub_fun); … … 159 162 hub_dev->usb_device->ddf_dev->name, hub_dev->port_count); 160 163 164 usb_pipe_end_long_transfer(&usb_dev->ctrl_pipe); 161 165 return EOK; 162 166 } -
uspace/drv/bus/usb/usbhub/usbhub.h
rc6d5f08 rfb2ef35 57 57 /** Port structures, one for each port */ 58 58 usb_hub_port_t *ports; 59 /** Connection to hcd */60 usb_hc_connection_t connection;61 59 /** Generic usb device data*/ 62 60 usb_device_t *usb_device;
Note:
See TracChangeset
for help on using the changeset viewer.