Changes in uspace/drv/usbhub/utils.c [39c3d95d:9223dc5c] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/usbhub/utils.c
r39c3d95d r9223dc5c 352 352 result->port_count = descriptor->ports_count; 353 353 result->attached_devs = (usb_hub_attached_device_t*) 354 malloc( result->port_count* sizeof(usb_hub_attached_device_t));354 malloc((result->port_count+1) * sizeof(usb_hub_attached_device_t)); 355 355 int i; 356 for(i=0;i<result->port_count ;++i){356 for(i=0;i<result->port_count+1;++i){ 357 357 result->attached_devs[i].devman_handle=0; 358 358 result->attached_devs[i].address=0; … … 428 428 429 429 430 for (port = 0; port < hub_info->port_count; ++port) {430 for (port = 1; port < hub_info->port_count+1; ++port) { 431 431 usb_hub_set_power_port_request(&request, port); 432 432 opResult = usb_drv_sync_control_write(hc, target, &request, NULL, 0); 433 printf("[usb_hub] powering port %d\n",port); 433 434 if (opResult != EOK) { 434 435 printf("[usb_hub]something went wrong when setting hub`s %dth port\n", port); … … 540 541 return; 541 542 } 543 printf("[usb_hub] new device address %d, handle %d\n", 544 new_device_address, child_handle); 545 sleep(60); 542 546 543 547 } … … 638 642 usb_port_set_dev_connected(&status, false); 639 643 if (status) { 640 printf("[usb_hub]there was some unsupported change on port \n");644 printf("[usb_hub]there was some unsupported change on port %d\n",port); 641 645 } 642 646 /// \TODO handle other changes … … 675 679 target.address = hub_info->usb_device->address; 676 680 target.endpoint = 1;/// \TODO get from endpoint descriptor 681 printf("checking changes for hub at addr %d \n",target.address); 677 682 678 683 size_t port_count = hub_info->port_count; … … 687 692 688 693 // FIXME: count properly 689 size_t byte_length = ( port_count/ 8) + 1;694 size_t byte_length = ((port_count+1) / 8) + 1; 690 695 691 696 void *change_bitmap = malloc(byte_length); … … 707 712 } 708 713 unsigned int port; 709 for (port = 0; port < port_count; ++port) {714 for (port = 1; port < port_count+1; ++port) { 710 715 bool interrupt = (((uint8_t*) change_bitmap)[port / 8] >> (port % 8)) % 2; 711 716 if (interrupt) {
Note:
See TracChangeset
for help on using the changeset viewer.