Changeset 3da5eb9 in mainline for uspace/drv/uhci/uhci.c


Ignore:
Timestamp:
2011-01-28T19:07:41Z (13 years ago)
Author:
Jan Vesely <jano.vesely@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
f0e25e8
Parents:
01656f2
Message:

Fixed: add buffer pointer to TD on initialization

Added status info on Inactive transfer debug output

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/uhci/uhci.c

    r01656f2 r3da5eb9  
    8585
    8686        uhci_print_verbose("Starting UHCI HC.\n");
     87        pio_write_16(&instance->registers->usbcmd, UHCI_CMD_RUN_STOP);
     88/*
    8789        uint16_t cmd = pio_read_16(&instance->registers->usbcmd);
    88         cmd |= UHCI_CMD_RUN_STOP | UHCI_CMD_CONFIGURE;
     90        cmd |= UHCI_CMD_DEBUG;
    8991        pio_write_16(&instance->registers->usbcmd, cmd);
    90 
     92*/
    9193        device->driver_data = instance;
    9294        return EOK;
     
    163165        CHECK_RET_TRANS_FREE_JOB_TD("Failed to allocate callback structure.\n");
    164166
    165         td = transfer_descriptor_get(3, size, false, target, pid);
     167        td = transfer_descriptor_get(3, size, false, target, pid, job->new_buffer);
    166168        ret = td ? EOK : ENOMEM;
    167169        CHECK_RET_TRANS_FREE_JOB_TD("Failed to setup transfer descriptor.\n");
     
    178180        return EOK;
    179181}
    180 /*----------------------------------------------------------------------------*/
     182/*---------------------------------------------------------------------------*/
    181183int uhci_clean_finished(void* arg)
    182184{
     
    196198                        uhci_print_verbose("Running cleaning fibril on queue: %p (%s).\n",
    197199                                &instance->transfers[i], it ? "SOMETHING" : "EMPTY");
     200
     201                if (it)
     202                        uhci_print_verbose("First in queue: %p (%x).\n",
     203                                it, it->status);
     204
    198205                        while (instance->transfers[i].first &&
    199206                         !(instance->transfers[i].first->status & TD_STATUS_ERROR_ACTIVE)) {
    200207                                transfer_descriptor_t *transfer = instance->transfers[i].first;
    201                                 uhci_print_info("Inactive transfer calling callback.\n");
     208                                uhci_print_info("Inactive transfer calling callback with status %x.\n",
     209                                  transfer->status);
    202210                                instance->transfers[i].first = transfer->next_va;
    203211                                transfer_descriptor_dispose(transfer);
     
    213221int uhci_debug_checker(void *arg)
    214222{
    215         return 0;
    216223        uhci_t *instance = (uhci_t*)arg;
    217224        assert(instance);
     
    222229                reg = pio_read_16(&instance->registers->usbsts);
    223230                uhci_print_verbose("Status register: %X\n", reg);
     231/*
    224232                uintptr_t frame_list = pio_read_32(&instance->registers->flbaseadd);
    225233                uhci_print_verbose("Framelist address: %p vs. %p.\n",
     
    238246                uhci_print_verbose("Bulk QH: %p vs. %p.\n", qh->next_queue,
    239247                        addr_to_phys(instance->transfers[USB_TRANSFER_BULK].queue_head));
     248        uint16_t cmd = pio_read_16(&instance->registers->usbcmd);
     249        cmd |= UHCI_CMD_RUN_STOP;
     250        pio_write_16(&instance->registers->usbcmd, cmd);
     251*/
    240252
    241253                async_usleep(UHCI_DEBUGER_TIMEOUT);
Note: See TracChangeset for help on using the changeset viewer.