Ignore:
Timestamp:
2018-01-19T17:38:22Z (6 years ago)
Author:
Ondřej Hlavatý <aearsis@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
2833bb4
Parents:
861b5d6
git-author:
Ondřej Hlavatý <aearsis@…> (2018-01-19 17:06:40)
git-committer:
Ondřej Hlavatý <aearsis@…> (2018-01-19 17:38:22)
Message:

libusbhost: move utility functions to new header utility.h

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/usbhost/src/ddf_helpers.c

    r861b5d6 r944f8fdd  
    393393}
    394394
    395 int hcd_get_device_desc(device_t *device, usb_standard_device_descriptor_t *desc)
    396 {
    397         const usb_target_t control_ep = {{
    398                 .address = device->address,
    399                 .endpoint = 0,
    400         }};
    401 
    402         /* Get std device descriptor */
    403         const usb_device_request_setup_packet_t get_device_desc =
    404             GET_DEVICE_DESC(sizeof(*desc));
    405 
    406         usb_log_debug("Device(%d): Requesting full device descriptor.",
    407             device->address);
    408         ssize_t got = bus_device_send_batch_sync(device, control_ep, USB_DIRECTION_IN,
    409             (char *) desc, sizeof(*desc), *(uint64_t *)&get_device_desc,
    410             "read device descriptor");
    411 
    412         if (got < 0)
    413                 return got;
    414 
    415         return got == sizeof(*desc) ? EOK : EOVERFLOW;
    416 }
    417 
    418 int hcd_setup_match_ids(device_t *device, usb_standard_device_descriptor_t *desc)
     395int hcd_ddf_setup_match_ids(device_t *device, usb_standard_device_descriptor_t *desc)
    419396{
    420397        int err;
     
    434411
    435412        return EOK;
    436 }
    437 
    438 
    439 int hcd_device_explore(device_t *device)
    440 {
    441         int err;
    442         usb_standard_device_descriptor_t desc = { 0 };
    443 
    444         if ((err = hcd_get_device_desc(device, &desc))) {
    445                 usb_log_error("Device(%d): Failed to get dev descriptor: %s",
    446                     device->address, str_error(err));
    447                 return err;
    448         }
    449 
    450         if ((err = hcd_setup_match_ids(device, &desc))) {
    451                 usb_log_error("Device(%d): Failed to setup match ids: %s", device->address, str_error(err));
    452                 return err;
    453         }
    454 
    455         return EOK;
    456 }
    457 
    458 /** Announce root hub to the DDF
    459  *
    460  * @param[in] device Host controller ddf device
    461  * @return Error code
    462  */
    463 int hcd_setup_virtual_root_hub(hc_device_t *hcd)
    464 {
    465         int err;
    466 
    467         assert(hcd);
    468 
    469         device_t *dev = hcd_ddf_fun_create(hcd, USB_SPEED_MAX);
    470         if (!dev) {
    471                 usb_log_error("Failed to create function for the root hub.");
    472                 return ENOMEM;
    473         }
    474 
    475         ddf_fun_set_name(dev->fun, "roothub");
    476 
    477         /* Assign an address to the device */
    478         if ((err = bus_device_enumerate(dev))) {
    479                 usb_log_error("Failed to enumerate roothub device: %s", str_error(err));
    480                 goto err_usb_dev;
    481         }
    482 
    483         if ((err = ddf_fun_bind(dev->fun))) {
    484                 usb_log_error("Failed to register roothub: %s.", str_error(err));
    485                 goto err_enumerated;
    486         }
    487 
    488         return EOK;
    489 
    490 err_enumerated:
    491         bus_device_gone(dev);
    492 err_usb_dev:
    493         hcd_ddf_fun_destroy(dev);
    494         return err;
    495413}
    496414
Note: See TracChangeset for help on using the changeset viewer.