Changes in uspace/drv/uhci-hcd/iface.c [2cc6e97:a19a2d7] in mainline
- File:
-
- 1 edited
-
uspace/drv/uhci-hcd/iface.c (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/uhci-hcd/iface.c
r2cc6e97 ra19a2d7 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 68 65 const size_t bw = bandwidth_count_usb11( 69 66 ep->speed, ep->transfer_type, size, ep->max_packet_size); … … 71 68 usb_log_error("Endpoint(%d:%d) %s needs %zu bw " 72 69 "but only %zu is reserved.\n", 73 target.address, target.endpoint, name, bw, res_bw);70 name, target.address, target.endpoint, bw, res_bw); 74 71 return ENOSPC; 75 72 } 73 usb_log_debug("%s %d:%d %zu(%zu).\n", 74 name, target.address, target.endpoint, size, ep->max_packet_size); 76 75 77 76 *batch = batch_get( … … 147 146 hc_t *hc = fun_to_hc(fun); 148 147 assert(hc); 149 const size_t size = max_packet_size;150 148 usb_speed_t speed = usb_device_keeper_get_speed(&hc->manager, address); 151 149 if (speed >= USB_SPEED_MAX) { 152 150 speed = ep_speed; 153 151 } 152 const size_t size = 153 (transfer_type == USB_TRANSFER_INTERRUPT 154 || 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 154 168 usb_log_debug("Register endpoint %d:%d %s %s(%d) %zu(%zu) %u.\n", 155 169 address, endpoint, usb_str_transfer_type(transfer_type), 156 170 usb_str_speed(speed), direction, size, max_packet_size, interval); 157 171 158 return usb_endpoint_manager_add_ep(&hc->ep_manager, address, endpoint, 159 direction, transfer_type, speed, max_packet_size, size); 172 ret = usb_endpoint_manager_register_ep(&hc->ep_manager, ep, size); 173 if (ret != EOK) { 174 endpoint_destroy(ep); 175 } 176 return ret; 160 177 } 161 178 /*----------------------------------------------------------------------------*/ … … 195 212 ret = hc_schedule(hc, batch); 196 213 if (ret != EOK) { 197 usb_transfer_batch_dispose(batch);214 batch_dispose(batch); 198 215 } 199 216 return ret; … … 223 240 ret = hc_schedule(hc, batch); 224 241 if (ret != EOK) { 225 usb_transfer_batch_dispose(batch);242 batch_dispose(batch); 226 243 } 227 244 return ret; … … 251 268 ret = hc_schedule(hc, batch); 252 269 if (ret != EOK) { 253 usb_transfer_batch_dispose(batch);270 batch_dispose(batch); 254 271 } 255 272 return ret; … … 279 296 ret = hc_schedule(hc, batch); 280 297 if (ret != EOK) { 281 usb_transfer_batch_dispose(batch);298 batch_dispose(batch); 282 299 } 283 300 return ret; … … 312 329 ret = hc_schedule(hc, batch); 313 330 if (ret != EOK) { 314 usb_transfer_batch_dispose(batch);331 batch_dispose(batch); 315 332 } 316 333 return ret; … … 344 361 ret = hc_schedule(hc, batch); 345 362 if (ret != EOK) { 346 usb_transfer_batch_dispose(batch);363 batch_dispose(batch); 347 364 } 348 365 return ret;
Note:
See TracChangeset
for help on using the changeset viewer.
