summaryrefslogtreecommitdiffstats
path: root/sys/dev/ata
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2009-02-20 20:20:00 +0000
committermav <mav@FreeBSD.org>2009-02-20 20:20:00 +0000
commitb2740187db7b7f145f40e8d388d625210cf49cf2 (patch)
tree1a9efdd5f46004596d45e8cfa7184207eec4fb62 /sys/dev/ata
parent78b3ec35831f52f5f773f589369519b39052c4b1 (diff)
downloadFreeBSD-src-b2740187db7b7f145f40e8d388d625210cf49cf2.zip
FreeBSD-src-b2740187db7b7f145f40e8d388d625210cf49cf2.tar.gz
Disable port interrupts before doing PHY reset.
PHY reset causes drive connect/disconnect events, unwanted at this moment.
Diffstat (limited to 'sys/dev/ata')
-rw-r--r--sys/dev/ata/chipsets/ata-ahci.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/dev/ata/chipsets/ata-ahci.c b/sys/dev/ata/chipsets/ata-ahci.c
index f77f3d8..6ec3101 100644
--- a/sys/dev/ata/chipsets/ata-ahci.c
+++ b/sys/dev/ata/chipsets/ata-ahci.c
@@ -679,6 +679,9 @@ ata_ahci_reset(device_t dev)
u_int32_t signature;
int offset = ch->unit << 7;
+ /* Disable port interrupts */
+ ATA_OUTL(ctlr->r_res2, ATA_AHCI_P_IE + offset, 0);
+
/* setup work areas */
work = ch->dma.work_bus + ATA_AHCI_CL_OFFSET;
ATA_OUTL(ctlr->r_res2, ATA_AHCI_P_CLB + offset, work & 0xffffffff);
OpenPOWER on IntegriCloud