summaryrefslogtreecommitdiffstats
path: root/sys/dev/ata/ata-all.h
diff options
context:
space:
mode:
authornwhitehorn <nwhitehorn@FreeBSD.org>2010-09-09 13:17:30 +0000
committernwhitehorn <nwhitehorn@FreeBSD.org>2010-09-09 13:17:30 +0000
commit258c3c91359faddd228bdcc316478d993dbd6aa3 (patch)
tree8d288529801cee47b96deafb5f6690a015ed9f45 /sys/dev/ata/ata-all.h
parentbf61bd49f55cf9af9d54bf6c18a64e95eec4b29c (diff)
downloadFreeBSD-src-258c3c91359faddd228bdcc316478d993dbd6aa3.zip
FreeBSD-src-258c3c91359faddd228bdcc316478d993dbd6aa3.tar.gz
Fix a problem where device detection would work unreliably on Serverworks
K2 SATA controllers. The chip's status register must be read first, and as a long, for other registers to be correctly updated after a command, and this includes the command sequence in device detection as well as the previously handled case after interrupts. While here, clean up some previous hacks related to this controller. Reported by: many Reviewed by: mav MFC after: 3 weeks
Diffstat (limited to 'sys/dev/ata/ata-all.h')
-rw-r--r--sys/dev/ata/ata-all.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/dev/ata/ata-all.h b/sys/dev/ata/ata-all.h
index 6132eab..0f09a1f 100644
--- a/sys/dev/ata/ata-all.h
+++ b/sys/dev/ata/ata-all.h
@@ -566,6 +566,7 @@ struct ata_channel {
#define ATA_SATA 0x80
#define ATA_DMA_BEFORE_CMD 0x100
#define ATA_KNOWN_PRESENCE 0x200
+#define ATA_STATUS_IS_LONG 0x400
int pm_level; /* power management level */
int devices; /* what is present */
OpenPOWER on IntegriCloud