Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 13 May 2009 02:55:22 +0000 (UTC)
From:      Alexander Motin <mav@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
Subject:   svn commit: r192033 - stable/7/sys/dev/ata
Message-ID:  <200905130255.n4D2tMQZ040010@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: mav
Date: Wed May 13 02:55:21 2009
New Revision: 192033
URL: http://svn.freebsd.org/changeset/base/192033

Log:
  Make vendor-specific drivers prefered over the generic AHCI one.
  This fixes some controllers, like JMicron ones, which provide also PATA via
  PCI function that declared as AHCI controller.
  
  This is not an MFC, but the same was already done in 8-CURRENT in other way.
  
  PR:		kern/132082

Modified:
  stable/7/sys/dev/ata/ata-pci.c

Modified: stable/7/sys/dev/ata/ata-pci.c
==============================================================================
--- stable/7/sys/dev/ata/ata-pci.c	Wed May 13 02:26:34 2009	(r192032)
+++ stable/7/sys/dev/ata/ata-pci.c	Wed May 13 02:55:21 2009	(r192033)
@@ -76,12 +76,6 @@ ata_pci_probe(device_t dev)
     if (pci_get_class(dev) != PCIC_STORAGE)
 	return ENXIO;
 
-    /* if this is an AHCI chipset grab it */
-    if (pci_get_subclass(dev) == PCIS_STORAGE_SATA) {
-	if (!ata_ahci_ident(dev))
-	    return ATA_PROBE_OK;
-    }
-
     /* run through the vendor specific drivers */
     switch (pci_get_vendor(dev)) {
     case ATA_ACARD_ID: 
@@ -178,6 +172,12 @@ ata_pci_probe(device_t dev)
 	break;
     }
 
+    /* if this is an AHCI chipset grab it */
+    if (pci_get_subclass(dev) == PCIS_STORAGE_SATA) {
+	if (!ata_ahci_ident(dev))
+	    return ATA_PROBE_OK;
+    }
+
     /* unknown chipset, try generic DMA if it seems possible */
     if (pci_get_subclass(dev) == PCIS_STORAGE_IDE) {
 	if (!ata_generic_ident(dev))



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200905130255.n4D2tMQZ040010>