Changeset 37fce70 in mainline for uspace/drv/bus/usb/usbhub/usbhub.c
- Timestamp:
- 2018-01-21T20:12:10Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 36e8a0c8
- Parents:
- cd0cf81
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/bus/usb/usbhub/usbhub.c
rcd0cf81 r37fce70 299 299 } 300 300 301 static void usb_hub_power_ports(usb_hub_dev_t *hub_dev) 302 { 303 if (hub_dev->power_switched) { 304 usb_log_info("(%p): Power switching not supported, " 305 "ports always powered.", hub_dev); 306 return; 307 } 308 309 usb_log_info("(%p): Hub port power switching enabled (%s).", hub_dev, 310 hub_dev->per_port_power ? "per port" : "ganged"); 311 312 for (unsigned int port = 0; port < hub_dev->port_count; ++port) { 313 usb_log_debug("(%p): Powering port %u.", hub_dev, port + 1); 314 const int ret = usb_hub_set_port_feature(hub_dev, port + 1, USB_HUB_FEATURE_PORT_POWER); 315 316 if (ret != EOK) { 317 usb_log_error("(%p-%u): Cannot power on port: %s.", 318 hub_dev, hub_dev->ports[port].port_number, 319 str_error(ret)); 320 /* Continue to try at least other ports */ 321 } 322 } 323 } 324 301 325 /** 302 326 * Load hub-specific information into hub_dev structure and process if needed … … 360 384 descriptor.characteristics & HUB_CHAR_POWER_PER_PORT_FLAG; 361 385 362 if (!hub_dev->power_switched) { 363 usb_log_info("(%p): Power switching not supported, " 364 "ports always powered.", hub_dev); 365 return EOK; 366 } 367 368 usb_log_info("(%p): Hub port power switching enabled (%s).", hub_dev, 369 hub_dev->per_port_power ? "per port" : "ganged"); 370 371 for (unsigned int port = 0; port < hub_dev->port_count; ++port) { 372 usb_log_debug("(%p): Powering port %u.", hub_dev, port + 1); 373 const int ret = usb_hub_set_port_feature(hub_dev, port + 1, USB_HUB_FEATURE_PORT_POWER); 374 375 if (ret != EOK) { 376 usb_log_error("(%p-%u): Cannot power on port: %s.", 377 hub_dev, hub_dev->ports[port].port_number, 378 str_error(ret)); 379 } else { 380 if (!hub_dev->per_port_power) { 381 usb_log_debug("(%p) Ganged power switching, port %u is probably already powered.", hub_dev, port + 1); 382 } else { 383 usb_log_warning("(%p): Failed to power port %u.", hub_dev, port + 1); 384 } 385 } 386 } 386 usb_hub_power_ports(hub_dev); 387 387 388 return EOK; 388 389 }
Note:
See TracChangeset
for help on using the changeset viewer.