source "drivers/scsi/Kconfig"
 
+source "drivers/ata/Kconfig"
+
 source "drivers/cdrom/Kconfig"
 
 source "drivers/md/Kconfig"
 
 obj-$(CONFIG_IDE)              += ide/
 obj-$(CONFIG_FC4)              += fc4/
 obj-$(CONFIG_SCSI)             += scsi/
+obj-$(CONFIG_ATA)              += ata/
 obj-$(CONFIG_FUSION)           += message/
 obj-$(CONFIG_IEEE1394)         += ieee1394/
 obj-y                          += cdrom/
 
--- /dev/null
+
+config ATA
+       tristate "ATA device support"
+       depends on SCSI
+       ---help---
+         If you want to use a ATA hard disk, ATA tape drive, ATA CD-ROM or
+         any other ATA device under Linux, say Y and make sure that you know
+         the name of your ATA host adapter (the card inside your computer
+         that "speaks" the ATA protocol, also called ATA controller),
+         because you will be asked for it.
+
+config SCSI_SATA_AHCI
+       tristate "AHCI SATA support"
+       depends on ATA && PCI
+       help
+         This option enables support for AHCI Serial ATA.
+
+         If unsure, say N.
+
+config SCSI_SATA_SVW
+       tristate "ServerWorks Frodo / Apple K2 SATA support"
+       depends on ATA && PCI
+       help
+         This option enables support for Broadcom/Serverworks/Apple K2
+         SATA support.
+
+         If unsure, say N.
+
+config SCSI_ATA_PIIX
+       tristate "Intel PIIX/ICH SATA support"
+       depends on ATA && PCI
+       help
+         This option enables support for ICH5/6/7/8 Serial ATA.
+         If PATA support was enabled previously, this enables
+         support for select Intel PIIX/ICH PATA host controllers.
+
+         If unsure, say N.
+
+config SCSI_SATA_MV
+       tristate "Marvell SATA support (HIGHLY EXPERIMENTAL)"
+       depends on ATA && PCI && EXPERIMENTAL
+       help
+         This option enables support for the Marvell Serial ATA family.
+         Currently supports 88SX[56]0[48][01] chips.
+
+         If unsure, say N.
+
+config SCSI_SATA_NV
+       tristate "NVIDIA SATA support"
+       depends on ATA && PCI
+       help
+         This option enables support for NVIDIA Serial ATA.
+
+         If unsure, say N.
+
+config SCSI_PDC_ADMA
+       tristate "Pacific Digital ADMA support"
+       depends on ATA && PCI
+       help
+         This option enables support for Pacific Digital ADMA controllers
+
+         If unsure, say N.
+
+config SCSI_SATA_QSTOR
+       tristate "Pacific Digital SATA QStor support"
+       depends on ATA && PCI
+       help
+         This option enables support for Pacific Digital Serial ATA QStor.
+
+         If unsure, say N.
+
+config SCSI_SATA_PROMISE
+       tristate "Promise SATA TX2/TX4 support"
+       depends on ATA && PCI
+       help
+         This option enables support for Promise Serial ATA TX2/TX4.
+
+         If unsure, say N.
+
+config SCSI_SATA_SX4
+       tristate "Promise SATA SX4 support"
+       depends on ATA && PCI && EXPERIMENTAL
+       help
+         This option enables support for Promise Serial ATA SX4.
+
+         If unsure, say N.
+
+config SCSI_SATA_SIL
+       tristate "Silicon Image SATA support"
+       depends on ATA && PCI
+       help
+         This option enables support for Silicon Image Serial ATA.
+
+         If unsure, say N.
+
+config SCSI_SATA_SIL24
+       tristate "Silicon Image 3124/3132 SATA support"
+       depends on ATA && PCI
+       help
+         This option enables support for Silicon Image 3124/3132 Serial ATA.
+
+         If unsure, say N.
+
+config SCSI_SATA_SIS
+       tristate "SiS 964/180 SATA support"
+       depends on ATA && PCI
+       help
+         This option enables support for SiS Serial ATA 964/180.
+
+         If unsure, say N.
+
+config SCSI_SATA_ULI
+       tristate "ULi Electronics SATA support"
+       depends on ATA && PCI
+       help
+         This option enables support for ULi Electronics SATA.
+
+         If unsure, say N.
+
+config SCSI_SATA_VIA
+       tristate "VIA SATA support"
+       depends on ATA && PCI
+       help
+         This option enables support for VIA Serial ATA.
+
+         If unsure, say N.
+
+config SCSI_SATA_VITESSE
+       tristate "VITESSE VSC-7174 / INTEL 31244 SATA support"
+       depends on ATA && PCI
+       help
+         This option enables support for Vitesse VSC7174 and Intel 31244 Serial ATA.
+
+         If unsure, say N.
+
+config SCSI_SATA_INTEL_COMBINED
+       bool
+       depends on IDE=y && !BLK_DEV_IDE_SATA && (SCSI_SATA_AHCI || SCSI_ATA_PIIX)
+       default y
+
 
--- /dev/null
+
+obj-$(CONFIG_SCSI_SATA_AHCI)   += libata.o ahci.o
+obj-$(CONFIG_SCSI_SATA_SVW)    += libata.o sata_svw.o
+obj-$(CONFIG_SCSI_ATA_PIIX)    += libata.o ata_piix.o
+obj-$(CONFIG_SCSI_SATA_PROMISE)        += libata.o sata_promise.o
+obj-$(CONFIG_SCSI_SATA_QSTOR)  += libata.o sata_qstor.o
+obj-$(CONFIG_SCSI_SATA_SIL)    += libata.o sata_sil.o
+obj-$(CONFIG_SCSI_SATA_SIL24)  += libata.o sata_sil24.o
+obj-$(CONFIG_SCSI_SATA_VIA)    += libata.o sata_via.o
+obj-$(CONFIG_SCSI_SATA_VITESSE)        += libata.o sata_vsc.o
+obj-$(CONFIG_SCSI_SATA_SIS)    += libata.o sata_sis.o
+obj-$(CONFIG_SCSI_SATA_SX4)    += libata.o sata_sx4.o
+obj-$(CONFIG_SCSI_SATA_NV)     += libata.o sata_nv.o
+obj-$(CONFIG_SCSI_SATA_ULI)    += libata.o sata_uli.o
+obj-$(CONFIG_SCSI_SATA_MV)     += libata.o sata_mv.o
+obj-$(CONFIG_SCSI_PDC_ADMA)    += libata.o pdc_adma.o
+
+libata-objs    := libata-core.o libata-scsi.o libata-bmdma.o libata-eh.o
+
 
 #include <linux/jiffies.h>
 #include <linux/scatterlist.h>
 #include <scsi/scsi.h>
-#include "scsi_priv.h"
 #include <scsi/scsi_cmnd.h>
 #include <scsi/scsi_host.h>
 #include <linux/libata.h>
 
 #include <scsi/scsi_eh.h>
 #include <scsi/scsi_device.h>
 #include <scsi/scsi_cmnd.h>
-#include "scsi_transport_api.h"
+#include "../scsi/scsi_transport_api.h"
 
 #include <linux/libata.h>
 
 
 
 source "drivers/scsi/megaraid/Kconfig.megaraid"
 
-config SCSI_SATA
-       tristate "Serial ATA (SATA) support"
-       depends on SCSI
-       help
-         This driver family supports Serial ATA host controllers
-         and devices.
-
-         If unsure, say N.
-
-config SCSI_SATA_AHCI
-       tristate "AHCI SATA support"
-       depends on SCSI_SATA && PCI
-       help
-         This option enables support for AHCI Serial ATA.
-
-         If unsure, say N.
-
-config SCSI_SATA_SVW
-       tristate "ServerWorks Frodo / Apple K2 SATA support"
-       depends on SCSI_SATA && PCI
-       help
-         This option enables support for Broadcom/Serverworks/Apple K2
-         SATA support.
-
-         If unsure, say N.
-
-config SCSI_ATA_PIIX
-       tristate "Intel PIIX/ICH SATA support"
-       depends on SCSI_SATA && PCI
-       help
-         This option enables support for ICH5/6/7/8 Serial ATA.
-         If PATA support was enabled previously, this enables
-         support for select Intel PIIX/ICH PATA host controllers.
-
-         If unsure, say N.
-
-config SCSI_SATA_MV
-       tristate "Marvell SATA support (HIGHLY EXPERIMENTAL)"
-       depends on SCSI_SATA && PCI && EXPERIMENTAL
-       help
-         This option enables support for the Marvell Serial ATA family.
-         Currently supports 88SX[56]0[48][01] chips.
-
-         If unsure, say N.
-
-config SCSI_SATA_NV
-       tristate "NVIDIA SATA support"
-       depends on SCSI_SATA && PCI && EXPERIMENTAL
-       help
-         This option enables support for NVIDIA Serial ATA.
-
-         If unsure, say N.
-
-config SCSI_PDC_ADMA
-       tristate "Pacific Digital ADMA support"
-       depends on SCSI_SATA && PCI
-       help
-         This option enables support for Pacific Digital ADMA controllers
-
-         If unsure, say N.
-
 config SCSI_HPTIOP
        tristate "HighPoint RocketRAID 3xxx Controller support"
        depends on SCSI && PCI
          To compile this driver as a module, choose M here; the module
          will be called hptiop. If unsure, say N.
 
