diff options
author | Søren Schmidt <sos@FreeBSD.org> | 2005-12-09 14:23:24 +0000 |
---|---|---|
committer | Søren Schmidt <sos@FreeBSD.org> | 2005-12-09 14:23:24 +0000 |
commit | fb504bef5cdc96b3a248a6d91473ef5d4f3cb76d (patch) | |
tree | 73da623a6230003ea54b15c6bf09bffeaf757305 | |
parent | 992ee51fc01b5d3b1573685796dccdc447a5c6d7 (diff) | |
download | src-fb504bef5cdc96b3a248a6d91473ef5d4f3cb76d.tar.gz src-fb504bef5cdc96b3a248a6d91473ef5d4f3cb76d.zip |
Unbreak hotplug support on the ICH6 and ICH7 chipsets.
Notes
Notes:
svn path=/head/; revision=153269
-rw-r--r-- | sys/dev/ata/ata-chipset.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/dev/ata/ata-chipset.c b/sys/dev/ata/ata-chipset.c index 3421f3c7b098..cc21aa0b7f10 100644 --- a/sys/dev/ata/ata-chipset.c +++ b/sys/dev/ata/ata-chipset.c @@ -569,10 +569,10 @@ ata_ahci_intr(void *data) int offset = (ch->unit << 7); error = ATA_INL(ctlr->r_res2, ATA_AHCI_P_SERR + offset); - ATA_OUTL(ctlr->r_res2, ATA_AHCI_P_SERR + offset, error); status = ATA_INL(ctlr->r_res2, ATA_AHCI_P_IS + offset); - ATA_OUTL(ctlr->r_res2, ATA_AHCI_P_IS + offset, status); issued = ATA_INL(ctlr->r_res2, ATA_AHCI_P_CI + offset); + ATA_OUTL(ctlr->r_res2, ATA_AHCI_P_SERR + offset, error); + ATA_OUTL(ctlr->r_res2, ATA_AHCI_P_IS + offset, status); /* do we have cold connect surprise */ if (status & ATA_AHCI_P_IX_CPD) { @@ -581,7 +581,8 @@ ata_ahci_intr(void *data) } /* check for and handle connect events */ - if ((status & ATA_AHCI_P_IX_PC) && + if (((status & (ATA_AHCI_P_IX_PRC | ATA_AHCI_P_IX_PC)) == + ATA_AHCI_P_IX_PC) && (tp = (struct ata_connect_task *) malloc(sizeof(struct ata_connect_task), M_ATA, M_NOWAIT | M_ZERO))) { |