Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/ohci/batch.c

    rd017cea raa9ccf7  
    7373        CHECK_NULL_DISPOSE_RETURN(instance,
    7474            "Failed to allocate batch instance.\n");
    75         usb_transfer_batch_init(instance, ep, buffer, NULL, buffer_size,
    76             NULL, setup_size, func_in, func_out, arg, fun, NULL);
     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);
    7780
    7881        ohci_batch_t *data = malloc(sizeof(ohci_batch_t));
     
    98101
    99102        if (buffer_size > 0) {
    100                 instance->data_buffer = malloc32(buffer_size);
    101                 CHECK_NULL_DISPOSE_RETURN(instance->data_buffer,
     103                instance->transport_buffer = malloc32(buffer_size);
     104                CHECK_NULL_DISPOSE_RETURN(instance->transport_buffer,
    102105                    "Failed to allocate device accessible buffer.\n");
    103106        }
     
    121124        free32(data->tds);
    122125        free32(instance->setup_buffer);
    123         free32(instance->data_buffer);
     126        free32(instance->transport_buffer);
    124127        free(data);
    125128        free(instance);
     
    162165        assert(instance);
    163166        /* We are data out, we are supposed to provide data */
    164         memcpy(instance->data_buffer, instance->buffer, instance->buffer_size);
     167        memcpy(instance->transport_buffer, instance->buffer,
     168            instance->buffer_size);
    165169        instance->next_step = batch_call_out_and_dispose;
    166170        batch_control(instance, USB_DIRECTION_OUT, USB_DIRECTION_IN);
     
    179183{
    180184        assert(instance);
     185        assert(instance->direction == USB_DIRECTION_IN);
    181186        instance->next_step = batch_call_in_and_dispose;
    182187        batch_data(instance);
     
    187192{
    188193        assert(instance);
     194        assert(instance->direction == USB_DIRECTION_OUT);
    189195        /* We are data out, we are supposed to provide data */
    190         memcpy(instance->data_buffer, instance->buffer, instance->buffer_size);
     196        memcpy(instance->transport_buffer, instance->buffer,
     197            instance->buffer_size);
    191198        instance->next_step = batch_call_out_and_dispose;
    192199        batch_data(instance);
     
    197204{
    198205        assert(instance);
     206        instance->direction = USB_DIRECTION_IN;
    199207        instance->next_step = batch_call_in_and_dispose;
    200208        batch_data(instance);
     
    205213{
    206214        assert(instance);
     215        instance->direction = USB_DIRECTION_IN;
    207216        instance->next_step = batch_call_in_and_dispose;
    208217        batch_data(instance);
     
    240249        size_t td_current = 1;
    241250        size_t remain_size = instance->buffer_size;
    242         char *buffer = instance->data_buffer;
     251        char *transfer_buffer = instance->transport_buffer;
    243252        while (remain_size > 0) {
    244253                size_t transfer_size = remain_size > OHCI_TD_MAX_TRANSFER ?
     
    246255                toggle = 1 - toggle;
    247256
    248                 td_init(&data->tds[td_current], data_dir, buffer,
     257                td_init(&data->tds[td_current], data_dir, transfer_buffer,
    249258                    transfer_size, toggle);
    250259                td_set_next(&data->tds[td_current], &data->tds[td_current + 1]);
     
    253262                    data->tds[td_current].next, data->tds[td_current].be);
    254263
    255                 buffer += transfer_size;
     264                transfer_buffer += transfer_size;
    256265                remain_size -= transfer_size;
    257266                assert(td_current < data->td_count - 2);
     
    281290        size_t td_current = 0;
    282291        size_t remain_size = instance->buffer_size;
    283         char *buffer = instance->data_buffer;
     292        char *transfer_buffer = instance->transport_buffer;
    284293        while (remain_size > 0) {
    285294                size_t transfer_size = remain_size > OHCI_TD_MAX_TRANSFER ?
     
    287296
    288297                td_init(&data->tds[td_current], instance->ep->direction,
    289                     buffer, transfer_size, -1);
     298                    transfer_buffer, transfer_size, -1);
    290299                td_set_next(&data->tds[td_current], &data->tds[td_current + 1]);
    291300                usb_log_debug("Created DATA TD: %x:%x:%x:%x.\n",
     
    293302                    data->tds[td_current].next, data->tds[td_current].be);
    294303
    295                 buffer += transfer_size;
     304                transfer_buffer += transfer_size;
    296305                remain_size -= transfer_size;
    297306                assert(td_current < data->td_count);
Note: See TracChangeset for help on using the changeset viewer.