Messages in this thread Patch in this message | | | Subject | RE: [PATCH] Add IDE mode support for SB600 SATA | Date | Thu, 23 Nov 2006 12:24:24 +0800 | From | "Conke Hu" <> |
| |
-----Original Message----- From: Conke Hu Sent: Thursday, November 23, 2006 12:21 PM To: linux-kernel@vger.kernel.org; 'alan@lxorguk.ukuu.org.uk'; 'Andrew Morton'; Jeff Garzik Subject: [PATCH] Add IDE mode support for SB600 SATA
ATI SB600 SATA controller supports 4 modes: Legacy IDE, Native IDE, AHCI and RAID. Legacy/Native IDE mode is designed for compatibility with some old OS without AHCI driver but looses SATAII/AHCI features such as NCQ. This patch will make SB600 SATA run in AHCI mode even if it was set as IDE mode by system BIOS.
Signed-off-by: conke.hu@amd.com --------- --- linux-2.6.19-rc6-git4/drivers/pci/quirks.c.orig 2006-11-23 19:45:49.000000000 +0800 +++ linux-2.6.19-rc6-git4/drivers/pci/quirks.c 2006-11-23 19:34:23.000000000 +0800 @@ -795,6 +795,25 @@ static void __init quirk_mediagx_master( } } DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_CYRIX, PCI_DEVICE_ID_CYRIX_PCI_MASTER, quirk_mediagx_master ); + +#if defined(CONFIG_SATA_AHCI) || defined(CONFIG_SATA_AHCI_MODULE) +static void __devinit quirk_sb600_sata(struct pci_dev *pdev) { + /* set sb600 sata to ahci mode */ + if ((pdev->class >> 8) == PCI_CLASS_STORAGE_IDE) { + u8 tmp; + + pci_read_config_byte(pdev, 0x40, &tmp); + pci_write_config_byte(pdev, 0x40, tmp|1); + pci_write_config_byte(pdev, 0x9, 1); + pci_write_config_byte(pdev, 0xa, 6); + pci_write_config_byte(pdev, 0x40, tmp); + + pdev->class = 0x010601; + } +} +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATI, +PCI_DEVICE_ID_ATI_IXP600_SATA, quirk_sb600_sata); #endif /* * As per PCI spec, ignore base address registers 0-3 of the IDE controllers --------------------- This is the re-written patch, if still any unreasonable, please feel free to contact me. Thanks!
Conke
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |