Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/usb/src/ddfiface.c

    r5dd4294b r56bdd9a4  
    4444#include <assert.h>
    4545
    46 #include <usb/dev.h>
    47 
    4846/** DDF interface for USB device, implementation for typical hub. */
    4947usb_iface_t usb_iface_hub_impl = {
     
    6866{
    6967        assert(fun);
    70         return usb_get_hc_by_handle(fun->handle, handle);
     68        return usb_hc_find(fun->handle, handle);
    7169}
    7270
     
    9997{
    10098        assert(fun);
    101         return usb_get_address_by_handle(fun->handle, address);
     99
     100        async_sess_t *parent_sess =
     101            devman_parent_device_connect(EXCHANGE_SERIALIZE, fun->handle,
     102            IPC_FLAG_BLOCKING);
     103        if (!parent_sess)
     104                return ENOMEM;
     105
     106        async_exch_t *exch = async_exchange_begin(parent_sess);
     107        if (!exch) {
     108                async_hangup(parent_sess);
     109                return ENOMEM;
     110        }
     111
     112        const int ret = usb_get_my_address(exch, address);
     113
     114        async_exchange_end(exch);
     115        async_hangup(parent_sess);
     116
     117        return ret;
    102118}
    103119
     
    118134        assert(fun);
    119135        assert(fun->driver_data);
    120         const usb_hub_attached_device_t *device = fun->driver_data;
     136        usb_hub_attached_device_t *device = fun->driver_data;
    121137        assert(device->fun == fun);
    122138        if (address)
Note: See TracChangeset for help on using the changeset viewer.