Changeset 4267908 in mainline for uspace/lib/usbhost/src/iface.c


Ignore:
Timestamp:
2011-10-27T10:45:08Z (13 years ago)
Author:
Jan Vesely <jano.vesely@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
83c3123
Parents:
069b80d
Message:

libusbhost: Merge find_by_address and get_speed.

These functions were almost identical.
Clear handle on address release.

File:
1 edited

Legend:

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

    r069b80d r4267908  
    147147        hcd_t *hcd = fun_to_hcd(fun);
    148148        assert(hcd);
    149         const bool found =
    150             usb_device_manager_find_by_address(&hcd->dev_manager, address, handle);
    151         return found ? EOK : ENOENT;
     149        return usb_device_manager_get_info_by_address(
     150            &hcd->dev_manager, address, handle, NULL);
    152151}
    153152/*----------------------------------------------------------------------------*/
     
    180179        /* Default address is not bound or registered,
    181180         * thus it does not provide speed info. */
    182         const usb_speed_t speed = (address == 0) ? ep_speed :
    183             usb_device_manager_get_speed(&hcd->dev_manager, address);
     181        usb_speed_t speed = ep_speed;
     182        /* NOTE The function will return EINVAL and won't
     183         * touch speed variable for default address */
     184        usb_device_manager_get_info_by_address(
     185            &hcd->dev_manager, address, NULL, &speed);
    184186
    185187        usb_log_debug("Register endpoint %d:%d %s-%s %s %zuB %ums.\n",
     
    192194        if (!ep)
    193195                return ENOMEM;
    194         int ret = EOK;
    195196
    196197        if (hcd->ep_add_hook) {
    197                 ret = hcd->ep_add_hook(hcd, ep);
    198         }
    199         if (ret != EOK) {
    200                 endpoint_destroy(ep);
    201                 return ret;
    202         }
    203 
    204         ret = usb_endpoint_manager_register_ep(&hcd->ep_manager, ep, size);
     198                const int ret = hcd->ep_add_hook(hcd, ep);
     199                if (ret != EOK) {
     200                        endpoint_destroy(ep);
     201                        return ret;
     202                }
     203        }
     204
     205        const int ret =
     206            usb_endpoint_manager_register_ep(&hcd->ep_manager, ep, size);
    205207        if (ret != EOK) {
    206208                endpoint_destroy(ep);
Note: See TracChangeset for help on using the changeset viewer.