Changeset 5e2b1ae6 in mainline for uspace/lib/usbhost/src/bus.c


Ignore:
Timestamp:
2018-01-07T01:54:45Z (6 years ago)
Author:
Ondřej Hlavatý <aearsis@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
3dc3f99
Parents:
63431db
Message:

usbhost: reserve default speed in library

File:
1 edited

Legend:

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

    r63431db r5e2b1ae6  
    5454        fibril_mutex_initialize(&bus->guard);
    5555        bus->device_size = device_size;
     56        bus->default_address_speed = USB_SPEED_MAX;
    5657}
    5758
     
    239240        assert(bus);
    240241
    241         const bus_ops_t *ops = BUS_OPS_LOOKUP(bus->ops, reserve_default_address);
    242         if (!ops)
    243                 return ENOTSUP;
    244 
    245242        fibril_mutex_lock(&bus->guard);
    246         const int r = ops->reserve_default_address(bus, speed);
    247         fibril_mutex_unlock(&bus->guard);
    248         return r;
    249 }
    250 
    251 int bus_release_default_address(bus_t *bus)
     243        if (bus->default_address_speed != USB_SPEED_MAX) {
     244                fibril_mutex_unlock(&bus->guard);
     245                return EAGAIN;
     246        } else {
     247                bus->default_address_speed = speed;
     248                fibril_mutex_unlock(&bus->guard);
     249                return EOK;
     250        }
     251}
     252
     253void bus_release_default_address(bus_t *bus)
    252254{
    253255        assert(bus);
    254 
    255         const bus_ops_t *ops = BUS_OPS_LOOKUP(bus->ops, release_default_address);
    256         if (!ops)
    257                 return ENOTSUP;
    258 
    259         fibril_mutex_lock(&bus->guard);
    260         const int r = ops->release_default_address(bus);
    261         fibril_mutex_unlock(&bus->guard);
    262         return r;
     256        bus->default_address_speed = USB_SPEED_MAX;
    263257}
    264258
Note: See TracChangeset for help on using the changeset viewer.