Ignore:
File:
1 edited

Legend:

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

    raa9ccf7 rf1be95c8  
    5151static void batch_control(usb_transfer_batch_t *instance,
    5252    usb_direction_t data_dir, usb_direction_t status_dir);
    53 static void batch_data(usb_transfer_batch_t *instance);
    5453static void batch_call_in_and_dispose(usb_transfer_batch_t *instance);
    5554static void batch_call_out_and_dispose(usb_transfer_batch_t *instance);
     
    135134        assert(data);
    136135        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",
    138137            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);
    142138        size_t i = 0;
    143139        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]))
    148141                        return false;
    149                 }
    150142                instance->error = td_error(&data->tds[i]);
    151143                /* FIXME: calculate real transfered size */
     
    185177        assert(instance->direction == USB_DIRECTION_IN);
    186178        instance->next_step = batch_call_in_and_dispose;
    187         batch_data(instance);
     179        /* TODO: implement */
    188180        usb_log_debug("Batch(%p) INTERRUPT IN initialized.\n", instance);
    189181}
     
    197189            instance->buffer_size);
    198190        instance->next_step = batch_call_out_and_dispose;
    199         batch_data(instance);
     191        /* TODO: implement */
    200192        usb_log_debug("Batch(%p) INTERRUPT OUT initialized.\n", instance);
    201193}
     
    206198        instance->direction = USB_DIRECTION_IN;
    207199        instance->next_step = batch_call_in_and_dispose;
    208         batch_data(instance);
     200        /* TODO: implement */
    209201        usb_log_debug("Batch(%p) BULK IN initialized.\n", instance);
    210202}
     
    215207        instance->direction = USB_DIRECTION_IN;
    216208        instance->next_step = batch_call_in_and_dispose;
    217         batch_data(instance);
     209        /* TODO: implement */
    218210        usb_log_debug("Batch(%p) BULK IN initialized.\n", instance);
    219211}
     
    235227        ed_init(data->ed, instance->ep);
    236228        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);
    240231        int toggle = 0;
    241232        /* setup stage */
     
    276267}
    277268/*----------------------------------------------------------------------------*/
    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 /*----------------------------------------------------------------------------*/
    311269/** Helper function calls callback and correctly disposes of batch structure.
    312270 *
Note: See TracChangeset for help on using the changeset viewer.