Fork us on GitHub Follow us on Facebook Follow us on Twitter

Changeset 6b433a8 in mainline for uspace/drv/bus/usb/xhci/bus.c


Ignore:
Timestamp:
2017-11-20T19:14:31Z (4 years ago)
Author:
Salmelu <salmelu@…>
Branches:
lfn, master
Children:
27b0ea0
Parents:
d3086873
Message:

Isochronous transfers - endpoint initialization

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/bus/usb/xhci/bus.c

    rd3086873 r6b433a8  
    6868        ep->max_streams = desc->usb3.max_streams;
    6969        ep->max_burst = desc->usb3.max_burst;
    70         // TODO add this property to usb_endpoint_desc_t and fetch it from ss companion desc
    71         ep->mult = 0;
     70        ep->mult = desc->usb3.mult;
     71
     72        if (ep->base.transfer_type == USB_TRANSFER_ISOCHRONOUS) {
     73                if (ep->base.device->speed <= USB_SPEED_HIGH) {
     74                        ep->isoch_max_size = desc->max_packet_size * (desc->packets + 1);
     75                }
     76                else if (ep->base.device->speed == USB_SPEED_SUPER) {
     77                        ep->isoch_max_size = desc->usb3.bytes_per_interval;
     78                }
     79                /* Technically there could be superspeed plus too. */
     80
     81                /* Allocate and setup isochronous-specific structures. */
     82                ep->isoch_enqueue = 0;
     83                ep->isoch_dequeue = XHCI_ISOCH_BUFFER_COUNT - 1;
     84                ep->isoch_started = false;
     85        }
    7286
    7387        return xhci_endpoint_alloc_transfer_ds(ep);
Note: See TracChangeset for help on using the changeset viewer.