Changes in uspace/drv/usbhub/usbhub.c [fbefd0e:09daa8b] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/usbhub/usbhub.c
rfbefd0e r09daa8b 132 132 return opResult; 133 133 } 134 usb_log_ debug("setting port count to %d\n",descriptor->ports_count);134 usb_log_info("setting port count to %d\n",descriptor->ports_count); 135 135 hub_info->port_count = descriptor->ports_count; 136 136 hub_info->attached_devs = (usb_hc_attached_device_t*) … … 157 157 static int usb_hub_set_configuration(usb_hub_info_t * hub_info){ 158 158 //device descriptor 159 usb_standard_device_descriptor_t *std_descriptor 160 = &hub_info->usb_device->descriptors.device; 161 usb_log_debug("hub has %d configurations\n", 162 std_descriptor->configuration_count); 163 if(std_descriptor->configuration_count<1){ 159 usb_standard_device_descriptor_t std_descriptor; 160 int opResult = usb_request_get_device_descriptor( 161 &hub_info->usb_device->ctrl_pipe, 162 &std_descriptor); 163 if(opResult!=EOK){ 164 usb_log_error("could not get device descriptor, %d\n",opResult); 165 return opResult; 166 } 167 usb_log_info("hub has %d configurations\n", 168 std_descriptor.configuration_count); 169 if(std_descriptor.configuration_count<1){ 164 170 usb_log_error("THERE ARE NO CONFIGURATIONS AVAILABLE\n"); 165 171 //shouldn`t I return? 166 //definitely 167 return EINVAL; 168 } 169 172 } 173 174 /* Retrieve full configuration descriptor. */ 175 uint8_t *descriptors = NULL; 176 size_t descriptors_size = 0; 177 opResult = usb_request_get_full_configuration_descriptor_alloc( 178 &hub_info->usb_device->ctrl_pipe, 0, 179 (void **) &descriptors, &descriptors_size); 180 if (opResult != EOK) { 181 usb_log_error("Could not get configuration descriptor: %s.\n", 182 str_error(opResult)); 183 return opResult; 184 } 170 185 usb_standard_configuration_descriptor_t *config_descriptor 171 = (usb_standard_configuration_descriptor_t *) 172 hub_info->usb_device->descriptors.configuration; 186 = (usb_standard_configuration_descriptor_t *) descriptors; 173 187 174 188 /* Set configuration. */ 175 int opResult = usb_request_set_configuration( 176 &hub_info->usb_device->ctrl_pipe, 189 opResult = usb_request_set_configuration(&hub_info->usb_device->ctrl_pipe, 177 190 config_descriptor->configuration_number); 178 191 … … 184 197 usb_log_debug("\tused configuration %d\n", 185 198 config_descriptor->configuration_number); 186 199 free(descriptors); 187 200 return EOK; 188 201 } … … 211 224 } 212 225 213 usb_ pipe_start_session(hub_info->control_pipe);226 usb_endpoint_pipe_start_session(hub_info->control_pipe); 214 227 //set hub configuration 215 228 opResult = usb_hub_set_configuration(hub_info); … … 226 239 return opResult; 227 240 } 228 usb_ pipe_end_session(hub_info->control_pipe);241 usb_endpoint_pipe_end_session(hub_info->control_pipe); 229 242 230 243 231 244 /// \TODO what is this? 232 usb_log_debug(" Creating `hub' function.\n");245 usb_log_debug("adding to ddf"); 233 246 ddf_fun_t *hub_fun = ddf_fun_create(hub_info->usb_device->ddf_dev, 234 247 fun_exposed, "hub"); … … 244 257 fid_t fid = fibril_create(usb_hub_control_loop, hub_info); 245 258 if (fid == 0) { 246 usb_log_error("failed to start monitoring fibril for new hub .\n");259 usb_log_error("failed to start monitoring fibril for new hub"); 247 260 return ENOMEM; 248 261 } 249 262 fibril_add_ready(fid); 250 usb_log_debug("Hub fibril created.\n"); 251 252 usb_log_info("Controlling hub `%s' (%d ports).\n", 253 hub_info->usb_device->ddf_dev->name, hub_info->port_count); 263 usb_log_debug("hub fibril created"); 264 usb_log_debug("has %d ports ",hub_info->port_count); 254 265 return EOK; 255 266 } … … 290 301 //if this hub already uses default address, it cannot request it once more 291 302 if(hub->is_default_address_used) return; 292 usb_log_ debug("some connection changed\n");303 usb_log_info("some connection changed\n"); 293 304 assert(hub->control_pipe->hc_phone); 294 305 int opResult = usb_hub_clear_port_feature(hub->control_pipe, … … 310 321 //reset port 311 322 usb_hub_set_reset_port_request(&request, port); 312 opResult = usb_ pipe_control_write(323 opResult = usb_endpoint_pipe_control_write( 313 324 hub->control_pipe, 314 325 &request,sizeof(usb_device_request_setup_packet_t), … … 333 344 334 345 int opResult; 335 usb_log_ debug("finalizing add device\n");346 usb_log_info("finalizing add device\n"); 336 347 opResult = usb_hub_clear_port_feature(hub->control_pipe, 337 348 port, USB_HUB_FEATURE_C_PORT_RESET); … … 343 354 } 344 355 //create connection to device 345 usb_ pipe_t new_device_pipe;356 usb_endpoint_pipe_t new_device_pipe; 346 357 usb_device_connection_t new_device_connection; 347 358 usb_device_connection_initialize_on_default_address( … … 349 360 &hub->connection 350 361 ); 351 usb_ pipe_initialize_default_control(362 usb_endpoint_pipe_initialize_default_control( 352 363 &new_device_pipe, 353 364 &new_device_connection); 354 usb_ pipe_probe_default_control(&new_device_pipe);365 usb_endpoint_pipe_probe_default_control(&new_device_pipe); 355 366 356 367 /* Request address from host controller. */ … … 365 376 return; 366 377 } 367 usb_log_ debug("setting new address %d\n",new_device_address);378 usb_log_info("setting new address %d\n",new_device_address); 368 379 //opResult = usb_drv_req_set_address(hc, USB_ADDRESS_DEFAULT, 369 380 // new_device_address); 370 usb_ pipe_start_session(&new_device_pipe);381 usb_endpoint_pipe_start_session(&new_device_pipe); 371 382 opResult = usb_request_set_address(&new_device_pipe,new_device_address); 372 usb_ pipe_end_session(&new_device_pipe);383 usb_endpoint_pipe_end_session(&new_device_pipe); 373 384 if (opResult != EOK) { 374 385 usb_log_error("could not set address for new device %d\n",opResult); … … 405 416 return; 406 417 } 407 usb_log_info("Detected new device on `%s' (port %d), " \ 408 "address %d (handle %llu).\n", 409 hub->usb_device->ddf_dev->name, (int) port, 418 usb_log_info("new device address %d, handle %zu\n", 410 419 new_device_address, child_handle); 420 411 421 } 412 422 … … 478 488 usb_log_debug("interrupt at port %d\n", port); 479 489 //determine type of change 480 usb_ pipe_t *pipe = hub->control_pipe;490 usb_endpoint_pipe_t *pipe = hub->control_pipe; 481 491 482 492 int opResult; … … 489 499 //endpoint 0 490 500 491 opResult = usb_ pipe_control_read(501 opResult = usb_endpoint_pipe_control_read( 492 502 pipe, 493 503 &request, sizeof(usb_device_request_setup_packet_t), … … 505 515 if (usb_port_connect_change(&status)) { 506 516 if (usb_port_dev_connected(&status)) { 507 usb_log_ debug("some connection changed\n");517 usb_log_info("some connection changed\n"); 508 518 usb_hub_init_add_device(hub, port, usb_port_speed(&status)); 509 519 } else { … … 517 527 usb_hub_over_current(hub,port); 518 528 }else{ 519 usb_log_ debug("over current condition was auto-resolved on port %d\n",529 usb_log_info("over current condition was auto-resolved on port %d\n", 520 530 port); 521 531 } … … 523 533 //port reset 524 534 if (usb_port_reset_completed(&status)) { 525 usb_log_ debug("port reset complete\n");535 usb_log_info("port reset complete"); 526 536 if (usb_port_enabled(&status)) { 527 537 usb_hub_finalize_add_device(hub, port, usb_port_speed(&status)); … … 550 560 int usb_hub_check_hub_changes(usb_hub_info_t * hub_info){ 551 561 int opResult; 552 opResult = usb_ pipe_start_session(562 opResult = usb_endpoint_pipe_start_session( 553 563 hub_info->status_change_pipe); 554 564 if(opResult != EOK){ … … 568 578 * Send the request. 569 579 */ 570 opResult = usb_ pipe_read(580 opResult = usb_endpoint_pipe_read( 571 581 hub_info->status_change_pipe, 572 582 change_bitmap, byte_length, &actual_size … … 576 586 free(change_bitmap); 577 587 usb_log_warning("something went wrong while getting status of hub\n"); 578 usb_ pipe_end_session(hub_info->status_change_pipe);588 usb_endpoint_pipe_end_session(hub_info->status_change_pipe); 579 589 return opResult; 580 590 } 581 591 unsigned int port; 582 opResult = usb_ pipe_start_session(hub_info->control_pipe);592 opResult = usb_endpoint_pipe_start_session(hub_info->control_pipe); 583 593 if(opResult!=EOK){ 584 594 usb_log_error("could not start control pipe session %d\n", opResult); 585 usb_ pipe_end_session(hub_info->status_change_pipe);595 usb_endpoint_pipe_end_session(hub_info->status_change_pipe); 586 596 return opResult; 587 597 } … … 590 600 usb_log_error("could not start host controller session %d\n", 591 601 opResult); 592 usb_ pipe_end_session(hub_info->control_pipe);593 usb_ pipe_end_session(hub_info->status_change_pipe);602 usb_endpoint_pipe_end_session(hub_info->control_pipe); 603 usb_endpoint_pipe_end_session(hub_info->status_change_pipe); 594 604 return opResult; 595 605 } … … 605 615 } 606 616 usb_hc_connection_close(&hub_info->connection); 607 usb_ pipe_end_session(hub_info->control_pipe);608 usb_ pipe_end_session(hub_info->status_change_pipe);617 usb_endpoint_pipe_end_session(hub_info->control_pipe); 618 usb_endpoint_pipe_end_session(hub_info->status_change_pipe); 609 619 free(change_bitmap); 610 620 return EOK;
Note:
See TracChangeset
for help on using the changeset viewer.