Changes in uspace/lib/usb/src/pipesinit.c [fa0f53b:159b91f4] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/usb/src/pipesinit.c
rfa0f53b r159b91f4 356 356 assert(connection); 357 357 358 fibril_mutex_initialize(&pipe->guard);359 358 pipe->wire = connection; 360 359 pipe->hc_phone = -1; 361 fibril_mutex_initialize(&pipe->hc_phone_mutex);362 360 pipe->endpoint_no = endpoint_no; 363 361 pipe->transfer_type = transfer_type; 364 362 pipe->max_packet_size = max_packet_size; 365 363 pipe->direction = direction; 366 pipe->refcount = 0;367 pipe->auto_reset_halt = false;368 364 369 365 return EOK; … … 386 382 0, USB_TRANSFER_CONTROL, CTRL_PIPE_MIN_PACKET_SIZE, 387 383 USB_DIRECTION_BOTH); 388 389 pipe->auto_reset_halt = true;390 384 391 385 return rc; … … 419 413 int rc; 420 414 421 rc = usb_pipe_start_long_transfer(pipe); 415 TRY_LOOP(failed_attempts) { 416 rc = usb_pipe_start_session(pipe); 417 if (rc == EOK) { 418 break; 419 } 420 } 422 421 if (rc != EOK) { 423 422 return rc; … … 440 439 } 441 440 } 442 usb_pipe_end_ long_transfer(pipe);441 usb_pipe_end_session(pipe); 443 442 if (rc != EOK) { 444 443 return rc; … … 462 461 usb_hc_connection_t *hc_connection) 463 462 { 464 return usb_pipe_register_with_speed(pipe, USB_SPEED_MAX + 1,465 interval, hc_connection);466 }467 468 /** Register endpoint with a speed at the host controller.469 *470 * You will rarely need to use this function because it is needed only471 * if the registered endpoint is of address 0 and there is no other way472 * to tell speed of the device at address 0.473 *474 * @param pipe Pipe to be registered.475 * @param speed Speed of the device476 * (invalid speed means use previously specified one).477 * @param interval Polling interval.478 * @param hc_connection Connection to the host controller (must be opened).479 * @return Error code.480 */481 int usb_pipe_register_with_speed(usb_pipe_t *pipe, usb_speed_t speed,482 unsigned int interval,483 usb_hc_connection_t *hc_connection)484 {485 463 assert(pipe); 486 464 assert(hc_connection); … … 490 468 } 491 469 492 #define _PACK2(high, low) (((high) << 16) + (low)) 493 #define _PACK3(high, middle, low) (((((high) << 8) + (middle)) << 8) + (low)) 494 495 return async_req_4_0(hc_connection->hc_phone, 470 #define _PACK(high, low) ((high) * 256 + (low)) 471 472 return async_req_5_0(hc_connection->hc_phone, 496 473 DEV_IFACE_ID(USBHC_DEV_IFACE), IPC_M_USBHC_REGISTER_ENDPOINT, 497 _PACK2(pipe->wire->address, pipe->endpoint_no), 498 _PACK3(speed, pipe->transfer_type, pipe->direction), 499 _PACK2(pipe->max_packet_size, interval)); 500 501 #undef _PACK2 502 #undef _PACK3 474 _PACK(pipe->wire->address, pipe->endpoint_no), 475 _PACK(pipe->transfer_type, pipe->direction), 476 pipe->max_packet_size, interval); 477 478 #undef _PACK 503 479 } 504 480
Note:
See TracChangeset
for help on using the changeset viewer.