-config SCSI_SATA_QSTOR
-       tristate "Pacific Digital SATA QStor support"
-       depends on SCSI_SATA && PCI
-       help
-         This option enables support for Pacific Digital Serial ATA QStor.
-
-         If unsure, say N.
-
-config SCSI_SATA_PROMISE
-       tristate "Promise SATA TX2/TX4 support"
-       depends on SCSI_SATA && PCI
-       help
-         This option enables support for Promise Serial ATA TX2/TX4.
-
-         If unsure, say N.
-
-config SCSI_SATA_SX4
-       tristate "Promise SATA SX4 support"
-       depends on SCSI_SATA && PCI && EXPERIMENTAL
-       help
-         This option enables support for Promise Serial ATA SX4.
-
-         If unsure, say N.
-
-config SCSI_SATA_SIL
-       tristate "Silicon Image SATA support"
-       depends on SCSI_SATA && PCI && EXPERIMENTAL
-       help
-         This option enables support for Silicon Image Serial ATA.
-
-         If unsure, say N.
-
-config SCSI_SATA_SIL24
-       tristate "Silicon Image 3124/3132 SATA support"
-       depends on SCSI_SATA && PCI && EXPERIMENTAL
-       help
-         This option enables support for Silicon Image 3124/3132 Serial ATA.
-
-         If unsure, say N.
-
-config SCSI_SATA_SIS
-       tristate "SiS 964/180 SATA support"
-       depends on SCSI_SATA && PCI && EXPERIMENTAL
-       help
-         This option enables support for SiS Serial ATA 964/180.
-
-         If unsure, say N.
-
-config SCSI_SATA_ULI
-       tristate "ULi Electronics SATA support"
-       depends on SCSI_SATA && PCI && EXPERIMENTAL
-       help
-         This option enables support for ULi Electronics SATA.
-
-         If unsure, say N.
-
-config SCSI_SATA_VIA
-       tristate "VIA SATA support"
-       depends on SCSI_SATA && PCI
-       help
-         This option enables support for VIA Serial ATA.
-
-         If unsure, say N.
-
-config SCSI_SATA_VITESSE
-       tristate "VITESSE VSC-7174 / INTEL 31244 SATA support"
-       depends on SCSI_SATA && PCI
-       help
-         This option enables support for Vitesse VSC7174 and Intel 31244 Serial ATA.
-
-         If unsure, say N.
-
-config SCSI_SATA_INTEL_COMBINED
-       bool
-       depends on IDE=y && !BLK_DEV_IDE_SATA && (SCSI_SATA_AHCI || SCSI_ATA_PIIX)
-       default y
-
 config SCSI_BUSLOGIC
        tristate "BusLogic SCSI support"
        depends on (PCI || ISA || MCA) && SCSI && ISA_DMA_API
 
 obj-$(CONFIG_SCSI_NSP32)       += nsp32.o
 obj-$(CONFIG_SCSI_IPR)         += ipr.o
 obj-$(CONFIG_SCSI_IBMVSCSI)    += ibmvscsi/
-obj-$(CONFIG_SCSI_SATA_AHCI)   += libata.o ahci.o
-obj-$(CONFIG_SCSI_SATA_SVW)    += libata.o sata_svw.o
-obj-$(CONFIG_SCSI_ATA_PIIX)    += libata.o ata_piix.o
-obj-$(CONFIG_SCSI_SATA_PROMISE)        += libata.o sata_promise.o
-obj-$(CONFIG_SCSI_SATA_QSTOR)  += libata.o sata_qstor.o
-obj-$(CONFIG_SCSI_SATA_SIL)    += libata.o sata_sil.o
-obj-$(CONFIG_SCSI_SATA_SIL24)  += libata.o sata_sil24.o
-obj-$(CONFIG_SCSI_SATA_VIA)    += libata.o sata_via.o
-obj-$(CONFIG_SCSI_SATA_VITESSE)        += libata.o sata_vsc.o
-obj-$(CONFIG_SCSI_SATA_SIS)    += libata.o sata_sis.o
-obj-$(CONFIG_SCSI_SATA_SX4)    += libata.o sata_sx4.o
-obj-$(CONFIG_SCSI_SATA_NV)     += libata.o sata_nv.o
-obj-$(CONFIG_SCSI_SATA_ULI)    += libata.o sata_uli.o
-obj-$(CONFIG_SCSI_SATA_MV)     += libata.o sata_mv.o
-obj-$(CONFIG_SCSI_PDC_ADMA)    += libata.o pdc_adma.o
 obj-$(CONFIG_SCSI_HPTIOP)      += hptiop.o
 
 obj-$(CONFIG_ARM)              += arm/
 CFLAGS_ncr53c8xx.o     := $(ncr53c8xx-flags-y) $(ncr53c8xx-flags-m)
 zalon7xx-objs  := zalon.o ncr53c8xx.o
 NCR_Q720_mod-objs      := NCR_Q720.o ncr53c8xx.o
-libata-objs    := libata-core.o libata-scsi.o libata-bmdma.o libata-eh.o
 oktagon_esp_mod-objs   := oktagon_esp.o oktagon_io.o
 
 # Files generated that shall be removed upon make clean