From 19c416bbd032bc9eee448b195c6af6c22da79c17 Mon Sep 17 00:00:00 2001 From: Rudolf Cornelissen Date: Tue, 14 Oct 2008 20:04:19 +0000 Subject: [PATCH] added recognition for subclass PCI_mass_storage_other since my promise ide controller Ultra133TX2 reports being one, and there are others as well. My system is now booting with IDE and ATA busmanager using the promise controller, and DMA works perfectly. If the addition of PCI_mass_storage_other regresses booting then cardID's and manID's should be added that may report PCI_mass_storage_other since otherwise certain systems are rendered unbootable. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28104 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../busses/ide/generic_ide_pci/generic_ide_pci.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/add-ons/kernel/busses/ide/generic_ide_pci/generic_ide_pci.c b/src/add-ons/kernel/busses/ide/generic_ide_pci/generic_ide_pci.c index f9c764cec7..1118d07173 100644 --- a/src/add-ons/kernel/busses/ide/generic_ide_pci/generic_ide_pci.c +++ b/src/add-ons/kernel/busses/ide/generic_ide_pci/generic_ide_pci.c @@ -166,11 +166,18 @@ supports_device(device_node *parent) || pnp->get_attr_uint16(parent, B_DEVICE_SUB_TYPE, &subClass, false) != B_OK) return -1; - if (strcmp(bus, "pci") || baseClass != PCI_mass_storage - || subClass != PCI_ide) + if (strcmp(bus, "pci") || baseClass != PCI_mass_storage) return 0.0f; - return 0.3f; + if (subClass == PCI_ide) + return 0.3f; + + // vendor 105a: Promise Technology, Inc.; device 4d69: 20269 (Ultra133TX2) + // has subClass set to PCI_mass_storage_other, and there are others as well. + if (subClass == PCI_mass_storage_other) + return 0.3f; + + return 0.0f; }