From 75384e609293eebaaf9c60dc5c2690bc6e95d74a Mon Sep 17 00:00:00 2001 From: Marcus Overhagen Date: Mon, 19 Nov 2012 17:36:14 +0100 Subject: [PATCH] Enable PCI memory access and interrupt --- .../kernel/drivers/audio/hda/hda_controller.cpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp b/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp index 2f281c3909..cdebc554dc 100644 --- a/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp +++ b/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp @@ -869,11 +869,20 @@ hda_hw_init(hda_controller* controller) controller->pci_info.device, controller->pci_info.function, PCI_command, 2); if (!(cmd & PCI_command_master)) { - (gPci->write_pci_config)(controller->pci_info.bus, - controller->pci_info.device, controller->pci_info.function, - PCI_command, 2, cmd | PCI_command_master); dprintf("hda: enabling PCI bus mastering\n"); + cmd |= PCI_command_master; } + if (!(cmd & PCI_command_memory)) { + dprintf("hda: enabling PCI memory access\n"); + cmd |= PCI_command_memory; + } + if ((cmd & PCI_command_int_disable)) { + dprintf("hda: enabling PCI interrupts\n"); + cmd &= ~PCI_command_int_disable; + } + (gPci->write_pci_config)(controller->pci_info.bus, + controller->pci_info.device, controller->pci_info.function, + PCI_command, 2, cmd); if (get_module(B_PCI_X86_MODULE_NAME, (module_info**)&sPCIx86Module) != B_OK)