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...
This commit is contained in:
parent
bca6fb928e
commit
aef30cdbf5
@ -90,6 +90,7 @@ ata_pccard_attach(device_t dev)
|
|||||||
struct ata_channel *ch = device_get_softc(dev);
|
struct ata_channel *ch = device_get_softc(dev);
|
||||||
struct resource *io, *ctlio;
|
struct resource *io, *ctlio;
|
||||||
int i, rid, err;
|
int i, rid, err;
|
||||||
|
uint16_t funce;
|
||||||
|
|
||||||
if (ch->attached)
|
if (ch->attached)
|
||||||
return (0);
|
return (0);
|
||||||
@ -132,7 +133,11 @@ ata_pccard_attach(device_t dev)
|
|||||||
|
|
||||||
/* initialize softc for this channel */
|
/* initialize softc for this channel */
|
||||||
ch->unit = 0;
|
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);
|
ata_generic_hw(dev);
|
||||||
err = ata_probe(dev);
|
err = ata_probe(dev);
|
||||||
if (err)
|
if (err)
|
||||||
|
Loading…
Reference in New Issue
Block a user