Changeset 4603b35 in mainline for uspace/lib/usbhost/src/ddf_helpers.c


Ignore:
Timestamp:
2018-01-16T20:23:54Z (7 years ago)
Author:
Ondřej Hlavatý <aearsis@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
51a51be
Parents:
eeca8a6
Message:

libdrv: merged usbhc default address reservation operations

File:
1 edited

Legend:

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

    reeca8a6 r4603b35  
    114114
    115115/**
    116  * DDF usbhc_iface callback. Calls the bus operation directly.
     116 * DDF usbhc_iface callback. Calls the respective bus operation directly.
    117117 *
    118118 * @param fun DDF function of the device (hub) requesting the address.
    119119 */
    120 static int reserve_default_address(ddf_fun_t *fun)
     120static int default_address_reservation(ddf_fun_t *fun, bool reserve)
    121121{
    122122        assert(fun);
     
    127127        assert(dev);
    128128
    129         usb_log_debug("Device %d requested default address", dev->address);
    130         return bus_reserve_default_address(hcd->bus, dev);
    131 }
    132 
    133 /**
    134  * DDF usbhc_iface callback. Calls the bus operation directly.
    135  *
    136  * @param fun DDF function of the device (hub) releasing the address.
    137  */
    138 static int release_default_address(ddf_fun_t *fun)
    139 {
    140         assert(fun);
    141         hc_device_t *hcd = dev_to_hcd(ddf_fun_get_dev(fun));
    142         device_t *dev = ddf_fun_data_get(fun);
    143         assert(hcd);
    144         assert(hcd->bus);
    145         assert(dev);
    146 
    147         usb_log_debug("Device %d released default address", dev->address);
    148         bus_release_default_address(hcd->bus, dev);
    149 
    150         return EOK;
     129        usb_log_debug("Device %d %s default address", dev->address, reserve ? "requested" : "releasing");
     130        if (reserve) {
     131                return bus_reserve_default_address(hcd->bus, dev);
     132        } else {
     133                bus_release_default_address(hcd->bus, dev);
     134                return EOK;
     135        }
    151136}
    152137
     
    169154        int err;
    170155
    171         usb_log_debug("Hub %d reported a new %s device on port: %u",
     156        usb_log_debug("Hub %d reported a new %s speed device on port: %u",
    172157            hub->address, usb_str_speed(speed), port);
    173158
     
    310295/** USB host controller interface */
    311296static usbhc_iface_t usbhc_iface = {
    312         .reserve_default_address = reserve_default_address,
    313         .release_default_address = release_default_address,
     297        .default_address_reservation = default_address_reservation,
    314298
    315299        .device_enumerate = device_enumerate,
Note: See TracChangeset for help on using the changeset viewer.