[BUG] FC5/FC6 does not support ATI SB600 SATA

Conke Hu conke.hu at gmail.com
Thu Dec 21 16:07:02 UTC 2006


Hi dragoran,
On 12/21/06, dragoran <drago01 at gmail.com> wrote:
> Conke Hu wrote:
> > ATI/AMD SB600 SATA controller supports 4 modes:
> >    legacy IDE
> >    native IDE
> >    AHCI
> >    RAID
> > The ahci driver in FC6 tries to claim all 4 modes of SB600 SATA, but
> > fails in legacy IDE mode.   and FC5 does not support any mode at all.
> >
> > Now the root cause is found and patch created. My question is, is it
> > still possible to merge the patch to FC5/FC6 kernel (since the final
> > release comes out)?
> >
> > Looking forward to any reply! Thanks!
> >
> > Conke
> >
> it should be no problem when 2.6.19.x is pushed to updates

why? which patch have you merged to FC6 kernel? is it similar with the
following (which i've sent to kernel org):
----------------------------------------patch-----------------------------------------------
diff -puN drivers/ide/pci/atiixp.c~via-sb600-sata-quirk drivers/ide/pci/atiixp.c
--- a/drivers/ide/pci/atiixp.c~via-sb600-sata-quirk
+++ a/drivers/ide/pci/atiixp.c
@@ -368,7 +368,6 @@ static struct pci_device_id atiixp_pci_t
        { PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_IXP300_IDE, PCI_ANY_ID,
PCI_ANY_ID, 0, 0, 0},
        { PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_IXP400_IDE, PCI_ANY_ID,
PCI_ANY_ID, 0, 0, 0},
        { PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_IXP600_IDE, PCI_ANY_ID,
PCI_ANY_ID, 0, 0, 0},
-       { PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_IXP600_SATA,
PCI_ANY_ID, PCI_ANY_ID, (PCI_CLASS_STORAGE_IDE<<8)|0x8a, 0xffff05, 1},
        { 0, },
 };
 MODULE_DEVICE_TABLE(pci, atiixp_pci_tbl);
diff -puN drivers/pci/quirks.c~via-sb600-sata-quirk drivers/pci/quirks.c
--- a/drivers/pci/quirks.c~via-sb600-sata-quirk
+++ a/drivers/pci/quirks.c
@@ -850,6 +850,23 @@ 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)
+{
+       /* 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);
+
 /*
  *     Serverworks CSB5 IDE does not fully support native mode
  */




More information about the fedora-devel-list mailing list