summaryrefslogtreecommitdiff
path: root/src/dev/arm/ufs_device.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/dev/arm/ufs_device.cc')
-rw-r--r--src/dev/arm/ufs_device.cc4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/dev/arm/ufs_device.cc b/src/dev/arm/ufs_device.cc
index 61b125ef5..fbc3bd394 100644
--- a/src/dev/arm/ufs_device.cc
+++ b/src/dev/arm/ufs_device.cc
@@ -1822,6 +1822,8 @@ UFSHostDevice::generateInterrupt()
pendingDoorbells = 0;
DPRINTF(UFSHostDevice, "Clear doorbell %X\n", UFSHCIMem.TRUTRLDBR);
+ checkDrain();
+
/**step6 raise interrupt*/
gic->sendInt(intNum);
DPRINTF(UFSHostDevice, "Send interrupt @ transaction: 0x%8x!\n",
@@ -1838,6 +1840,8 @@ UFSHostDevice::clearInterrupt()
gic->clearInt(intNum);
DPRINTF(UFSHostDevice, "Clear interrupt: 0x%8x!\n", countInt);
+ checkDrain();
+
if (!(UFSHCIMem.TRUTRLDBR)) {
idlePhaseStart = curTick();
}