Changeset 6b433a8 in mainline for uspace/lib/usbdev/src


Ignore:
Timestamp:
2017-11-20T19:14:31Z (8 years ago)
Author:
Salmelu <salmelu@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
27b0ea0
Parents:
d3086873
Message:

Isochronous transfers - endpoint initialization

Location:
uspace/lib/usbdev/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/usbdev/src/pipes.c

    rd3086873 r6b433a8  
    255255    usb_transfer_type_t transfer_type, size_t max_packet_size,
    256256    usb_direction_t direction, unsigned packets,
    257     unsigned max_burst, unsigned max_streams, usb_dev_session_t *bus_session)
    258 {
    259         // FIXME refactor this function
     257    unsigned max_burst, unsigned max_streams, unsigned bytes_per_interval,
     258        unsigned mult, usb_dev_session_t *bus_session)
     259{
     260        // FIXME: refactor this function PLEASE
    260261        assert(pipe);
    261262
     
    267268        pipe->desc.usb3.max_burst = max_burst;
    268269        pipe->desc.usb3.max_streams = max_streams;
     270        pipe->desc.usb3.mult = mult;
     271        pipe->desc.usb3.bytes_per_interval = bytes_per_interval;
    269272        pipe->auto_reset_halt = false;
    270273        pipe->bus_session = bus_session;
     
    284287
    285288        const int rc = usb_pipe_initialize(pipe, 0, USB_TRANSFER_CONTROL,
    286             CTRL_PIPE_MIN_PACKET_SIZE, USB_DIRECTION_BOTH, 1, 0, 0, bus_session);
     289            CTRL_PIPE_MIN_PACKET_SIZE, USB_DIRECTION_BOTH, 1, 0, 0, 0, 0, bus_session);
    287290
    288291        pipe->auto_reset_halt = true;
  • uspace/lib/usbdev/src/pipesinit.c

    rd3086873 r6b433a8  
    210210        unsigned max_burst = 0;
    211211        unsigned max_streams = 0;
     212        unsigned bytes_per_interval = 0;
     213        unsigned mult = 0;
    212214        if(companion_desc) {
    213215                max_burst = companion_desc->max_burst;
    214216                max_streams = SS_COMPANION_MAX_STREAMS(companion_desc->attributes);
    215         }
    216 
     217                bytes_per_interval = companion_desc->bytes_per_interval;
     218                mult = SS_COMPANION_MULT(companion_desc->attributes);
     219        }
     220
     221        // FIXME: USB2 packets and USB3 max_burst are probably the same thing
     222        // See 4.14.2.1.1 of XHCI specification -> possibly refactor into one somehow-named field
    217223        int rc = usb_pipe_initialize(&ep_mapping->pipe,
    218224            ep_no, description.transfer_type,
     
    221227            description.direction, ED_MPS_TRANS_OPPORTUNITIES_GET(
    222228                uint16_usb2host(endpoint_desc->max_packet_size)),
    223             max_burst, max_streams, bus_session);
     229            max_burst, max_streams, bytes_per_interval, mult, bus_session);
    224230        if (rc != EOK) {
    225231                return rc;
Note: See TracChangeset for help on using the changeset viewer.