- Timestamp:
- Aug 5, 2011 3:16:49 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Storage/DevAHCI.cpp
r37887 r38328 1043 1043 pAhciPort->regCI &= ~uCIValue; 1044 1044 1045 if ( (pAhciPort->regCMD & AHCI_PORT_CMD_ ST)1045 if ( (pAhciPort->regCMD & AHCI_PORT_CMD_CR) 1046 1046 && u32Value > 0) 1047 1047 { … … 1312 1312 ahciLog(("%s: Engine starts\n", __FUNCTION__)); 1313 1313 1314 /** Set engine state to running. */ 1315 u32Value |= AHCI_PORT_CMD_CR; 1314 /* Set engine state to running if there is a device attached. */ 1315 if (pAhciPort->pDrvBase) 1316 u32Value |= AHCI_PORT_CMD_CR; 1316 1317 } 1317 1318 else … … 1320 1321 /* Clear command issue register. */ 1321 1322 pAhciPort->regCI = 0; 1322 /* *Clear current command slot. */1323 /* Clear current command slot. */ 1323 1324 pAhciPort->u32CurrentCommandSlot = 0; 1324 1325 u32Value &= ~AHCI_PORT_CMD_CR; … … 8061 8062 */ 8062 8063 pAhciPort->regSSTS = 0; 8063 ASMAtomicAndU32(&pAhciPort->regCMD, ~AHCI_PORT_CMD_CPS); 8064 /* 8065 * Clear CR bit too to prevent submission of new commands when CI is written 8066 * (AHCI Spec 1.2: 7.4 Interaction of the Command List and Port Change Status). 8067 */ 8068 ASMAtomicAndU32(&pAhciPort->regCMD, ~(AHCI_PORT_CMD_CPS | AHCI_PORT_CMD_CR)); 8064 8069 ASMAtomicOrU32(&pAhciPort->regIS, AHCI_PORT_IS_CPDS | AHCI_PORT_IS_PRCS); 8065 8070 ASMAtomicOrU32(&pAhciPort->regSERR, AHCI_PORT_SERR_N);
Note:
See TracChangeset
for help on using the changeset viewer.