Changeset a963a68 in mainline for uspace/drv/uhci-hcd/uhci_hc.c


Ignore:
Timestamp:
2011-03-15T14:43:51Z (14 years ago)
Author:
Jan Vesely <jano.vesely@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
eb2a48a
Parents:
9370884
Message:

Hw error handling.

File:
1 edited

Legend:

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

    r9370884 ra963a68  
    347347{
    348348        assert(instance);
    349         /* TODO: Check interrupt cause here */
     349        /* TODO: Resume interrupts are not supported */
    350350        /* Lower 2 bits are transaction error and transaction complete */
    351351        if (status & 0x3) {
     
    354354                transfer_list_remove_finished(&instance->transfers_control_full);
    355355                transfer_list_remove_finished(&instance->transfers_bulk_full);
     356        }
     357        /* bits 4 and 5 indicate hc error */
     358        if (status & 0x18) {
     359                transfer_list_abort_all(&instance->transfers_interrupt);
     360                transfer_list_abort_all(&instance->transfers_control_slow);
     361                transfer_list_abort_all(&instance->transfers_control_full);
     362                transfer_list_abort_all(&instance->transfers_bulk_full);
     363                /* reinitialize hw, this triggers virtual disconnect*/
     364                uhci_hc_init_hw(instance);
    356365        }
    357366}
Note: See TracChangeset for help on using the changeset viewer.