From: Alan Cox At set up time we need to switch the chip to multifunction mode so that our PCI layer handles the transition correctly. In multi-function mode it provides an AHCI controller for SATA and an SFF type controller for PATA ports. In "as booted" mode it provides the ports folded onto a single SFF type function. The jmicron driver supports both modes while the quirk is set up to always force it into multi-function mode as per recommendations of chip vendor. The exception is the 368 which is PATA only and has no AHCI port. That is not handled by the quirk but is picked up directly by the Jmicron driver. Signed-off-by: Alan Cox Signed-off-by: Andrew Morton --- drivers/ata/Kconfig | 8 ++++++++ drivers/ata/Makefile | 1 + 2 files changed, 9 insertions(+) diff -puN drivers/ata/Kconfig~2-of-2-jmicron-driver-plumbing-and-quirk drivers/ata/Kconfig --- a/drivers/ata/Kconfig~2-of-2-jmicron-driver-plumbing-and-quirk +++ a/drivers/ata/Kconfig @@ -307,6 +307,14 @@ config PATA_IT821X If unsure, say N. +config ATA_JMICRON + tristate "JMicron non-AHCI support (Experimental)" + depends on ATA && PCI && EXPERIMENTAL + help + This option enables support for Jmicron ATA controllers + ports running in non-AHCI mode. Where possible you should + set the configuration for AHCI to get better performance + config PATA_LEGACY tristate "Legacy ISA PATA support (Experimental)" depends on PCI && EXPERIMENTAL diff -puN drivers/ata/Makefile~2-of-2-jmicron-driver-plumbing-and-quirk drivers/ata/Makefile --- a/drivers/ata/Makefile~2-of-2-jmicron-driver-plumbing-and-quirk +++ a/drivers/ata/Makefile @@ -34,6 +34,7 @@ obj-$(CONFIG_PATA_HPT3X3) += pata_hpt3x3 obj-$(CONFIG_PATA_ISAPNP) += pata_isapnp.o obj-$(CONFIG_PATA_IT8172) += pata_it8172.o obj-$(CONFIG_PATA_IT821X) += pata_it821x.o +obj-$(CONFIG_ATA_JMICRON) += libata.o ata_jmicron.o obj-$(CONFIG_PATA_NETCELL) += pata_netcell.o obj-$(CONFIG_PATA_NS87410) += pata_ns87410.o obj-$(CONFIG_PATA_OPTI) += pata_opti.o _