File tree Expand file tree Collapse file tree 1 file changed +6
-0
lines changed Expand file tree Collapse file tree 1 file changed +6
-0
lines changed Original file line number Diff line number Diff line change @@ -606,6 +606,7 @@ static void done_queue_isr(uint8_t hostid)
606
606
607
607
// done head is written in reversed order of completion --> need to reverse the done queue first
608
608
ohci_td_item_t * td_head = list_reverse ( (ohci_td_item_t * ) tu_align16 (ohci_data .hcca .done_head ) );
609
+ ohci_data .hcca .done_head = 0 ;
609
610
610
611
while ( td_head != NULL )
611
612
{
@@ -652,6 +653,9 @@ void hcd_int_handler(uint8_t hostid)
652
653
653
654
if (int_status == 0 ) return ;
654
655
656
+ // Disable MIE as per OHCI spec 5.3
657
+ OHCI_REG -> interrupt_disable = OHCI_INT_MASTER_ENABLE_MASK ;
658
+
655
659
// Frame number overflow
656
660
if ( int_status & OHCI_INT_FRAME_OVERFLOW_MASK )
657
661
{
@@ -694,6 +698,8 @@ void hcd_int_handler(uint8_t hostid)
694
698
}
695
699
696
700
OHCI_REG -> interrupt_status = int_status ; // Acknowledge handled interrupt
701
+
702
+ OHCI_REG -> interrupt_enable = OHCI_INT_MASTER_ENABLE_MASK ; // Enable MIE
697
703
}
698
704
//--------------------------------------------------------------------+
699
705
// HELPER
You can’t perform that action at this time.
0 commit comments