Changes in uspace/drv/vhc/hub.c [0b31409:b476347] in mainline


Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/vhc/hub.c

    r0b31409 rb476347  
    4040#include <stdlib.h>
    4141#include <driver.h>
    42 #include <usb/usbdrv.h>
     42#include <usb/hub.h>
     43#include <usb/recognise.h>
    4344
    4445#include "hub.h"
     
    7071}
    7172
     73static int pretend_port_rest(int unused, void *unused2)
     74{
     75        return EOK;
     76}
     77
    7278/** Register root hub in devman.
    7379 *
     
    7985        device_t *hc_dev = (device_t *) arg;
    8086
    81         int hc;
     87        /*
     88         * Wait until parent device is properly initialized.
     89         */
     90        int phone;
    8291        do {
    83                 hc = usb_drv_hc_connect(hc_dev, hc_dev->handle,
    84                     IPC_FLAG_BLOCKING);
    85         } while (hc < 0);
     92                phone = devman_device_connect(hc_dev->handle, 0);
     93        } while (phone < 0);
     94        async_hangup(phone);
    8695
    87         usb_drv_reserve_default_address(hc);
     96        usb_hc_connection_t hc_conn;
     97        usb_hc_connection_initialize(&hc_conn, hc_dev->handle);
    8898
    89         usb_address_t hub_address = usb_drv_request_address(hc);
    90         usb_drv_req_set_address(hc, USB_ADDRESS_DEFAULT, hub_address);
     99        usb_hc_connection_open(&hc_conn);
    91100
    92         usb_drv_release_default_address(hc);
     101        int rc = usb_hc_new_device_wrapper(hc_dev, &hc_conn, USB_SPEED_FULL,
     102            pretend_port_rest, 0, NULL,
     103            NULL, NULL);
     104        if (rc != EOK) {
     105                usb_log_fatal("Failed to create root hub: %s.\n",
     106                    str_error(rc));
     107        }
    93108
    94         devman_handle_t hub_handle;
    95         usb_drv_register_child_in_devman(hc, hc_dev, hub_address, &hub_handle);
    96         usb_drv_bind_address(hc, hub_address, hub_handle);
     109        usb_hc_connection_close(&hc_conn);
    97110
    98         return EOK;
     111        return 0;
    99112}
    100113       
Note: See TracChangeset for help on using the changeset viewer.