Changeset d017cea in mainline for uspace/drv/ohci


Ignore:
Timestamp:
2011-04-12T10:09:56Z (15 years ago)
Author:
Jan Vesely <jano.vesely@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
508a0ca
Parents:
f13381b
Message:

Remove EP information stored in usb_transfer_batch_t

rename usb_transfer_batch_t.transport_buffer ⇒ data_buffer

Location:
uspace/drv/ohci
Files:
3 edited

Legend:

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

    rf13381b rd017cea  
    7373        CHECK_NULL_DISPOSE_RETURN(instance,
    7474            "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);
    8077
    8178        ohci_batch_t *data = malloc(sizeof(ohci_batch_t));
     
    10198
    10299        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,
    105102                    "Failed to allocate device accessible buffer.\n");
    106103        }
     
    124121        free32(data->tds);
    125122        free32(instance->setup_buffer);
    126         free32(instance->transport_buffer);
     123        free32(instance->data_buffer);
    127124        free(data);
    128125        free(instance);
     
    165162        assert(instance);
    166163        /* 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);
    169165        instance->next_step = batch_call_out_and_dispose;
    170166        batch_control(instance, USB_DIRECTION_OUT, USB_DIRECTION_IN);
     
    183179{
    184180        assert(instance);
    185         assert(instance->direction == USB_DIRECTION_IN);
    186181        instance->next_step = batch_call_in_and_dispose;
    187182        batch_data(instance);
     
    192187{
    193188        assert(instance);
    194         assert(instance->direction == USB_DIRECTION_OUT);
    195189        /* 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);
    198191        instance->next_step = batch_call_out_and_dispose;
    199192        batch_data(instance);
     
    204197{
    205198        assert(instance);
    206         instance->direction = USB_DIRECTION_IN;
    207199        instance->next_step = batch_call_in_and_dispose;
    208200        batch_data(instance);
     
    213205{
    214206        assert(instance);
    215         instance->direction = USB_DIRECTION_IN;
    216207        instance->next_step = batch_call_in_and_dispose;
    217208        batch_data(instance);
     
    249240        size_t td_current = 1;
    250241        size_t remain_size = instance->buffer_size;
    251         char *transfer_buffer = instance->transport_buffer;
     242        char *buffer = instance->data_buffer;
    252243        while (remain_size > 0) {
    253244                size_t transfer_size = remain_size > OHCI_TD_MAX_TRANSFER ?
     
    255246                toggle = 1 - toggle;
    256247
    257                 td_init(&data->tds[td_current], data_dir, transfer_buffer,
     248                td_init(&data->tds[td_current], data_dir, buffer,
    258249                    transfer_size, toggle);
    259250                td_set_next(&data->tds[td_current], &data->tds[td_current + 1]);
     
    262253                    data->tds[td_current].next, data->tds[td_current].be);
    263254
    264                 transfer_buffer += transfer_size;
     255                buffer += transfer_size;
    265256                remain_size -= transfer_size;
    266257                assert(td_current < data->td_count - 2);
     
    290281        size_t td_current = 0;
    291282        size_t remain_size = instance->buffer_size;
    292         char *transfer_buffer = instance->transport_buffer;
     283        char *buffer = instance->data_buffer;
    293284        while (remain_size > 0) {
    294285                size_t transfer_size = remain_size > OHCI_TD_MAX_TRANSFER ?
     
    296287
    297288                td_init(&data->tds[td_current], instance->ep->direction,
    298                     transfer_buffer, transfer_size, -1);
     289                    buffer, transfer_size, -1);
    299290                td_set_next(&data->tds[td_current], &data->tds[td_current + 1]);
    300291                usb_log_debug("Created DATA TD: %x:%x:%x:%x.\n",
     
    302293                    data->tds[td_current].next, data->tds[td_current].be);
    303294
    304                 transfer_buffer += transfer_size;
     295                buffer += transfer_size;
    305296                remain_size -= transfer_size;
    306297                assert(td_current < data->td_count);
  • uspace/drv/ohci/hc.c

    rf13381b rd017cea  
    130130        assert(instance);
    131131        assert(batch);
     132        assert(batch->ep);
    132133
    133134        /* check for root hub communication */
    134         if (batch->target.address == instance->rh.address) {
     135        if (batch->ep->address == instance->rh.address) {
    135136                return rh_request(&instance->rh, batch);
    136137        }
    137138
    138139        fibril_mutex_lock(&instance->guard);
    139         switch (batch->transfer_type) {
     140        switch (batch->ep->transfer_type) {
    140141        case USB_TRANSFER_CONTROL:
    141142                instance->registers->control &= ~C_CLE;
    142143                transfer_list_add_batch(
    143                     instance->transfers[batch->transfer_type], batch);
     144                    instance->transfers[batch->ep->transfer_type], batch);
    144145                instance->registers->command_status |= CS_CLF;
    145146                usb_log_debug2("Set CS control transfer filled: %x.\n",
     
    151152                instance->registers->control &= ~C_BLE;
    152153                transfer_list_add_batch(
    153                     instance->transfers[batch->transfer_type], batch);
     154                    instance->transfers[batch->ep->transfer_type], batch);
    154155                instance->registers->command_status |= CS_BLF;
    155156                usb_log_debug2("Set bulk transfer filled: %x.\n",
     
    161162                instance->registers->control &= (~C_PLE & ~C_IE);
    162163                transfer_list_add_batch(
    163                     instance->transfers[batch->transfer_type], batch);
     164                    instance->transfers[batch->ep->transfer_type], batch);
    164165                instance->registers->control |= C_PLE | C_IE;
    165166                usb_log_debug2("Added periodic transfer: %x.\n",
  • uspace/drv/ohci/root_hub.c

    rf13381b rd017cea  
    237237        assert(request);
    238238        int opResult;
    239         if (request->transfer_type == USB_TRANSFER_CONTROL) {
     239        if (request->ep->transfer_type == USB_TRANSFER_CONTROL) {
    240240                usb_log_info("Root hub got CONTROL packet\n");
    241241                opResult = process_ctrl_request(instance, request);
    242         } else if (request->transfer_type == USB_TRANSFER_INTERRUPT) {
     242        } else if (request->ep->transfer_type == USB_TRANSFER_INTERRUPT) {
    243243                usb_log_info("Root hub got INTERRUPT packet\n");
    244244                void * buffer;
    245245                create_interrupt_mask(instance, &buffer,
    246246                        &(request->transfered_size));
    247                 memcpy(request->transport_buffer, buffer,
     247                memcpy(request->data_buffer, buffer,
    248248                        request->transfered_size);
    249249                opResult = EOK;
     
    374374        if (port < 1 || port > instance->port_count)
    375375                return EINVAL;
    376         uint32_t * uint32_buffer = (uint32_t*) request->transport_buffer;
     376        uint32_t * uint32_buffer = (uint32_t*) request->data_buffer;
    377377        request->transfered_size = 4;
    378378        uint32_buffer[0] = instance->registers->rh_port_status[port - 1];
     
    400400static int process_get_hub_status_request(rh_t *instance,
    401401        usb_transfer_batch_t * request) {
    402         uint32_t * uint32_buffer = (uint32_t*) request->transport_buffer;
     402        uint32_t * uint32_buffer = (uint32_t*) request->data_buffer;
    403403        request->transfered_size = 4;
    404404        //bits, 0,1,16,17
     
    550550        }
    551551        request->transfered_size = size;
    552         memcpy(request->transport_buffer, result_descriptor, size);
     552        memcpy(request->data_buffer, result_descriptor, size);
    553553        if (del)
    554554                free(result_descriptor);
     
    571571        if (request->buffer_size != 1)
    572572                return EINVAL;
    573         request->transport_buffer[0] = 1;
     573        request->data_buffer[0] = 1;
    574574        request->transfered_size = 1;
    575575        return EOK;
Note: See TracChangeset for help on using the changeset viewer.