diff --git a/drivers/nvme/nvme.asm b/drivers/nvme/nvme.asm index 37157e4..d66c198 100644 --- a/drivers/nvme/nvme.asm +++ b/drivers/nvme/nvme.asm @@ -875,6 +875,13 @@ proc nvme_init stdcall, pci:dword push ebx esi edi mov esi, dword [pci] + + ; Check the PCI header to see if interrupts are disabled, if so + ; we have to re-enable them + invoke PciRead16, dword [esi + pcidev.bus], dword [esi + pcidev.devfn], PCI_header00.command + and eax, not (1 shl 10) + invoke PciWrite16, dword [esi + pcidev.bus], dword [esi + pcidev.devfn], PCI_header00.command, eax + mov edi, dword [esi + pcidev.io_addr] if 0