Changes in uspace/drv/ohci/batch.c [aa9ccf7:f1be95c8] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/ohci/batch.c
raa9ccf7 rf1be95c8 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 if (!td_is_finished(&data->tds[i])) { 140 if (!td_is_finished(&data->tds[i])) 148 141 return false; 149 }150 142 instance->error = td_error(&data->tds[i]); 151 143 /* FIXME: calculate real transfered size */ … … 185 177 assert(instance->direction == USB_DIRECTION_IN); 186 178 instance->next_step = batch_call_in_and_dispose; 187 batch_data(instance);179 /* TODO: implement */ 188 180 usb_log_debug("Batch(%p) INTERRUPT IN initialized.\n", instance); 189 181 } … … 197 189 instance->buffer_size); 198 190 instance->next_step = batch_call_out_and_dispose; 199 batch_data(instance);191 /* TODO: implement */ 200 192 usb_log_debug("Batch(%p) INTERRUPT OUT initialized.\n", instance); 201 193 } … … 206 198 instance->direction = USB_DIRECTION_IN; 207 199 instance->next_step = batch_call_in_and_dispose; 208 batch_data(instance);200 /* TODO: implement */ 209 201 usb_log_debug("Batch(%p) BULK IN initialized.\n", instance); 210 202 } … … 215 207 instance->direction = USB_DIRECTION_IN; 216 208 instance->next_step = batch_call_in_and_dispose; 217 batch_data(instance);209 /* TODO: implement */ 218 210 usb_log_debug("Batch(%p) BULK IN initialized.\n", instance); 219 211 } … … 235 227 ed_init(data->ed, instance->ep); 236 228 ed_add_tds(data->ed, &data->tds[0], &data->tds[data->td_count - 1]); 237 usb_log_debug("Created ED(%p): %x:%x:%x:%x.\n", data->ed, 238 data->ed->status, data->ed->td_tail, data->ed->td_head, 239 data->ed->next); 229 usb_log_debug("Created ED: %x:%x:%x:%x.\n", data->ed->status, 230 data->ed->td_tail, data->ed->td_head, data->ed->next); 240 231 int toggle = 0; 241 232 /* setup stage */ … … 276 267 } 277 268 /*----------------------------------------------------------------------------*/ 278 void batch_data(usb_transfer_batch_t *instance)279 {280 assert(instance);281 ohci_batch_t *data = instance->private_data;282 assert(data);283 ed_init(data->ed, instance->ep);284 ed_add_tds(data->ed, &data->tds[0], &data->tds[data->td_count - 1]);285 usb_log_debug("Created ED(%p): %x:%x:%x:%x.\n", data->ed,286 data->ed->status, data->ed->td_tail, data->ed->td_head,287 data->ed->next);288 289 /* data stage */290 size_t td_current = 0;291 size_t remain_size = instance->buffer_size;292 char *transfer_buffer = instance->transport_buffer;293 while (remain_size > 0) {294 size_t transfer_size = remain_size > OHCI_TD_MAX_TRANSFER ?295 OHCI_TD_MAX_TRANSFER : remain_size;296 297 td_init(&data->tds[td_current], instance->ep->direction,298 transfer_buffer, transfer_size, -1);299 td_set_next(&data->tds[td_current], &data->tds[td_current + 1]);300 usb_log_debug("Created DATA TD: %x:%x:%x:%x.\n",301 data->tds[td_current].status, data->tds[td_current].cbp,302 data->tds[td_current].next, data->tds[td_current].be);303 304 transfer_buffer += transfer_size;305 remain_size -= transfer_size;306 assert(td_current < data->td_count);307 ++td_current;308 }309 }310 /*----------------------------------------------------------------------------*/311 269 /** Helper function calls callback and correctly disposes of batch structure. 312 270 *
Note:
See TracChangeset
for help on using the changeset viewer.