+ pata-jmicron-jmicron-multifunction-setup.patch added to -mm tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The patch titled

     pata: jmicron: Jmicron multifunction setup

has been added to the -mm tree.  Its filename is

     pata-jmicron-jmicron-multifunction-setup.patch

See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find
out what to do about this

------------------------------------------------------
Subject: pata: jmicron: Jmicron multifunction setup
From: Alan Cox <alan@xxxxxxxxxx>

JMicron controllers start out in life pretending to be a single legacy IDE
interface with the ports magically mangled into it.  When prodding they turn
into a dual function device which has an AHCI controller for SATA and a PATA
controller for the PATA ports.

Do the prodding early enough that our PCI layer enumeration finds and
discovers the extra functions.

Signed-off-by: Alan Cox <alan@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxx>
---

 drivers/pci/quirks.c |   12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff -puN drivers/pci/quirks.c~pata-jmicron-jmicron-multifunction-setup drivers/pci/quirks.c
--- a/drivers/pci/quirks.c~pata-jmicron-jmicron-multifunction-setup
+++ a/drivers/pci/quirks.c
@@ -1185,7 +1185,9 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_S
 static void __devinit quirk_jmicron_dualfn(struct pci_dev *pdev)
 {
 	u32 conf;
+	u8 hdr;
 
+	/* Only poke fn 0 */
 	if (PCI_FUNC(pdev->devfn))
 		return;
 
@@ -1205,11 +1207,19 @@ static void __devinit quirk_jmicron_dual
 			conf &= ~0x000F0200;	/* Clear bit 9 and 16-19 */
 			conf |=  0x00C20002;	/* Set bit 1, 17, 22, 23 */
 			pci_write_config_dword(pdev, 0x40, conf);
+
+			/* Reconfigure so that the PCI scanner discovers the
+			   device is now multifunction */
+
+			pci_read_config_byte(pdev, PCI_HEADER_TYPE, &hdr);
+			pdev->hdr_type = hdr & 0x7f;
+			pdev->multifunction = !!(hdr & 0x80);
+
 			break;
 	}
 }
 
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_JMICRON, PCI_ANY_ID, quirk_jmicron_dualfn);
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_JMICRON, PCI_ANY_ID, quirk_jmicron_dualfn);
 
 #endif
 
_

Patches currently in -mm which might be from alan@xxxxxxxxxx are

origin.patch
my-name-is-ingo-molnar-you-killed-my-make-allyesconfig-prepare-to-die.patch
jmicron-pci-identifiers.patch
pata-ata_piix-time0-time1-setup.patch
pata-pata_ali-further-debug-work.patch
pata-pata_amd-new-chips.patch
pata-pata_ali-revisions-below-0x20-need-cd-config-poking-too.patch
pata-sort-out-mc65-compile-for-now.patch
pata-libata-fix-the-host_set-hacks-and-sort-out-simplex-mode.patch
pata-pata_it821x-fix-pass-through.patch
pata-ahci-ensure-that-we-dont-grab-both-functions.patch
pata-jmicron-add-quirks-to-force-the-device-into-a-sane-mode.patch
pata-jmicron-configuration.patch
pata-ata_generic-generic-bios-setup-sff-ata-driver.patch
pata-jmicron-ide-old-type-driver.patch
pata-pata_qdi-fix-return-code.patch
pata-ide-jmicron-finish-writing.patch
pata-jmicron-it-works-better-if-you-get-the-file-name-right.patch
pata-jmicron-further-clean-up.patch
pata-ata_jmicro-fix-an-escapee.patch
pata-jmicron-jmicron-multifunction-setup.patch
pata-libata-enable-per-device-speed-setting.patch
pata-jmicron-missed-one.patch
sanitize-3c589_cs.patch
ide-backport-piix-fixes-from-libata-into-the-legacy-driver.patch
move-ide-to-unmaintained-drop-reference-to-old-git-tree.patch

-
To unsubscribe from this list: send the line "unsubscribe mm-commits" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Kernel Newbies FAQ]     [Kernel Archive]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Photo]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux