Skip to content

Commit

Permalink
Backport: Set the correct mask via ohciEnableInt when enabling interrupt
Browse files Browse the repository at this point in the history
This fix extends rev 39050. When interrupt is disabled via ohicDisableInt
is it removed from hc_PCIIntEnMask. Enabling HUBCHANGE interrupt without
setting this mask was causing the interrupt to be raised but without
code to handle, causing USB to stop issuing next interrupts.

Problem became visible when starting ASUS M2N68-AM SE2 with usb
keyboard and pendrive connected. USB interrupt was not handled correctly
and USB stack was freezing, blocking IRQ5 which also happened
to be IRQ of SATA.

This fixes #111
  • Loading branch information
deadwood committed Nov 25, 2023
1 parent 08c546f commit 16223d8
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion rom/usb/pciusb/ohcichip.c
Original file line number Diff line number Diff line change
Expand Up @@ -1165,7 +1165,7 @@ static AROS_INTH1(ohciIntCode, struct PCIController *, hc)
}
return FALSE;
}
WRITEREG32_LE(hc->hc_RegBase, OHCI_INTEN, OISF_HUBCHANGE);
ohciEnableInt(hc, OISF_HUBCHANGE);
if(intr & OISF_FRAMECOUNTOVER)
{
hc->hc_FrameCounter |= 0x7fff;
Expand Down

0 comments on commit 16223d8

Please sign in to comment.