android_kernel_xiaomi_sm7250/drivers/ide/pci
Alan Cox 15e0c69436 [PATCH] ide: fix Jmicron support
Prior to 2.6.18rc1 you could install with devices on a JMicron chipset
using the "all-generic-ide" option. As of this kernel the AHCI driver
grabs the controller and rams it into AHCI mode losing the PATA ports
and making CD drives and the like vanish. The all-generic-ide option
fails because the AHCI driver grabbed the PCI device and reconfigured
it.

To fix this three things are needed.

#1 We must put the chip into dual function mode
#2 The AHCI driver must grab only function 0 (already in your rc1 tree)
#3 Something must grab the PATA ports

The attached patch is the minimal risk edition of this. It puts the chip
into dual function mode so that AHCI will grab the SATA ports without
losing the PATA ports. To keep the risk as low as possible the third
patch adds the PCI identifiers for the PATA port and the FN check to the
ide-generic driver. There is a more featured jmicron driver on its way
but that adds risk and the ide-generic support is sufficient to install
and run a system.

The actual chip setup done by the quirk is the precise setup recommended
by the vendor.

(The JMB368 appears only in the ide-generic entry as it has no AHCI so
does not need the quirk)

Signed-off-by: Alan Cox <alan@redhat.com>
Acked-by: Jeff Garzik <jgarzik@pobox.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-07-12 12:59:35 -07:00
..
aec62xx.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
alim15x3.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
amd74xx.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
atiixp.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
cmd64x.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
cmd640.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
cs5520.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
cs5530.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
cs5535.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
cy82c693.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
generic.c [PATCH] ide: fix Jmicron support 2006-07-12 12:59:35 -07:00
hpt34x.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
hpt366.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
it821x.c [PATCH] Fix problem with ATAPI DMA on IT8212 in Linux 2006-07-01 09:56:04 -07:00
it8172.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
Makefile [PATCH] ide: CS5535 driver 2005-11-09 23:58:16 +01:00
ns87415.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
opti621.c [PATCH] ide: hotplug mark __devinit opti621.c 2005-07-03 16:33:16 +02:00
pdc202xx_new.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
pdc202xx_old.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
piix.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
rz1000.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sc1200.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
serverworks.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
sgiioc4.c [PATCH] SGI IOC4: Detect IO card variant 2006-06-23 07:43:07 -07:00
siimage.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
sis5513.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
sl82c105.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
slc90e66.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
triflex.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
trm290.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
via82cxxx.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00