From 8a1c964d4f7493b0e57392c00a7c5cd4eda180c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= Date: Thu, 27 Feb 2020 21:07:25 +0100 Subject: [PATCH] hda: enable pci snooping on AMD non-hdmi. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit disable snooping on ATI non-hdmi. Change-Id: Ic62e8c7ae376a1e26646f88f308242eef3aa119e Reviewed-on: https://review.haiku-os.org/c/haiku/+/2287 Reviewed-by: Jérôme Duval --- .../kernel/drivers/audio/hda/hda_controller.cpp | 14 +++++++++++--- 1 file changed, 11 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 5bc08d9754..774a16dc95 100644 --- a/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp +++ b/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp @@ -34,7 +34,8 @@ #define ALIGN(size, align) (((size) + align - 1) & ~(align - 1)) -#define PCI_VENDOR_AMD 0x1002 +#define PCI_VENDOR_ATI 0x1002 +#define PCI_VENDOR_AMD 0x1022 #define PCI_VENDOR_CREATIVE 0x1102 #define PCI_VENDOR_INTEL 0x8086 #define PCI_VENDOR_NVIDIA 0x10de @@ -81,9 +82,15 @@ static const struct { { PCI_VENDOR_INTEL, 0xa171, HDA_QUIRK_SNOOP }, { PCI_VENDOR_INTEL, 0xa2f0, HDA_QUIRK_SNOOP }, { PCI_VENDOR_INTEL, 0xa348, HDA_QUIRK_SNOOP }, - // Enable snooping for ATI and Nvidia, right now for all their hda-devices, + { PCI_VENDOR_ATI, 0x437b, HDA_QUIRK_SNOOP }, + { PCI_VENDOR_ATI, 0x4383, HDA_QUIRK_SNOOP }, + { PCI_VENDOR_AMD, 0x157a, HDA_QUIRK_SNOOP }, + { PCI_VENDOR_AMD, 0x780d, HDA_QUIRK_SNOOP }, + { PCI_VENDOR_AMD, 0x1457, HDA_QUIRK_SNOOP }, + { PCI_VENDOR_AMD, 0x1487, HDA_QUIRK_SNOOP }, + { PCI_VENDOR_AMD, 0x15e3, HDA_QUIRK_SNOOP }, + // Enable snooping for Nvidia, right now for all their hda-devices, // but only based on guessing. - { PCI_VENDOR_AMD, PCI_ALL_DEVICES, HDA_QUIRK_SNOOP }, { PCI_VENDOR_NVIDIA, PCI_ALL_DEVICES, HDA_QUIRK_SNOOP | HDA_QUIRK_NO_MSI | HDA_QUIRK_NO_CORBRP_RESET_ACK }, { PCI_VENDOR_CREATIVE, 0x0010, HDA_QUIRK_NO_MSI }, @@ -1071,6 +1078,7 @@ hda_hw_init(hda_controller* controller) } case PCI_VENDOR_AMD: + case PCI_VENDOR_ATI: { controller->dma_snooping = update_pci_register(controller, ATI_HDA_MISC_CNTR2, ATI_HDA_MISC_CNTR2_MASK,