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