Changeset 0eadfd1e in mainline for uspace/drv/bus/usb/xhci/bus.c


Ignore:
Timestamp:
2018-01-09T14:14:32Z (6 years ago)
Author:
Petr Manek <petr.manek@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
dfa1fc8
Parents:
17c5e62
Message:

xhci: allocate/free transfer ring internally in endpoint init/fini

File:
1 edited

Legend:

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

    r17c5e62 r0eadfd1e  
    9393        xhci_endpoint_t *ep0 = xhci_endpoint_get(ep0_base);
    9494
    95         if ((err = xhci_endpoint_alloc_transfer_ds(ep0)))
    96                 goto err_added;
    97 
    9895        /* Address device */
    9996        if ((err = hc_address_device(bus->hc, dev, ep0)))
    100                 goto err_prepared;
    101 
    102         return EOK;
    103 
    104 err_prepared:
    105         xhci_endpoint_free_transfer_ds(ep0);
     97                goto err_added;
     98
     99        return EOK;
     100
    106101err_added:
    107102        /* Bus reference */
     
    354349                        continue;
    355350
    356                 xhci_endpoint_free_transfer_ds(xhci_endpoint_get(endpoints[i]));
    357351                /* Bus reference */
    358352                endpoint_del_ref(endpoints[i]);
     
    411405        xhci_device_t *dev = xhci_device_get(ep_base->device);
    412406
    413         if ((err = xhci_endpoint_alloc_transfer_ds(ep)))
    414                 return err;
    415 
    416407        usb_log_info("Endpoint " XHCI_EP_FMT " registered to XHCI bus.", XHCI_EP_ARGS(*ep));
    417408
     
    420411
    421412        if ((err = hc_add_endpoint(bus->hc, dev->slot_id, xhci_endpoint_index(ep), &ep_ctx)))
    422                 goto err_prepared;
    423 
    424         return EOK;
    425 
    426 err_prepared:
    427         xhci_endpoint_free_transfer_ds(ep);
    428         return err;
     413                return err;
     414
     415        return EOK;
    429416}
    430417
     
    454441        }
    455442
    456         /* Tear down TRB ring / PSA. */
    457         xhci_endpoint_free_transfer_ds(ep);
    458 
    459443        return EOK;
    460444}
Note: See TracChangeset for help on using the changeset viewer.