Changeset f1be95c8 in mainline for uspace/drv/ohci/batch.c


Ignore:
Timestamp:
2011-04-09T00:22:30Z (13 years ago)
Author:
Jan Vesely <jano.vesely@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
4c28d17
Parents:
e42dd32
Message:

Add forgotten TD implementation, add error parsing

File:
1 edited

Legend:

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

    re42dd32 rf1be95c8  
    118118{
    119119        assert(instance);
     120        ohci_batch_t *data = instance->private_data;
     121        assert(data);
     122        free32(data->ed);
     123        free32(data->tds);
     124        free32(instance->setup_buffer);
    120125        free32(instance->transport_buffer);
    121         free32(instance->setup_buffer);
     126        free(data);
    122127        free(instance);
    123128}
     
    125130bool batch_is_complete(usb_transfer_batch_t *instance)
    126131{
    127         // TODO: implement
    128         return false;
     132        assert(instance);
     133        ohci_batch_t *data = instance->private_data;
     134        assert(data);
     135        size_t tds = data->td_count - 1;
     136        usb_log_debug2("Batch(%p) checking %d td(s) for completion.\n",
     137            instance, tds);
     138        size_t i = 0;
     139        for (; i < tds; ++i) {
     140                if (!td_is_finished(&data->tds[i]))
     141                        return false;
     142                instance->error = td_error(&data->tds[i]);
     143                /* FIXME: calculate real transfered size */
     144                instance->transfered_size = instance->buffer_size;
     145                if (instance->error != EOK) {
     146                        usb_log_debug("Batch(%p) found error TD(%d):%x.\n",
     147                            instance, i, data->tds[i].status);
     148                        return true;
     149//                      endpoint_toggle_set(instance->ep,
     150                }
     151        }
     152        return true;
    129153}
    130154/*----------------------------------------------------------------------------*/
Note: See TracChangeset for help on using the changeset viewer.