Changeset 8123695a in mainline for uspace/drv/usbhub
- Timestamp:
- 2011-04-02T16:07:29Z (15 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 322a8066
- Parents:
- c6ba274
- Location:
- uspace/drv/usbhub
- Files:
-
- 2 edited
-
port_status.h (modified) (1 diff)
-
usbhub.c (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/usbhub/port_status.h
rc6ba274 r8123695a 95 95 } 96 96 97 /** 98 * set the device request to be a port feature clear request 99 * @param request 100 * @param port 101 * @param feature_selector 102 */ 103 static inline void usb_hub_set_disable_port_feature_request( 104 usb_device_request_setup_packet_t * request, uint16_t port, 105 uint16_t feature_selector 106 ){ 107 request->index = port; 108 request->request_type = USB_HUB_REQ_TYPE_SET_PORT_FEATURE; 109 request->request = USB_HUB_REQUEST_CLEAR_FEATURE; 110 request->value = feature_selector; 111 request->length = 0; 112 } 97 113 98 114 /** -
uspace/drv/usbhub/usbhub.c
rc6ba274 r8123695a 317 317 //set the status change bit, so it will be noticed in driver loop 318 318 if(usb_port_dev_connected(&status)){ 319 usb_hub_set_ enable_port_feature_request(&request, port,320 USB_HUB_FEATURE_ C_PORT_CONNECTION);319 usb_hub_set_disable_port_feature_request(&request, port, 320 USB_HUB_FEATURE_PORT_CONNECTION); 321 321 opResult = usb_pipe_control_read( 322 322 hub->control_pipe, … … 326 326 if (opResult != EOK) { 327 327 usb_log_warning( 328 "could not set port changeon port %d errno:%d\n",328 "could not clear port connection on port %d errno:%d\n", 329 329 port, opResult); 330 330 } 331 usb_log_debug("cleared port connection\n"); 332 usb_hub_set_enable_port_feature_request(&request, port, 333 USB_HUB_FEATURE_PORT_ENABLE); 334 opResult = usb_pipe_control_read( 335 hub->control_pipe, 336 &request, sizeof(usb_device_request_setup_packet_t), 337 &status, 4, &rcvd_size 338 ); 339 if (opResult != EOK) { 340 usb_log_warning( 341 "could not set port enabled on port %d errno:%d\n", 342 port, opResult); 343 } 344 usb_log_debug("port set to enabled - should lead to connection change\n"); 331 345 } 332 346 } … … 613 627 //something connected/disconnected 614 628 if (usb_port_connect_change(&status)) { 629 usb_log_debug("connection change on port\n"); 615 630 if (usb_port_dev_connected(&status)) { 616 631 usb_log_debug("some connection changed\n"); … … 623 638 if (usb_port_overcurrent_change(&status)) { 624 639 //check if it was not auto-resolved 640 usb_log_debug("overcurrent change on port\n"); 625 641 if(usb_port_over_current(&status)){ 626 642 usb_hub_over_current(hub,port); … … 639 655 } 640 656 } 657 usb_log_debug("status %x\n ",status); 641 658 642 659 usb_port_set_connect_change(&status, false);
Note:
See TracChangeset
for help on using the changeset viewer.
