From 2721fabc5353114660dc53ac04939d29cb685263 Mon Sep 17 00:00:00 2001
From: erictian <erictian@6f19259b-4bc3-4df7-8a09-765794883524>
Date: Tue, 29 May 2012 07:05:33 +0000
Subject: [PATCH] MdeModulePkg/Ata: Clear PxCmd.SUD bit when the port has no
 device presented at AHCI mode.

Signed-off-by: Feng Tian <feng.tian@intel.com>
Reviewed-by: Sun Rui <rui.sun@intel.com>


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13370 6f19259b-4bc3-4df7-8a09-765794883524
---
 MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AhciMode.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AhciMode.c b/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AhciMode.c
index 42ee5bc580..c2c2c2869a 100644
--- a/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AhciMode.c
+++ b/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AhciMode.c
@@ -2278,7 +2278,10 @@ AhciModeInitialization (
       if (PhyDetectDelay == 0) {
         //
         // No device detected at this port.
+        // Clear PxCMD.SUD for those ports at which there are no device present.
         //
+        Offset = EFI_AHCI_PORT_START + Port * EFI_AHCI_PORT_REG_WIDTH + EFI_AHCI_PORT_CMD;
+        AhciAndReg (PciIo, Offset, (UINT32) ~(EFI_AHCI_PORT_CMD_SUD));
         continue;
       }