From f04362eac370efa2b6824b7109a737db126a526a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20A=C3=9Fmus?= Date: Sun, 10 May 2009 09:22:35 +0000 Subject: [PATCH] * Change the drivers that use the ATA stack (ata_adapter) to publish themselves in busses/ata instead of busses/ide. * Re-introduce Francois change to install these drivers in busses/ata when building with HAIKU_ATA_STACK = 1. * Adopted the device manager to look for drivers in busses/ata additionally to busses/ide. This change works fine with a clean installation on a computer where I can (and indeed have to) use the new ATA stack. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30695 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- build/jam/HaikuImage | 13 +++++++++++-- .../busses/ata/generic_ide_pci/generic_ide_pci.c | 4 ++-- src/add-ons/kernel/busses/ata/ide_isa/ide_isa.c | 2 +- src/add-ons/kernel/busses/ata/it8211/it8211.c | 4 ++-- .../kernel/busses/ata/legacy_sata/legacy_sata.c | 2 +- .../kernel/busses/ata/promise_tx2/promise_tx2.c | 4 ++-- .../ata/silicon_image_3112/silicon_image_3112.c | 8 ++++---- src/system/kernel/device_manager/device_manager.cpp | 2 ++ 8 files changed, 25 insertions(+), 14 deletions(-) diff --git a/build/jam/HaikuImage b/build/jam/HaikuImage index 21a34f2776..01e719573a 100644 --- a/build/jam/HaikuImage +++ b/build/jam/HaikuImage @@ -165,8 +165,17 @@ AddFilesToHaikuImage system add-ons kernel bus_managers : $(SYSTEM_ADD_ONS_BUS_MANAGERS) ; AddFilesToHaikuImage system add-ons kernel busses agp_gart : $(X86_ONLY)intel ; -AddFilesToHaikuImage system add-ons kernel busses ide - : generic_ide_pci it8211 legacy_sata silicon_image_3112 $(X86_ONLY)ide_isa ; + +if $(HAIKU_ATA_STACK) = 1 { + AddFilesToHaikuImage system add-ons kernel busses ata + : generic_ide_pci it8211 legacy_sata silicon_image_3112 + $(X86_ONLY)ide_isa ; +} else { + AddFilesToHaikuImage system add-ons kernel busses ide + : generic_ide_pci it8211 legacy_sata silicon_image_3112 + $(X86_ONLY)ide_isa ; +} + AddFilesToHaikuImage system add-ons kernel busses scsi : ahci ; AddFilesToHaikuImage system add-ons kernel busses usb diff --git a/src/add-ons/kernel/busses/ata/generic_ide_pci/generic_ide_pci.c b/src/add-ons/kernel/busses/ata/generic_ide_pci/generic_ide_pci.c index 1118d07173..c2e43c89cb 100644 --- a/src/add-ons/kernel/busses/ata/generic_ide_pci/generic_ide_pci.c +++ b/src/add-ons/kernel/busses/ata/generic_ide_pci/generic_ide_pci.c @@ -11,8 +11,8 @@ #include -#define GENERIC_IDE_PCI_CONTROLLER_MODULE_NAME "busses/ide/generic_ide_pci/driver_v1" -#define GENERIC_IDE_PCI_CHANNEL_MODULE_NAME "busses/ide/generic_ide_pci/channel/v1" +#define GENERIC_IDE_PCI_CONTROLLER_MODULE_NAME "busses/ata/generic_ide_pci/driver_v1" +#define GENERIC_IDE_PCI_CHANNEL_MODULE_NAME "busses/ata/generic_ide_pci/channel/v1" #define IDE_PCI_CONTROLLER_TYPE_NAME "ide pci controller" diff --git a/src/add-ons/kernel/busses/ata/ide_isa/ide_isa.c b/src/add-ons/kernel/busses/ata/ide_isa/ide_isa.c index 5887a13063..d10bb81531 100644 --- a/src/add-ons/kernel/busses/ata/ide_isa/ide_isa.c +++ b/src/add-ons/kernel/busses/ata/ide_isa/ide_isa.c @@ -30,7 +30,7 @@ #endif -#define IDE_ISA_MODULE_NAME "busses/ide/ide_isa/driver_v1" +#define IDE_ISA_MODULE_NAME "busses/ata/ide_isa/driver_v1" // private node item: // io address of command block diff --git a/src/add-ons/kernel/busses/ata/it8211/it8211.c b/src/add-ons/kernel/busses/ata/it8211/it8211.c index f48a75abc0..6ac275e42a 100644 --- a/src/add-ons/kernel/busses/ata/it8211/it8211.c +++ b/src/add-ons/kernel/busses/ata/it8211/it8211.c @@ -8,8 +8,8 @@ #include -#define IT8211_CONTROLLER_MODULE_NAME "busses/ide/it8211/driver_v1" -#define IT8211_CHANNEL_MODULE_NAME "busses/ide/it8211/channel/v1" +#define IT8211_CONTROLLER_MODULE_NAME "busses/ata/it8211/driver_v1" +#define IT8211_CHANNEL_MODULE_NAME "busses/ata/it8211/channel/v1" #define PCI_VENDOR_ITE 0x1283 #define PCI_DEVICE_ITE_IT8211 0x8211 diff --git a/src/add-ons/kernel/busses/ata/legacy_sata/legacy_sata.c b/src/add-ons/kernel/busses/ata/legacy_sata/legacy_sata.c index 15d37b5650..388d045f81 100644 --- a/src/add-ons/kernel/busses/ata/legacy_sata/legacy_sata.c +++ b/src/add-ons/kernel/busses/ata/legacy_sata/legacy_sata.c @@ -13,7 +13,7 @@ #define DRIVER_PRETTY_NAME "Legacy SATA" #define CONTROLLER_NAME DRIVER_PRETTY_NAME -#define CONTROLLER_MODULE_NAME "busses/ide/legacy_sata/driver_v1" +#define CONTROLLER_MODULE_NAME "busses/ata/legacy_sata/driver_v1" #define CHANNEL_MODULE_NAME "busses/ide/legacy_sata/channel/v1" #define TRACE(a...) dprintf(DRIVER_PRETTY_NAME ": " a) diff --git a/src/add-ons/kernel/busses/ata/promise_tx2/promise_tx2.c b/src/add-ons/kernel/busses/ata/promise_tx2/promise_tx2.c index 84401aed15..ab6ad656c0 100644 --- a/src/add-ons/kernel/busses/ata/promise_tx2/promise_tx2.c +++ b/src/add-ons/kernel/busses/ata/promise_tx2/promise_tx2.c @@ -21,8 +21,8 @@ #include "wrapper.h" -#define PROMISE_TX2_CONTROLLER_MODULE_NAME "busses/ide/promise_tx2/device_v1" -#define PROMISE_TX2_CHANNEL_MODULE_NAME "busses/ide/promise_tx2/channel/v1" +#define PROMISE_TX2_CONTROLLER_MODULE_NAME "busses/ata/promise_tx2/device_v1" +#define PROMISE_TX2_CHANNEL_MODULE_NAME "busses/ata/promise_tx2/channel/v1" static ide_for_controller_interface *ide; diff --git a/src/add-ons/kernel/busses/ata/silicon_image_3112/silicon_image_3112.c b/src/add-ons/kernel/busses/ata/silicon_image_3112/silicon_image_3112.c index 381e676651..f68a94dc03 100644 --- a/src/add-ons/kernel/busses/ata/silicon_image_3112/silicon_image_3112.c +++ b/src/add-ons/kernel/busses/ata/silicon_image_3112/silicon_image_3112.c @@ -19,8 +19,8 @@ #define DRIVER_PRETTY_NAME "Silicon Image SATA" #define CONTROLLER_NAME DRIVER_PRETTY_NAME -#define CONTROLLER_MODULE_NAME "busses/ide/silicon_image_3112/driver_v1" -#define CHANNEL_MODULE_NAME "busses/ide/silicon_image_3112/channel/v1" +#define CONTROLLER_MODULE_NAME "busses/ata/silicon_image_3112/driver_v1" +#define CHANNEL_MODULE_NAME "busses/ata/silicon_image_3112/channel/v1" enum asic_type { ASIC_SI3112 = 0, @@ -765,7 +765,7 @@ dma_finish(void *channelCookie) command = *channel->bm_command_reg; *channel->bm_command_reg = command & ~IDE_BM_COMMAND_START_STOP; - + channel->dma_active = false; *channel->bm_status_reg = status | IDE_BM_STATUS_ERROR; @@ -774,7 +774,7 @@ dma_finish(void *channelCookie) if ((status & IDE_BM_STATUS_ACTIVE) != 0) { TRACE("dma_finish: buffer too large\n"); return B_DEV_DATA_OVERRUN; - } + } if ((status & IDE_BM_STATUS_ERROR) != 0) { FLOW("dma_finish: failed\n"); return B_ERROR; diff --git a/src/system/kernel/device_manager/device_manager.cpp b/src/system/kernel/device_manager/device_manager.cpp index 00715fcf99..01791cacaf 100644 --- a/src/system/kernel/device_manager/device_manager.cpp +++ b/src/system/kernel/device_manager/device_manager.cpp @@ -1521,11 +1521,13 @@ device_node::_GetNextDriverPath(void*& cookie, KPath& _path) _AddPath(*stack, "busses", "scsi"); break; case PCI_ide: + _AddPath(*stack, "busses", "ata"); _AddPath(*stack, "busses", "ide"); break; case PCI_sata: // TODO: check for ahci interface _AddPath(*stack, "busses", "scsi"); + _AddPath(*stack, "busses", "ata"); _AddPath(*stack, "busses", "ide"); break; default: