Changes in uspace/drv/ohci/batch.c [c6fe469:8790650] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/ohci/batch.c
rc6fe469 r8790650 51 51 static void batch_control(usb_transfer_batch_t *instance, 52 52 usb_direction_t data_dir, usb_direction_t status_dir); 53 static void batch_data(usb_transfer_batch_t *instance);54 53 static void batch_call_in_and_dispose(usb_transfer_batch_t *instance); 55 54 static void batch_call_out_and_dispose(usb_transfer_batch_t *instance); … … 135 134 assert(data); 136 135 size_t tds = data->td_count - 1; 137 usb_log_debug ("Batch(%p) checking %d td(s) for completion.\n",136 usb_log_debug2("Batch(%p) checking %d td(s) for completion.\n", 138 137 instance, tds); 139 usb_log_debug("ED: %x:%x:%x:%x.\n",140 data->ed->status, data->ed->td_head, data->ed->td_tail,141 data->ed->next);142 138 size_t i = 0; 143 139 for (; i < tds; ++i) { 144 usb_log_debug("TD %d: %x:%x:%x:%x.\n", i,145 data->tds[i].status, data->tds[i].cbp, data->tds[i].next,146 data->tds[i].be);147 140 if (!td_is_finished(&data->tds[i])) 148 141 return false; … … 184 177 assert(instance->direction == USB_DIRECTION_IN); 185 178 instance->next_step = batch_call_in_and_dispose; 186 batch_data(instance);179 /* TODO: implement */ 187 180 usb_log_debug("Batch(%p) INTERRUPT IN initialized.\n", instance); 188 181 } … … 196 189 instance->buffer_size); 197 190 instance->next_step = batch_call_out_and_dispose; 198 batch_data(instance);191 /* TODO: implement */ 199 192 usb_log_debug("Batch(%p) INTERRUPT OUT initialized.\n", instance); 200 193 } … … 205 198 instance->direction = USB_DIRECTION_IN; 206 199 instance->next_step = batch_call_in_and_dispose; 207 batch_data(instance);200 /* TODO: implement */ 208 201 usb_log_debug("Batch(%p) BULK IN initialized.\n", instance); 209 202 } … … 214 207 instance->direction = USB_DIRECTION_IN; 215 208 instance->next_step = batch_call_in_and_dispose; 216 batch_data(instance);209 /* TODO: implement */ 217 210 usb_log_debug("Batch(%p) BULK IN initialized.\n", instance); 218 211 } … … 275 268 } 276 269 /*----------------------------------------------------------------------------*/ 277 void batch_data(usb_transfer_batch_t *instance)278 {279 assert(instance);280 ohci_batch_t *data = instance->private_data;281 assert(data);282 ed_init(data->ed, instance->ep);283 ed_add_tds(data->ed, &data->tds[0], &data->tds[data->td_count - 1]);284 usb_log_debug("Created ED(%p): %x:%x:%x:%x.\n", data->ed,285 data->ed->status, data->ed->td_tail, data->ed->td_head,286 data->ed->next);287 288 /* data stage */289 size_t td_current = 1;290 size_t remain_size = instance->buffer_size;291 char *transfer_buffer = instance->transport_buffer;292 while (remain_size > 0) {293 size_t transfer_size = remain_size > OHCI_TD_MAX_TRANSFER ?294 OHCI_TD_MAX_TRANSFER : remain_size;295 296 td_init(&data->tds[td_current], instance->ep->direction,297 transfer_buffer, transfer_size, -1);298 td_set_next(&data->tds[td_current], &data->tds[td_current + 1]);299 usb_log_debug("Created DATA TD: %x:%x:%x:%x.\n",300 data->tds[td_current].status, data->tds[td_current].cbp,301 data->tds[td_current].next, data->tds[td_current].be);302 303 transfer_buffer += transfer_size;304 remain_size -= transfer_size;305 assert(td_current < data->td_count);306 ++td_current;307 }308 }309 /*----------------------------------------------------------------------------*/310 270 /** Helper function calls callback and correctly disposes of batch structure. 311 271 *
Note:
See TracChangeset
for help on using the changeset viewer.