Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/bus/usb/vhc/connhost.c

    r02fc5c4 r48ae3ef  
    5757 * @return Error code.
    5858 */
    59 static int request_address(ddf_fun_t *fun, usb_address_t *address, bool strict,
    60     usb_speed_t speed)
    61 {
    62         VHC_DATA(vhc, fun);
    63 
    64         assert(address);
    65         return usb_device_manager_request_address(
    66             &vhc->dev_manager, address, strict, speed);
     59static int request_address(ddf_fun_t *fun, usb_speed_t speed,
     60    usb_address_t *address)
     61{
     62        VHC_DATA(vhc, fun);
     63
     64        usb_address_t addr = usb_device_manager_get_free_address(
     65            &vhc->dev_manager, USB_SPEED_HIGH);
     66        if (addr < 0) {
     67                return addr;
     68        }
     69
     70        if (address != NULL) {
     71                *address = addr;
     72        }
     73
     74        return EOK;
    6775}
    6876
     
    8088        usb_log_debug("Binding handle %" PRIun " to address %d.\n",
    8189            handle, address);
    82         usb_device_manager_bind_address(&vhc->dev_manager, address, handle);
     90        usb_device_manager_bind(&vhc->dev_manager, address, handle);
    8391
    8492        return EOK;
     
    110118        VHC_DATA(vhc, fun);
    111119        usb_log_debug("Releasing address %d...\n", address);
    112         usb_device_manager_release_address(&vhc->dev_manager, address);
     120        usb_device_manager_release(&vhc->dev_manager, address);
    113121
    114122        return ENOTSUP;
     
    128136 */
    129137static int register_endpoint(ddf_fun_t *fun,
    130     usb_address_t address, usb_endpoint_t endpoint,
     138    usb_address_t address, usb_speed_t speed, usb_endpoint_t endpoint,
    131139    usb_transfer_type_t transfer_type, usb_direction_t direction,
    132140    size_t max_packet_size, unsigned int interval)
     
    471479}
    472480
    473 static int tell_address(ddf_fun_t *fun, usb_address_t *address)
     481static int tell_address(ddf_fun_t *fun, devman_handle_t handle,
     482    usb_address_t *address)
    474483{
    475484        UNSUPPORTED("tell_address");
     
    488497}
    489498
    490 static int tell_address_rh(ddf_fun_t *root_hub_fun, usb_address_t *address)
     499static int tell_address_rh(ddf_fun_t *root_hub_fun, devman_handle_t handle,
     500    usb_address_t *address)
    491501{
    492502        VHC_DATA(vhc, root_hub_fun);
    493503
    494         devman_handle_t handle = root_hub_fun->handle;
     504        if (handle == 0) {
     505                handle = root_hub_fun->handle;
     506        }
    495507
    496508        usb_log_debug("tell_address_rh(handle=%" PRIun ")\n", handle);
     
    508520        .request_address = request_address,
    509521        .bind_address = bind_address,
    510         .get_handle = find_by_address,
     522        .find_by_address = find_by_address,
    511523        .release_address = release_address,
    512524
     
    520532usb_iface_t vhc_usb_iface = {
    521533        .get_hc_handle = usb_iface_get_hc_handle_hc_impl,
    522         .get_my_address = tell_address
     534        .get_address = tell_address
    523535};
    524536
    525537usb_iface_t rh_usb_iface = {
    526538        .get_hc_handle = usb_iface_get_hc_handle_rh_impl,
    527         .get_my_address = tell_address_rh
     539        .get_address = tell_address_rh
    528540};
    529541
Note: See TracChangeset for help on using the changeset viewer.