Fork us on GitHub Follow us on Facebook Follow us on Twitter

Changeset b02308e in mainline for uspace/drv/bus/usb/ohci/hc.c


Ignore:
Timestamp:
2011-08-25T10:40:37Z (10 years ago)
Author:
Jan Vesely <jano.vesely@…>
Branches:
lfn, master
Children:
27873be
Parents:
32e093e
Message:

OHCI: Use destructor instead of manual clearing.

File:
1 edited

Legend:

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

    r32e093e rb02308e  
    238238                return ENOMEM;
    239239
    240         hcd_endpoint_t *hcd_ep = hcd_endpoint_assign(ep);
    241         if (hcd_ep == NULL) {
     240        int ret = hcd_endpoint_assign(ep);
     241        if (ret != EOK) {
    242242                endpoint_destroy(ep);
    243                 return ENOMEM;
    244         }
    245 
    246         int ret =
    247             usb_endpoint_manager_register_ep(&instance->ep_manager, ep, size);
     243                return ret;
     244        }
     245
     246        ret = usb_endpoint_manager_register_ep(&instance->ep_manager, ep, size);
    248247        if (ret != EOK) {
    249                 hcd_endpoint_clear(ep);
    250248                endpoint_destroy(ep);
    251249                return ret;
     
    257255                instance->registers->control &= ~C_CLE;
    258256                endpoint_list_add_ep(
    259                     &instance->lists[ep->transfer_type], hcd_ep);
     257                    &instance->lists[ep->transfer_type], hcd_endpoint_get(ep));
    260258                instance->registers->control_current = 0;
    261259                instance->registers->control |= C_CLE;
     
    264262                instance->registers->control &= ~C_BLE;
    265263                endpoint_list_add_ep(
    266                     &instance->lists[ep->transfer_type], hcd_ep);
     264                    &instance->lists[ep->transfer_type], hcd_endpoint_get(ep));
    267265                instance->registers->control |= C_BLE;
    268266                break;
     
    271269                instance->registers->control &= (~C_PLE & ~C_IE);
    272270                endpoint_list_add_ep(
    273                     &instance->lists[ep->transfer_type], hcd_ep);
     271                    &instance->lists[ep->transfer_type], hcd_endpoint_get(ep));
    274272                instance->registers->control |= C_PLE | C_IE;
    275273                break;
     
    327325                        break;
    328326                }
    329                 hcd_endpoint_clear(ep);
    330327        } else {
    331328                usb_log_warning("Endpoint without hcd equivalent structure.\n");
Note: See TracChangeset for help on using the changeset viewer.