Changes in uspace/drv/ohci/hc.c [8148ee3a:aa9ccf7] in mainline


Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/ohci/hc.c

    r8148ee3a raa9ccf7  
    5555        assert(hub_fun);
    5656
    57         int ret;
    58 
    5957        usb_address_t hub_address =
    6058            device_keeper_get_free_address(&instance->manager, USB_SPEED_FULL);
    61         if (hub_address <= 0) {
    62                 usb_log_error("Failed to get OHCI root hub address.\n");
    63                 return hub_address;
    64         }
    6559        instance->rh.address = hub_address;
    6660        usb_device_keeper_bind(
    6761            &instance->manager, hub_address, hub_fun->handle);
    6862
    69         ret = usb_endpoint_manager_add_ep(&instance->ep_manager,
    70             hub_address, 0, USB_DIRECTION_BOTH, USB_TRANSFER_CONTROL,
    71             USB_SPEED_FULL, 64, 0);
    72         if (ret != EOK) {
    73                 usb_log_error("Failed to add OHCI rh endpoint 0.\n");
    74                 usb_device_keeper_release(&instance->manager, hub_address);
    75                 return ret;
    76         }
     63        endpoint_t *ep = malloc(sizeof(endpoint_t));
     64        assert(ep);
     65        int ret = endpoint_init(ep, hub_address, 0, USB_DIRECTION_BOTH,
     66            USB_TRANSFER_CONTROL, USB_SPEED_FULL, 64);
     67        assert(ret == EOK);
     68        ret = usb_endpoint_manager_register_ep(&instance->ep_manager, ep, 0);
     69        assert(ret == EOK);
    7770
    7871        char *match_str = NULL;
    79         /* DDF needs heap allocated string */
    8072        ret = asprintf(&match_str, "usb&class=hub");
     73//      ret = (match_str == NULL) ? ret : EOK;
    8174        if (ret < 0) {
    8275                usb_log_error(
    8376                    "Failed(%d) to create root hub match-id string.\n", ret);
    84                 usb_device_keeper_release(&instance->manager, hub_address);
    8577                return ret;
    8678        }
     
    8880        ret = ddf_fun_add_match_id(hub_fun, match_str, 100);
    8981        if (ret != EOK) {
    90                 usb_log_error("Failed add root hub match-id.\n");
     82                usb_log_error("Failed add create root hub match-id.\n");
    9183        }
    9284        return ret;
     
    123115        fibril_mutex_initialize(&instance->guard);
    124116
    125         rh_init(&instance->rh, instance->registers);
     117        rh_init(&instance->rh, dev, instance->registers);
    126118
    127119        if (!interrupts) {
     
    138130        assert(instance);
    139131        assert(batch);
    140         assert(batch->ep);
    141132
    142133        /* check for root hub communication */
    143         if (batch->ep->address == instance->rh.address) {
     134        if (batch->target.address == instance->rh.address) {
    144135                return rh_request(&instance->rh, batch);
    145136        }
    146137
    147138        fibril_mutex_lock(&instance->guard);
    148         switch (batch->ep->transfer_type) {
     139        switch (batch->transfer_type) {
    149140        case USB_TRANSFER_CONTROL:
    150141                instance->registers->control &= ~C_CLE;
    151142                transfer_list_add_batch(
    152                     instance->transfers[batch->ep->transfer_type], batch);
     143                    instance->transfers[batch->transfer_type], batch);
    153144                instance->registers->command_status |= CS_CLF;
    154145                usb_log_debug2("Set CS control transfer filled: %x.\n",
     
    160151                instance->registers->control &= ~C_BLE;
    161152                transfer_list_add_batch(
    162                     instance->transfers[batch->ep->transfer_type], batch);
     153                    instance->transfers[batch->transfer_type], batch);
    163154                instance->registers->command_status |= CS_BLF;
    164155                usb_log_debug2("Set bulk transfer filled: %x.\n",
     
    170161                instance->registers->control &= (~C_PLE & ~C_IE);
    171162                transfer_list_add_batch(
    172                     instance->transfers[batch->ep->transfer_type], batch);
     163                    instance->transfers[batch->transfer_type], batch);
    173164                instance->registers->control |= C_PLE | C_IE;
    174165                usb_log_debug2("Added periodic transfer: %x.\n",
Note: See TracChangeset for help on using the changeset viewer.