Changeset b495a93 in mainline
- Timestamp:
- 2011-03-18T14:24:00Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- a83e138
- Parents:
- 73751c0
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/usbhub/usbhub.c
r73751c0 rb495a93 78 78 async_usleep(1000 * 1000 );/// \TODO proper number once 79 79 } 80 dprintf(USB_LOG_LEVEL_ERROR,81 "something in ctrl loop went wrong, errno %d",errorCode); 80 usb_log_error("something in ctrl loop went wrong, errno %d",errorCode); 81 82 82 return 0; 83 83 } … … 104 104 hub->device); 105 105 if(opResult != EOK){ 106 dprintf(USB_LOG_LEVEL_ERROR, 107 "could not initialize connection to hc, errno %d",opResult); 106 usb_log_error("could not initialize connection to hc, errno %d",opResult); 108 107 return opResult; 109 108 } … … 112 111 hub->device); 113 112 if(opResult != EOK){ 114 dprintf(USB_LOG_LEVEL_ERROR,115 "could not initialize connection to device, errno %d",opResult);113 usb_log_error("could not initialize connection to device, errno %d", 114 opResult); 116 115 return opResult; 117 116 } … … 120 119 &hub->device_connection); 121 120 if(opResult != EOK){ 122 dprintf(USB_LOG_LEVEL_ERROR,123 "could not initialize connection to device endpoint, errno %d",opResult);121 usb_log_error("could not initialize connection to device endpoint, errno %d", 122 opResult); 124 123 return opResult; 125 124 } … … 127 126 opResult = usb_endpoint_pipe_probe_default_control(&hub->endpoints.control); 128 127 if (opResult != EOK) { 129 dprintf(USB_LOG_LEVEL_ERROR,"failed probing endpoint 0, %d", opResult);128 usb_log_error("failed probing endpoint 0, %d", opResult); 130 129 return opResult; 131 130 } … … 151 150 &std_descriptor); 152 151 if(opResult!=EOK){ 153 dprintf(USB_LOG_LEVEL_ERROR,"could not get device descriptor, %d",opResult);154 return opResult; 155 } 156 dprintf(USB_LOG_LEVEL_INFO,"hub has %d configurations",152 usb_log_error("could not get device descriptor, %d",opResult); 153 return opResult; 154 } 155 usb_log_info("hub has %d configurations", 157 156 std_descriptor.configuration_count); 158 157 if(std_descriptor.configuration_count<1){ 159 dprintf(USB_LOG_LEVEL_ERROR,"THERE ARE NO CONFIGURATIONS AVAILABLE");158 usb_log_error("THERE ARE NO CONFIGURATIONS AVAILABLE"); 160 159 //shouldn`t I return? 161 160 } … … 184 183 return opResult; 185 184 } 186 dprintf(USB_LOG_LEVEL_DEBUG,"\tused configuration %d",185 usb_log_debug("\tused configuration %d", 187 186 config_descriptor->configuration_number); 188 187 … … 200 199 &hub->device_connection); 201 200 if (opResult != EOK) { 202 dprintf(USB_LOG_LEVEL_ERROR, 203 "Failed to initialize status change pipe: %s", 201 usb_log_error("Failed to initialize status change pipe: %s", 204 202 str_error(opResult)); 205 203 return opResult; 206 204 } 207 205 if (!endpoint_mapping[0].present) { 208 dprintf(USB_LOG_LEVEL_ERROR,"Not accepting device, " \206 usb_log_error("Not accepting device, " \ 209 207 "cannot understand what is happenning"); 210 208 return EREFUSED; … … 240 238 241 239 // get hub descriptor 242 dprintf(USB_LOG_LEVEL_DEBUG,"creating serialized descripton");240 usb_log_debug("creating serialized descripton"); 243 241 void * serialized_descriptor = malloc(USB_HUB_MAX_DESCRIPTOR_SIZE); 244 242 usb_hub_descriptor_t * descriptor; 245 dprintf(USB_LOG_LEVEL_DEBUG,"starting control transaction");243 usb_log_debug("starting control transaction"); 246 244 usb_endpoint_pipe_start_session(&result->endpoints.control); 247 245 opResult = usb_request_set_configuration(&result->endpoints.control, 1); … … 256 254 257 255 if (opResult != EOK) { 258 dprintf(USB_LOG_LEVEL_ERROR, "failed when receiving hub descriptor, badcode = %d",opResult); 256 usb_log_error("failed when receiving hub descriptor, badcode = %d", 257 opResult); 259 258 free(serialized_descriptor); 260 259 free(result); 261 260 return NULL; 262 261 } 263 dprintf(USB_LOG_LEVEL_DEBUG2,"deserializing descriptor");262 usb_log_debug2("deserializing descriptor"); 264 263 descriptor = usb_deserialize_hub_desriptor(serialized_descriptor); 265 264 if(descriptor==NULL){ 266 dprintf(USB_LOG_LEVEL_WARNING,"could not deserialize descriptor ");265 usb_log_warning("could not deserialize descriptor "); 267 266 free(result); 268 267 return NULL; 269 268 } 270 269 271 dprintf(USB_LOG_LEVEL_INFO,"setting port count to %d",descriptor->ports_count);270 usb_log_info("setting port count to %d",descriptor->ports_count); 272 271 result->port_count = descriptor->ports_count; 273 272 result->attached_devs = (usb_hc_attached_device_t*) … … 278 277 result->attached_devs[i].address=0; 279 278 } 280 dprintf(USB_LOG_LEVEL_DEBUG2,"freeing data");279 usb_log_debug2("freeing data"); 281 280 free(serialized_descriptor); 282 281 free(descriptor->devices_removable); … … 285 284 //finish 286 285 287 dprintf(USB_LOG_LEVEL_INFO,"hub info created");286 usb_log_info("hub info created"); 288 287 289 288 return result; … … 296 295 */ 297 296 int usb_add_hub_device(ddf_dev_t *dev) { 298 dprintf(USB_LOG_LEVEL_INFO,"add_hub_device(handle=%d)", (int) dev->handle);297 usb_log_info("add_hub_device(handle=%d)", (int) dev->handle); 299 298 300 299 //dev->ops = &hub_device_ops; … … 313 312 opResult = usb_hub_process_configuration_descriptors(hub_info); 314 313 if(opResult != EOK){ 315 dprintf(USB_LOG_LEVEL_ERROR,"could not get configuration descriptors, %d",314 usb_log_error("could not get configuration descriptors, %d", 316 315 opResult); 317 316 return opResult; … … 324 323 opResult = usb_endpoint_pipe_control_write(&hub_info->endpoints.control, 325 324 &request,sizeof(usb_device_request_setup_packet_t), NULL, 0); 326 dprintf(USB_LOG_LEVEL_INFO,"powering port %d",port);325 usb_log_info("powering port %d",port); 327 326 if (opResult != EOK) { 328 dprintf(USB_LOG_LEVEL_WARNING,"something went wrong when setting hub`s %dth port", port);327 usb_log_warning("something went wrong when setting hub`s %dth port", port); 329 328 } 330 329 } … … 337 336 usb_lst_append(&usb_hub_list, hub_info); 338 337 fibril_mutex_unlock(&usb_hub_list_lock); 339 dprintf(USB_LOG_LEVEL_DEBUG,"hub info added to list");340 341 dprintf(USB_LOG_LEVEL_DEBUG,"adding to ddf");338 usb_log_debug("hub info added to list"); 339 340 usb_log_debug("adding to ddf"); 342 341 ddf_fun_t *hub_fun = ddf_fun_create(dev, fun_exposed, "hub"); 343 342 assert(hub_fun != NULL); … … 351 350 fid_t fid = fibril_create(usb_hub_control_loop, hub_info); 352 351 if (fid == 0) { 353 dprintf(USB_LOG_LEVEL_ERROR, 354 ": failed to start monitoring fibril for new hub"); 352 usb_log_error("failed to start monitoring fibril for new hub"); 355 353 return ENOMEM; 356 354 } 357 355 fibril_add_ready(fid); 358 356 359 dprintf(USB_LOG_LEVEL_DEBUG,"hub fibril created");357 usb_log_debug("hub fibril created"); 360 358 //(void)hub_info; 361 359 //usb_hub_check_hub_changes(); 362 360 363 dprintf(USB_LOG_LEVEL_INFO,"hub dev added");361 usb_log_info("hub dev added"); 364 362 //address is lost... 365 dprintf(USB_LOG_LEVEL_DEBUG,"\taddress %d, has %d ports ",363 usb_log_debug("\taddress %d, has %d ports ", 366 364 //hub_info->endpoints.control., 367 365 hub_info->port_count); … … 388 386 usb_device_request_setup_packet_t request; 389 387 int opResult; 390 dprintf(USB_LOG_LEVEL_INFO,"some connection changed");388 usb_log_info("some connection changed"); 391 389 assert(hub->endpoints.control.hc_phone); 392 390 //get default address … … 395 393 396 394 if (opResult != EOK) { 397 dprintf(USB_LOG_LEVEL_WARNING,398 "cannot assign default address, it is probably used %d",opResult);395 usb_log_warning("cannot assign default address, it is probably used %d", 396 opResult); 399 397 return; 400 398 } … … 407 405 ); 408 406 if (opResult != EOK) { 409 dprintf(USB_LOG_LEVEL_ERROR, 410 "something went wrong when reseting a port %d",opResult); 407 usb_log_error("something went wrong when reseting a port %d",opResult); 411 408 //usb_hub_release_default_address(hc); 412 409 usb_hc_release_default_address(&hub->connection); … … 424 421 425 422 int opResult; 426 dprintf(USB_LOG_LEVEL_INFO,"finalizing add device");423 usb_log_info("finalizing add device"); 427 424 opResult = usb_hub_clear_port_feature(&hub->endpoints.control, 428 425 port, USB_HUB_FEATURE_C_PORT_RESET); 429 426 430 427 if (opResult != EOK) { 431 dprintf(USB_LOG_LEVEL_ERROR,"failed to clear port reset feature");428 usb_log_error("failed to clear port reset feature"); 432 429 usb_hc_release_default_address(&hub->connection); 433 430 return; … … 454 451 ); 455 452 if (new_device_address < 0) { 456 dprintf(USB_LOG_LEVEL_ERROR,"failed to get free USB address");453 usb_log_error("failed to get free USB address"); 457 454 opResult = new_device_address; 458 455 usb_hc_release_default_address(&hub->connection); 459 456 return; 460 457 } 461 dprintf(USB_LOG_LEVEL_INFO,"setting new address %d",new_device_address);458 usb_log_info("setting new address %d",new_device_address); 462 459 //opResult = usb_drv_req_set_address(hc, USB_ADDRESS_DEFAULT, 463 460 // new_device_address); … … 466 463 usb_endpoint_pipe_end_session(&new_device_pipe); 467 464 if (opResult != EOK) { 468 dprintf(USB_LOG_LEVEL_ERROR, 469 "could not set address for new device %d",opResult); 465 usb_log_error("could not set address for new device %d",opResult); 470 466 usb_hc_release_default_address(&hub->connection); 471 467 return; … … 486 482 487 483 if (opResult != EOK) { 488 dprintf(USB_LOG_LEVEL_ERROR, 489 "could not start driver for new device %d",opResult); 484 usb_log_error("could not start driver for new device %d",opResult); 490 485 return; 491 486 } … … 498 493 &hub->attached_devs[port]); 499 494 if (opResult != EOK) { 500 dprintf(USB_LOG_LEVEL_ERROR, 501 "could not assign address of device in hcd %d",opResult); 502 return; 503 } 504 dprintf(USB_LOG_LEVEL_INFO, "new device address %d, handle %zu", 495 usb_log_error("could not assign address of device in hcd %d",opResult); 496 return; 497 } 498 usb_log_info("new device address %d, handle %zu", 505 499 new_device_address, child_handle); 506 500 … … 533 527 */ 534 528 }else{ 535 dprintf(USB_LOG_LEVEL_WARNING,"this is strange, disconnected device had no address");529 usb_log_warning("this is strange, disconnected device had no address"); 536 530 //device was disconnected before it`s port was reset - return default address 537 531 //usb_drv_release_default_address(hc); … … 542 536 543 537 /** 544 * Process over current condition on port.538 * Process over current condition on port. 545 539 * 546 540 * Turn off the power on the port. … … 555 549 port, USB_HUB_FEATURE_PORT_POWER); 556 550 if(opResult!=EOK){ 557 dprintf(USB_LOG_LEVEL_ERROR,"cannot power off port %d; %d",551 usb_log_error("cannot power off port %d; %d", 558 552 port, opResult); 559 553 } … … 568 562 static void usb_hub_process_interrupt(usb_hub_info_t * hub, 569 563 uint16_t port) { 570 dprintf(USB_LOG_LEVEL_DEBUG,"interrupt at port %d", port);564 usb_log_debug("interrupt at port %d", port); 571 565 //determine type of change 572 566 usb_endpoint_pipe_t *pipe = &hub->endpoints.control; … … 587 581 ); 588 582 if (opResult != EOK) { 589 dprintf(USB_LOG_LEVEL_ERROR,"could not get port status");583 usb_log_error("could not get port status"); 590 584 return; 591 585 } 592 586 if (rcvd_size != sizeof (usb_port_status_t)) { 593 dprintf(USB_LOG_LEVEL_ERROR,"received status has incorrect size");587 usb_log_error("received status has incorrect size"); 594 588 return; 595 589 } … … 600 594 // TODO: check opResult 601 595 if (usb_port_dev_connected(&status)) { 602 dprintf(USB_LOG_LEVEL_INFO,"some connection changed");596 usb_log_info("some connection changed"); 603 597 usb_hub_init_add_device(hub, port, usb_port_low_speed(&status)); 604 598 } else { … … 612 606 usb_hub_over_current(hub,port); 613 607 }else{ 614 dprintf(USB_LOG_LEVEL_INFO,615 "over current condition was auto-resolved on port %d",port);608 usb_log_info("over current condition was auto-resolved on port %d", 609 port); 616 610 } 617 611 } 618 612 //port reset 619 613 if (usb_port_reset_completed(&status)) { 620 dprintf(USB_LOG_LEVEL_INFO,"port reset complete");614 usb_log_info("port reset complete"); 621 615 if (usb_port_enabled(&status)) { 622 616 usb_hub_finalize_add_device(hub, port, usb_port_low_speed(&status)); 623 617 } else { 624 dprintf(USB_LOG_LEVEL_WARNING,"port reset, but port still not enabled");618 usb_log_warning("port reset, but port still not enabled"); 625 619 } 626 620 } … … 631 625 usb_port_set_dev_connected(&status, false); 632 626 if (status>>16) { 633 dprintf(USB_LOG_LEVEL_INFO, "there was some unsupported change on port %d: %X",port,status); 634 635 } 636 /// \TODO handle other changes 627 usb_log_info("there was some unsupported change on port %d: %X", 628 port,status); 629 630 } 631 /// \TODO handle other changes - is there any? 637 632 } 638 633 … … 647 642 opResult = usb_endpoint_pipe_start_session(&hub_info->endpoints.status_change); 648 643 if(opResult != EOK){ 649 dprintf(USB_LOG_LEVEL_ERROR,650 "could not initialize communication for hub; %d",opResult);644 usb_log_error("could not initialize communication for hub; %d", 645 opResult); 651 646 return opResult; 652 647 } … … 669 664 if (opResult != EOK) { 670 665 free(change_bitmap); 671 dprintf(USB_LOG_LEVEL_WARNING,"something went wrong while getting status of hub");666 usb_log_warning("something went wrong while getting status of hub"); 672 667 usb_endpoint_pipe_end_session(&hub_info->endpoints.status_change); 673 668 return opResult; … … 676 671 opResult = usb_endpoint_pipe_start_session(&hub_info->endpoints.control); 677 672 if(opResult!=EOK){ 678 dprintf(USB_LOG_LEVEL_ERROR, "could not start control pipe session %d", 679 opResult); 673 usb_log_error("could not start control pipe session %d", opResult); 680 674 usb_endpoint_pipe_end_session(&hub_info->endpoints.status_change); 681 675 return opResult; … … 683 677 opResult = usb_hc_connection_open(&hub_info->connection); 684 678 if(opResult!=EOK){ 685 dprintf(USB_LOG_LEVEL_ERROR,"could not start host controller session %d",679 usb_log_error("could not start host controller session %d", 686 680 opResult); 687 681 usb_endpoint_pipe_end_session(&hub_info->endpoints.control);
Note:
See TracChangeset
for help on using the changeset viewer.