Thread (4 messages) 4 messages, 2 authors, 2008-02-14

Re: [PATCH] PCI subsystem: AMD SATA IDE mode quirk

flat view

From: Jeff Garzik <hidden>
Date: 2008-02-13 12:02:36

Cai, Crane wrote:
Hi Jeff, 	Sorry to diturb you. However, it is a long time for me to submit this patch. Can you tell me when this patch can be upsteamed to the kernel tree?
Thanks,
Crane

-----Original Message-----
From: Jeff Garzik [mailto:jeff@garzik.org] Sent: Saturday, February 02, 2008 2:20 PM
To: Cai, Crane
Cc: gregkh@suse.de; linux-kernel@vger.kernel.org; linux-pci@atrey.karlin.mff.cuni.cz; Linux IDE mailing list
Subject: Re: [PATCH] PCI subsystem: AMD SATA IDE mode quirk

Cai, Crane wrote:
quoted
From: Crane Cai <redacted>

PCI: modify SATA IDE mode quirk
When initialize and resume, SB600/700/800 need to set SATA mode correctly.

Signed-off-by: Crane Cai <redacted>
--------------------------------------------
--- a/drivers/pci/quirks.c	2007-09-24 14:16:32.000000000 -0400
+++ b/drivers/pci/quirks.c	2008-02-02 11:23:47.000000000 -0500
@@ -859,12 +859,13 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN
 DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_INTEL,
PCI_DEVICE_ID_INTEL_82454NX,	quirk_disable_pxb );
 
 
-static void __devinit quirk_sb600_sata(struct pci_dev *pdev)
+static void __devinit quirk_amd_ide_mode(struct pci_dev *pdev)
 {
-	/* set sb600 sata to ahci mode */
-	if ((pdev->class >> 8) == PCI_CLASS_STORAGE_IDE) {
-		u8 tmp;
+	/* set sb600/sb700/sb800 sata to ahci mode */
+	u8 tmp;
 
+	pci_read_config_byte(pdev, PCI_CLASS_DEVICE, &tmp);
+	if (tmp == 0x01) {
 		pci_read_config_byte(pdev, 0x40, &tmp);
 		pci_write_config_byte(pdev, 0x40, tmp|1);
 		pci_write_config_byte(pdev, 0x9, 1); @@ -872,10 +873,13 @@ static void __devinit quirk_sb600_sata(s
 		pci_write_config_byte(pdev, 0x40, tmp);
 
 		pdev->class = PCI_CLASS_STORAGE_SATA_AHCI;
+		printk(KERN_INFO "PCI: set SATA to AHCI mode\n");
 	}
 }
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATI,
PCI_DEVICE_ID_ATI_IXP600_SATA, quirk_sb600_sata); -DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATI,
PCI_DEVICE_ID_ATI_IXP700_SATA, quirk_sb600_sata);
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATI,
PCI_DEVICE_ID_ATI_IXP600_SATA, quirk_amd_ide_mode);
+DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_ATI,
PCI_DEVICE_ID_ATI_IXP600_SATA, quirk_amd_ide_mode);
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATI,
PCI_DEVICE_ID_ATI_IXP700_SATA, quirk_amd_ide_mode);
+DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_ATI,
PCI_DEVICE_ID_ATI_IXP700_SATA, quirk_amd_ide_mode);
ACK

In the future, please also CC linux-ide@vger.kernel.org, as that's where the ATA folks hang out :)

Greg Kroah-Hartman (cc'd) needs to pick up your patch, since it is in the "PCI" side of the house...

	Jeff


Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help