Changeset f974519 in mainline for uspace/drv/bus/usb/ohci/hc.c
- Timestamp:
- 2011-08-25T16:14:58Z (13 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 0815000
- Parents:
- 09ace19
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/bus/usb/ohci/hc.c
r09ace19 rf974519 139 139 &instance->generic.dev_manager, hub_address, hub_fun->handle); 140 140 141 #define CHECK_RET_ RELEASE(ret, message...) \141 #define CHECK_RET_DESTROY(ret, message...) \ 142 142 if (ret != EOK) { \ 143 143 usb_log_error(message); \ 144 endpoint_destroy(ep); \ 145 usb_endpoint_manager_unregister_ep(&instance->generic.ep_manager, \ 146 hub_address, 0, USB_DIRECTION_BOTH); \ 144 147 return ret; \ 145 148 } else (void)0 … … 151 154 152 155 int ret = ohci_endpoint_init(&instance->generic, ep); 153 if (ret != EOK) { 154 endpoint_destroy(ep); 155 return ret; 156 } 157 158 ret = usb_endpoint_manager_register_ep(&instance->generic.ep_manager, ep, 0); 159 if (ret != EOK) { 160 endpoint_destroy(ep); 161 return ret; 162 } 163 hc_enqueue_endpoint(instance, ep); 164 165 166 // int ret = hc_add_endpoint(instance, hub_address, 0, USB_SPEED_FULL, 167 // USB_TRANSFER_CONTROL, USB_DIRECTION_BOTH, 64, 0, 0); 168 // CHECK_RET_RELEASE(ret, 169 // "Failed to add OHCI root hub endpoint 0: %s.\n", str_error(ret)); 156 CHECK_RET_DESTROY(ret, "Failed to initialize rh OHCI ep structures.\n"); 157 158 ret = usb_endpoint_manager_register_ep( 159 &instance->generic.ep_manager, ep, 0); 160 CHECK_RET_DESTROY(ret, "Failed to initialize rh control ep.\n"); 161 ep = NULL; 170 162 171 163 ret = ddf_fun_add_match_id(hub_fun, "usb&class=hub", 100); 172 CHECK_RET_ RELEASE(ret,164 CHECK_RET_DESTROY(ret, 173 165 "Failed to add root hub match-id: %s.\n", str_error(ret)); 174 166 175 167 ret = ddf_fun_bind(hub_fun); 176 CHECK_RET_ RELEASE(ret,168 CHECK_RET_DESTROY(ret, 177 169 "Failed to bind root hub function: %s.\n", str_error(ret)); 178 170 … … 248 240 case USB_TRANSFER_BULK: 249 241 instance->registers->control &= ~C_BLE; 250 endpoint_list_add_ep( 251 &instance->lists[ep->transfer_type], ohci_endpoint_get(ep)); 242 endpoint_list_add_ep(list, ohci_ep); 252 243 instance->registers->control |= C_BLE; 253 244 break; … … 255 246 case USB_TRANSFER_INTERRUPT: 256 247 instance->registers->control &= (~C_PLE & ~C_IE); 257 endpoint_list_add_ep( 258 &instance->lists[ep->transfer_type], ohci_endpoint_get(ep)); 248 endpoint_list_add_ep(list, ohci_ep); 259 249 instance->registers->control |= C_PLE | C_IE; 260 250 break; … … 368 358 369 359 if (status & I_UE) { 360 usb_log_fatal("Error like no other!\n"); 370 361 hc_start(instance); 371 362 }
Note:
See TracChangeset
for help on using the changeset viewer.