Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/uhci-rhd/root_hub.c

    rdced52a r0f21c0c  
    3434#include <errno.h>
    3535#include <stdint.h>
    36 #include <ddi.h>
    37 #include <devman.h>
     36
    3837#include <usb/debug.h>
    3938
    4039#include "root_hub.h"
    4140
     41
    4242int uhci_root_hub_init(
    43   uhci_root_hub_t *instance, void *addr, size_t size, ddf_dev_t *rh)
     43  uhci_root_hub_t *instance, void *addr, size_t size, device_t *rh)
    4444{
    4545        assert(instance);
    4646        assert(rh);
    4747        int ret;
     48        ret = usb_hc_find(rh->handle, &instance->hc_handle);
     49        usb_log_info("rh found(%d) hc handle: %d.\n", ret, instance->hc_handle);
     50        if (ret != EOK) {
     51                return ret;
     52        }
    4853
    4954        /* allow access to root hub registers */
    5055        assert(sizeof(port_status_t) * UHCI_ROOT_HUB_PORT_COUNT == size);
    5156        port_status_t *regs;
    52         ret = pio_enable(addr, size, (void**)&regs);
     57        ret = pio_enable(
     58          addr, sizeof(port_status_t) * UHCI_ROOT_HUB_PORT_COUNT, (void**)&regs);
    5359
    5460        if (ret < 0) {
     
    6066        unsigned i = 0;
    6167        for (; i < UHCI_ROOT_HUB_PORT_COUNT; ++i) {
     68                /* connect to the parent device (HC) */
     69                int parent_phone = devman_device_connect(instance->hc_handle, 0);
     70                //usb_drv_hc_connect(rh, instance->hc_handle, 0);
     71                if (parent_phone < 0) {
     72                        usb_log_error("Failed to connect to the HC device port %d.\n", i);
     73                        return parent_phone;
     74                }
    6275                /* mind pointer arithmetics */
    63                 ret = uhci_port_init(
    64                   &instance->ports[i], regs + i, i, ROOT_HUB_WAIT_USEC, rh);
     76                int ret = uhci_port_init(
     77                  &instance->ports[i], regs + i, i, ROOT_HUB_WAIT_USEC, rh, parent_phone);
    6578                if (ret != EOK) {
    6679                        unsigned j = 0;
Note: See TracChangeset for help on using the changeset viewer.