Changeset d017cea in mainline for uspace/drv/ohci/batch.c
- Timestamp:
- 2011-04-12T10:09:56Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 508a0ca
- Parents:
- f13381b
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/ohci/batch.c
rf13381b rd017cea 73 73 CHECK_NULL_DISPOSE_RETURN(instance, 74 74 "Failed to allocate batch instance.\n"); 75 usb_target_t target = 76 { .address = ep->address, .endpoint = ep->endpoint }; 77 usb_transfer_batch_init(instance, target, ep->transfer_type, ep->speed, 78 ep->max_packet_size, buffer, NULL, buffer_size, NULL, setup_size, 79 func_in, func_out, arg, fun, ep, NULL); 75 usb_transfer_batch_init(instance, ep, buffer, NULL, buffer_size, 76 NULL, setup_size, func_in, func_out, arg, fun, NULL); 80 77 81 78 ohci_batch_t *data = malloc(sizeof(ohci_batch_t)); … … 101 98 102 99 if (buffer_size > 0) { 103 instance-> transport_buffer = malloc32(buffer_size);104 CHECK_NULL_DISPOSE_RETURN(instance-> transport_buffer,100 instance->data_buffer = malloc32(buffer_size); 101 CHECK_NULL_DISPOSE_RETURN(instance->data_buffer, 105 102 "Failed to allocate device accessible buffer.\n"); 106 103 } … … 124 121 free32(data->tds); 125 122 free32(instance->setup_buffer); 126 free32(instance-> transport_buffer);123 free32(instance->data_buffer); 127 124 free(data); 128 125 free(instance); … … 165 162 assert(instance); 166 163 /* We are data out, we are supposed to provide data */ 167 memcpy(instance->transport_buffer, instance->buffer, 168 instance->buffer_size); 164 memcpy(instance->data_buffer, instance->buffer, instance->buffer_size); 169 165 instance->next_step = batch_call_out_and_dispose; 170 166 batch_control(instance, USB_DIRECTION_OUT, USB_DIRECTION_IN); … … 183 179 { 184 180 assert(instance); 185 assert(instance->direction == USB_DIRECTION_IN);186 181 instance->next_step = batch_call_in_and_dispose; 187 182 batch_data(instance); … … 192 187 { 193 188 assert(instance); 194 assert(instance->direction == USB_DIRECTION_OUT);195 189 /* We are data out, we are supposed to provide data */ 196 memcpy(instance->transport_buffer, instance->buffer, 197 instance->buffer_size); 190 memcpy(instance->data_buffer, instance->buffer, instance->buffer_size); 198 191 instance->next_step = batch_call_out_and_dispose; 199 192 batch_data(instance); … … 204 197 { 205 198 assert(instance); 206 instance->direction = USB_DIRECTION_IN;207 199 instance->next_step = batch_call_in_and_dispose; 208 200 batch_data(instance); … … 213 205 { 214 206 assert(instance); 215 instance->direction = USB_DIRECTION_IN;216 207 instance->next_step = batch_call_in_and_dispose; 217 208 batch_data(instance); … … 249 240 size_t td_current = 1; 250 241 size_t remain_size = instance->buffer_size; 251 char * transfer_buffer = instance->transport_buffer;242 char *buffer = instance->data_buffer; 252 243 while (remain_size > 0) { 253 244 size_t transfer_size = remain_size > OHCI_TD_MAX_TRANSFER ? … … 255 246 toggle = 1 - toggle; 256 247 257 td_init(&data->tds[td_current], data_dir, transfer_buffer,248 td_init(&data->tds[td_current], data_dir, buffer, 258 249 transfer_size, toggle); 259 250 td_set_next(&data->tds[td_current], &data->tds[td_current + 1]); … … 262 253 data->tds[td_current].next, data->tds[td_current].be); 263 254 264 transfer_buffer += transfer_size;255 buffer += transfer_size; 265 256 remain_size -= transfer_size; 266 257 assert(td_current < data->td_count - 2); … … 290 281 size_t td_current = 0; 291 282 size_t remain_size = instance->buffer_size; 292 char * transfer_buffer = instance->transport_buffer;283 char *buffer = instance->data_buffer; 293 284 while (remain_size > 0) { 294 285 size_t transfer_size = remain_size > OHCI_TD_MAX_TRANSFER ? … … 296 287 297 288 td_init(&data->tds[td_current], instance->ep->direction, 298 transfer_buffer, transfer_size, -1);289 buffer, transfer_size, -1); 299 290 td_set_next(&data->tds[td_current], &data->tds[td_current + 1]); 300 291 usb_log_debug("Created DATA TD: %x:%x:%x:%x.\n", … … 302 293 data->tds[td_current].next, data->tds[td_current].be); 303 294 304 transfer_buffer += transfer_size;295 buffer += transfer_size; 305 296 remain_size -= transfer_size; 306 297 assert(td_current < data->td_count);
Note:
See TracChangeset
for help on using the changeset viewer.