Date: Thu, 12 Mar 2009 06:30:59 +0000 (UTC) From: Warner Losh <imp@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r189724 - head/sys/dev/ata Message-ID: <200903120630.n2C6UxT8019297@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200903120630.n2C6UxT8019297>