Ignore:
File:
1 edited

Legend:

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

    r0db3ad6 r71b6e92  
    372372        assert(instance);
    373373        /* TODO: Check interrupt cause here */
    374         /* Lower 2 bits are transaction error and transaction complete */
    375         if (status & 0x3) {
    376                 transfer_list_remove_finished(&instance->transfers_interrupt);
    377                 transfer_list_remove_finished(&instance->transfers_control_slow);
    378                 transfer_list_remove_finished(&instance->transfers_control_full);
    379                 transfer_list_remove_finished(&instance->transfers_bulk_full);
    380         }
     374        transfer_list_remove_finished(&instance->transfers_interrupt);
     375        transfer_list_remove_finished(&instance->transfers_control_slow);
     376        transfer_list_remove_finished(&instance->transfers_control_full);
     377        transfer_list_remove_finished(&instance->transfers_bulk_full);
    381378}
    382379/*----------------------------------------------------------------------------*/
     
    393390
    394391        while (1) {
    395                 /* read and ack interrupts */
    396392                uint16_t status = pio_read_16(&instance->registers->usbsts);
    397                 pio_write_16(&instance->registers->usbsts, 0x1f);
    398393                if (status != 0)
    399394                        usb_log_debug2("UHCI status: %x.\n", status);
     395                status |= 1;
    400396                uhci_interrupt(instance, status);
     397                pio_write_16(&instance->registers->usbsts, 0x1f);
    401398                async_usleep(UHCI_CLEANER_TIMEOUT);
    402399        }
Note: See TracChangeset for help on using the changeset viewer.