From patchwork Sun Aug 16 15:34:52 2009
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: sata AHCI controller over non-PCI bus
From: James Bottomley
X-Patchwork-Id: 31491
Message-Id: <1250436892.3856.87.camel@mulgrave.site>
To: Jeff Garzik
Cc: "Subbrathnam, Swaminathan" ,
Sergei Shtylyov ,
"linux-ide@vger.kernel.org" ,
LKML
Date: Sun, 16 Aug 2009 10:34:52 -0500
On Sun, 2009-08-16 at 08:53 -0400, Jeff Garzik wrote:
> Subbrathnam, Swaminathan wrote:
> > Jeff,
> > From the below link (from Sergei) it seems that you have already re-factored the AHCI implementation dependency on PCI. I would like to add support for the OMAPL138 SATA on top of your changes. That would be the ideal way forward for me.
> >
> > Have the ahci re-factoring changes queued for mainline merge already? I just joined the list and hence do not know the status.
> >
> > Sergei,
> > Appreciate the response.
>
> I store the refactoring in git, on the "libahci" branch of
> git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev.git
>
> Unfortunately, I am having second thoughts about an element of the
> current design. With current Linux distributions, they do not appear to
> deal well with the multi-module dependency libata -> libahci -> ahci.
> If I had to guess, I would say that mkinitrd creation tools only look at
> one tree level's worth of kernel module dependencies.
>
> Thus, ahci would wind up -not- in initrd, in a libahci solution.
>
> I am thinking that I will just add Marvell and ATP support to ahci.c,
> and let someone else deal with libahci separation -- which is still needed.
>
> At this point, I would rather get Marvell/ATP support into users' hands,
> rather than wait for distros to catch up to modern technology.
Can't you get the best of both worlds? Do the separation but
artificially glue them together again as a module at link time. This
solves the current distro problem and you can remove the linker hack as
soon as the distros get their act together.
James
---
--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/ata/Makefile b/drivers/ata/Makefile
index 9f7b500..10101d7 100644
--- a/drivers/ata/Makefile
+++ b/drivers/ata/Makefile
@@ -1,8 +1,10 @@
obj-$(CONFIG_ATA) += libata.o
-obj-$(CONFIG_SATA_AHCI) += libahci.o ahci.o
-obj-$(CONFIG_SATA_ACARD_AHCI) += libahci.o acard-ahci.o
+obj-$(CONFIG_SATA_AHCI) += ahci_mod.o
+obj-ahci_mod-y += libahci.o ahci.o
+obj-ahci_mod-$(CONFIG_SATA_ACARD_AHCI) += acard-ahci.o
+obj-ahci_mod-$(CONFIG_SATA_MV_AHCI) += mv-ahci.o
obj-$(CONFIG_SATA_SVW) += sata_svw.o
obj-$(CONFIG_ATA_PIIX) += ata_piix.o
obj-$(CONFIG_SATA_PROMISE) += sata_promise.o
@@ -15,7 +17,6 @@ obj-$(CONFIG_SATA_SIS) += sata_sis.o
obj-$(CONFIG_SATA_SX4) += sata_sx4.o
obj-$(CONFIG_SATA_NV) += sata_nv.o
obj-$(CONFIG_SATA_ULI) += sata_uli.o
-obj-$(CONFIG_SATA_MV_AHCI) += libahci.o mv-ahci.o
obj-$(CONFIG_SATA_MV) += sata_mv.o
obj-$(CONFIG_SATA_INIC162X) += sata_inic162x.o
obj-$(CONFIG_PDC_ADMA) += pdc_adma.o