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