Changeset d8b275d in mainline for uspace/drv/uhci-hcd/iface.c
- Timestamp:
- 2011-04-14T08:24:29Z (13 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 5e07e2b5
- Parents:
- 3f2af64 (diff), 34e8bab (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/uhci-hcd/iface.c
r3f2af64 rd8b275d 63 63 } 64 64 65 usb_log_debug("%s %d:%d %zu(%zu).\n", 66 name, target.address, target.endpoint, size, ep->max_packet_size); 67 65 68 const size_t bw = bandwidth_count_usb11( 66 69 ep->speed, ep->transfer_type, size, ep->max_packet_size); … … 68 71 usb_log_error("Endpoint(%d:%d) %s needs %zu bw " 69 72 "but only %zu is reserved.\n", 70 name, target.address, target.endpoint, bw, res_bw);73 target.address, target.endpoint, name, bw, res_bw); 71 74 return ENOSPC; 72 75 } 73 usb_log_debug("%s %d:%d %zu(%zu).\n",74 name, target.address, target.endpoint, size, ep->max_packet_size);75 76 76 77 *batch = batch_get( … … 146 147 hc_t *hc = fun_to_hc(fun); 147 148 assert(hc); 149 const size_t size = max_packet_size; 148 150 usb_speed_t speed = usb_device_keeper_get_speed(&hc->manager, address); 149 151 if (speed >= USB_SPEED_MAX) { 150 152 speed = ep_speed; 151 153 } 152 const size_t size =153 (transfer_type == USB_TRANSFER_INTERRUPT154 || transfer_type == USB_TRANSFER_ISOCHRONOUS) ?155 max_packet_size : 0;156 int ret;157 158 endpoint_t *ep = malloc(sizeof(endpoint_t));159 if (ep == NULL)160 return ENOMEM;161 ret = endpoint_init(ep, address, endpoint, direction,162 transfer_type, speed, max_packet_size);163 if (ret != EOK) {164 free(ep);165 return ret;166 }167 168 154 usb_log_debug("Register endpoint %d:%d %s %s(%d) %zu(%zu) %u.\n", 169 155 address, endpoint, usb_str_transfer_type(transfer_type), 170 156 usb_str_speed(speed), direction, size, max_packet_size, interval); 171 157 172 ret = usb_endpoint_manager_register_ep(&hc->ep_manager, ep, size); 173 if (ret != EOK) { 174 endpoint_destroy(ep); 175 } 176 return ret; 158 return usb_endpoint_manager_add_ep(&hc->ep_manager, address, endpoint, 159 direction, transfer_type, speed, max_packet_size, size); 177 160 } 178 161 /*----------------------------------------------------------------------------*/ … … 212 195 ret = hc_schedule(hc, batch); 213 196 if (ret != EOK) { 214 batch_dispose(batch);197 usb_transfer_batch_dispose(batch); 215 198 } 216 199 return ret; … … 240 223 ret = hc_schedule(hc, batch); 241 224 if (ret != EOK) { 242 batch_dispose(batch);225 usb_transfer_batch_dispose(batch); 243 226 } 244 227 return ret; … … 268 251 ret = hc_schedule(hc, batch); 269 252 if (ret != EOK) { 270 batch_dispose(batch);253 usb_transfer_batch_dispose(batch); 271 254 } 272 255 return ret; … … 296 279 ret = hc_schedule(hc, batch); 297 280 if (ret != EOK) { 298 batch_dispose(batch);281 usb_transfer_batch_dispose(batch); 299 282 } 300 283 return ret; … … 329 312 ret = hc_schedule(hc, batch); 330 313 if (ret != EOK) { 331 batch_dispose(batch);314 usb_transfer_batch_dispose(batch); 332 315 } 333 316 return ret; … … 361 344 ret = hc_schedule(hc, batch); 362 345 if (ret != EOK) { 363 batch_dispose(batch);346 usb_transfer_batch_dispose(batch); 364 347 } 365 348 return ret;
Note:
See TracChangeset
for help on using the changeset viewer.