Changeset 0918382f in mainline for uspace/drv/bus/usb/usbhub/port.c
- Timestamp:
- 2013-08-07T15:00:36Z (12 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 14dd4c9
- Parents:
- 2757247
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/bus/usb/usbhub/port.c
r2757247 r0918382f 64 64 { 65 65 assert(port); 66 if (port-> attached_handle != USB_DEVICE_HANDLE_INVALID)66 if (port->device_attached) 67 67 return usb_hub_port_device_gone(port, hub); 68 68 return EOK; … … 139 139 assert(port); 140 140 assert(hub); 141 usb_log_debug("Interrupt at port % zu\n", port->port_number);141 usb_log_debug("Interrupt at port %u\n", port->port_number); 142 142 143 143 usb_port_status_t status = 0; 144 144 const int opResult = get_port_status(port, &status); 145 145 if (opResult != EOK) { 146 usb_log_error("Failed to get port % zu status: %s.\n",146 usb_log_error("Failed to get port %u status: %s.\n", 147 147 port->port_number, str_error(opResult)); 148 148 return; … … 153 153 const bool connected = 154 154 (status & USB_HUB_PORT_STATUS_CONNECTION) != 0; 155 usb_log_debug("Connection change on port % zu: device %s.\n",155 usb_log_debug("Connection change on port %u: device %s.\n", 156 156 port->port_number, connected ? "attached" : "removed"); 157 157 … … 169 169 if (opResult != EOK) { 170 170 usb_log_error( 171 "Cannot handle change on port % zu: %s.\n",171 "Cannot handle change on port %u: %s.\n", 172 172 port->port_number, str_error(opResult)); 173 173 } … … 183 183 /* Enable change, ports are automatically disabled on errors. */ 184 184 if (status & USB_HUB_PORT_C_STATUS_ENABLED) { 185 usb_log_info("Port % zu, disabled because of errors.\n",185 usb_log_info("Port %u, disabled because of errors.\n", 186 186 port->port_number); 187 187 usb_hub_port_device_gone(port, hub); … … 190 190 if (rc != EOK) { 191 191 usb_log_error( 192 "Failed to clear port % zu enable change feature: "192 "Failed to clear port %u enable change feature: " 193 193 "%s.\n", port->port_number, str_error(rc)); 194 194 } … … 198 198 /* Suspend change */ 199 199 if (status & USB_HUB_PORT_C_STATUS_SUSPEND) { 200 usb_log_error("Port % zu went to suspend state, this should"200 usb_log_error("Port %u went to suspend state, this should" 201 201 "NOT happen as we do not support suspend state!", 202 202 port->port_number); … … 205 205 if (rc != EOK) { 206 206 usb_log_error( 207 "Failed to clear port % zu suspend change feature: "207 "Failed to clear port %u suspend change feature: " 208 208 "%s.\n", port->port_number, str_error(rc)); 209 209 } … … 221 221 if (rc != EOK) { 222 222 usb_log_error( 223 "Failed to clear port % zu OC change feature: %s.\n",223 "Failed to clear port %u OC change feature: %s.\n", 224 224 port->port_number, str_error(rc)); 225 225 } … … 229 229 if (rc != EOK) { 230 230 usb_log_error( 231 "Failed to set port % zu power after OC:"231 "Failed to set port %u power after OC:" 232 232 " %s.\n", port->port_number, str_error(rc)); 233 233 } … … 240 240 } 241 241 242 usb_log_debug("Port % zu status 0x%08" PRIx32 "\n",242 usb_log_debug("Port %u status %#08" PRIx32 "\n", 243 243 port->port_number, status); 244 244 } … … 260 260 if (!exch) 261 261 return ENOMEM; 262 const int rc = usb_device_remove(exch, port-> attached_handle);262 const int rc = usb_device_remove(exch, port->port_number); 263 263 usb_device_bus_exchange_end(exch); 264 264 if (rc == EOK) 265 port-> attached_handle = -1;265 port->device_attached = false; 266 266 return rc; 267 267 … … 286 286 287 287 if (port->reset_okay) { 288 usb_log_debug("Port % zu reset complete.\n", port->port_number);288 usb_log_debug("Port %u reset complete.\n", port->port_number); 289 289 } else { 290 290 usb_log_warning( 291 "Port % zu reset complete but port not enabled.\n",291 "Port %u reset complete but port not enabled.\n", 292 292 port->port_number); 293 293 } … … 299 299 if (rc != EOK) { 300 300 usb_log_error( 301 "Failed to clear port % zu reset change feature: %s.\n",301 "Failed to clear port %u reset change feature: %s.\n", 302 302 port->port_number, str_error(rc)); 303 303 } … … 407 407 port_enable(port, true); 408 408 if (!port->reset_completed || !port->reset_okay) { 409 usb_log_error("Failed to reset port % zu\n", port->port_number);409 usb_log_error("Failed to reset port %u\n", port->port_number); 410 410 if (usb_release_default_address(exch) != EOK) 411 411 usb_log_warning("Failed to release default address\n"); … … 414 414 } 415 415 416 ret = usb_device_enumerate(exch, &port->attached_handle);416 ret = usb_device_enumerate(exch, port->port_number); 417 417 if (ret != EOK) { 418 usb_log_error("Failed to reset port %zu\n", port->port_number); 418 usb_log_error("Failed to enumerate device on port %u\n", 419 port->port_number); 419 420 if (port_enable(port, false) != EOK) { 420 usb_log_warning("Failed to disable port % zu, NOT "421 usb_log_warning("Failed to disable port %u, NOT " 421 422 "releasing default address.\n", port->port_number); 422 423 } else { … … 426 427 } 427 428 } else { 429 port->device_attached = true; 428 430 if (usb_release_default_address(exch) != EOK) 429 431 usb_log_warning("Failed to release default address\n");
Note:
See TracChangeset
for help on using the changeset viewer.