svn commit: r189724 - head/sys/dev/ata

Warner Losh imp at FreeBSD.org
Wed Mar 11 23:31:00 PDT 2009


Author: imp
Date: Thu Mar 12 06:30:59 2009
New Revision: 189724
URL: http://svn.freebsd.org/changeset/base/189724

Log:
  Check the Disk FUNCE recorded in the CIS to see if we should probe for
  both disks, or if we should suppress the slave drive.  Default to
  suppressing the slave, in the case that this REQIURED tuple turns out
  to not actually be present...

Modified:
  head/sys/dev/ata/ata-card.c

Modified: head/sys/dev/ata/ata-card.c
==============================================================================
--- head/sys/dev/ata/ata-card.c	Thu Mar 12 06:25:30 2009	(r189723)
+++ head/sys/dev/ata/ata-card.c	Thu Mar 12 06:30:59 2009	(r189724)
@@ -90,6 +90,7 @@ ata_pccard_attach(device_t dev)
     struct ata_channel *ch = device_get_softc(dev);
     struct resource *io, *ctlio;
     int i, rid, err;
+    uint16_t funce;
 
     if (ch->attached)
 	return (0);
@@ -132,7 +133,11 @@ ata_pccard_attach(device_t dev)
 
     /* initialize softc for this channel */
     ch->unit = 0;
-    ch->flags |= (ATA_USE_16BIT | ATA_NO_SLAVE);
+    ch->flags |= ATA_USE_16BIT;
+    funce = 0;		/* Default to sane setting of FUNCE */
+    pccard_get_funce_disk(dev, &funce);
+    if (!(funce & PFD_I_D))
+	    ch-> flags |= ATA_NO_SLAVE;
     ata_generic_hw(dev);
     err = ata_probe(dev);
     if (err)


More information about the svn-src-all mailing list