diff --git a/src/usb.c b/src/usb.c index addc4b57e..19c17f865 100644 --- a/src/usb.c +++ b/src/usb.c @@ -195,6 +195,12 @@ ohci_mmio_read(uint32_t addr, void *p) case OHCI_HcRhPortStatus3 + 1: ret |= 0x1; break; + case OHCI_HcInterruptDisable: + case OHCI_HcInterruptDisable + 1: + case OHCI_HcInterruptDisable + 2: + case OHCI_HcInterruptDisable + 3: + ret = dev->ohci_mmio[OHCI_HcInterruptEnable + (addr - OHCI_HcInterruptDisable)]; + break; default: break; } @@ -433,6 +439,14 @@ ohci_mmio_write(uint32_t addr, uint8_t val, void *p) case OHCI_HcRhPortStatus1 + 3: case OHCI_HcRhPortStatus2 + 3: return; + case OHCI_HcDoneHead: + case OHCI_HcBulkCurrentED: + case OHCI_HcBulkHeadED: + case OHCI_HcControlCurrentED: + case OHCI_HcControlHeadED: + case OHCI_HcPeriodCurrentED: + dev->ohci_mmio[addr] = (val & 0xf0); + return; } dev->ohci_mmio[addr] = val;