* Reworked device detection, we'll see how well this works...

* Reworked some of the transfer handling after reading the specs.
* Ensure that the device selection bit is set correctly for all commands.
* Generally disable interrupts and enable them only when expecting a DMA one.
* Renamed disk failure to device fault according to specs.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30248 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Michael Lotz
2009-04-18 20:58:33 +00:00
parent b43891053d
commit 827f849a34
6 changed files with 109 additions and 113 deletions
+2 -2
View File
@@ -215,7 +215,7 @@ enum {
// packet and dma queued result
ATA_MASK_ERROR = 0x01,
ATA_MASK_IREASON = 0x02,
ATA_MASK_INTERRUPT_REASON = 0x02,
ATA_MASK_DEVICE_HEAD = 0x20,
ATA_MASK_COMMAND = 0x40,
@@ -243,7 +243,7 @@ enum {
ATA_STATUS_DWF = 0x20, // reserved
ATA_STATUS_DMA = 0x20, // reserved
ATA_STATUS_DMA_READY = 0x20, // packet: DMA ready
ATA_STATUS_DISK_FAILURE = 0x20, // packet: disk failure
ATA_STATUS_DEVICE_FAULT = 0x20, // device fault
ATA_STATUS_DEVICE_READY = 0x40, // device ready
ATA_STATUS_BUSY = 0x80 // busy
};