From c8ab773a4d36d9d7972fed69d5d713bc0b8303f3 Mon Sep 17 00:00:00 2001
From: P L Sai Krishna <lakshmis@xilinx.com>
Date: Mon, 29 Sep 2014 11:06:59 +0530
Subject: [PATCH] sdps:Command for relative card address is send during
 reinitialization.

This Patch Sends command for relative card address when re-initialization is done.

Signed-off-by: P L Sai Krishna <lakshmis@xilinx.com>
---
 XilinxProcessorIPLib/drivers/sdps/src/xsdps.c | 7 ++++---
 XilinxProcessorIPLib/drivers/sdps/src/xsdps.h | 2 ++
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/XilinxProcessorIPLib/drivers/sdps/src/xsdps.c b/XilinxProcessorIPLib/drivers/sdps/src/xsdps.c
index 6330def0..1a7f3681 100755
--- a/XilinxProcessorIPLib/drivers/sdps/src/xsdps.c
+++ b/XilinxProcessorIPLib/drivers/sdps/src/xsdps.c
@@ -46,6 +46,8 @@
 * 2.0   hk     12/13/13 Added check for arm to use sleep.h and its API's
 * 2.1   hk     04/18/14 Add sleep for microblaze designs. CR# 781117.
 * 2.2   hk     07/28/14 Make changes to enable use of data cache.
+* 2.3   sk     09/23/14 Send command for relative card address
+*                       when re-initialization is done.CR# 819614.
 *
 * </pre>
 *
@@ -370,8 +372,7 @@ int XSdPs_SdCardInitialize(XSdPs *InstancePtr)
 	InstancePtr->CardID[3] =
 			XSdPs_ReadReg16(InstancePtr->Config.BaseAddress,
 			XSDPS_RESP3_OFFSET);
-
-	while (InstancePtr->RelCardAddr == 0) {
+	do {
 		Status = XSdPs_CmdTransfer(InstancePtr, CMD3, 0, 0);
 		if (Status != XST_SUCCESS) {
 			Status = XST_FAILURE;
@@ -385,7 +386,7 @@ int XSdPs_SdCardInitialize(XSdPs *InstancePtr)
 		InstancePtr->RelCardAddr =
 				XSdPs_ReadReg(InstancePtr->Config.BaseAddress,
 					XSDPS_RESP0_OFFSET) & 0xFFFF0000;
-	}
+	} while (InstancePtr->RelCardAddr == 0);
 
 	Status = XSdPs_CmdTransfer(InstancePtr, CMD9, (InstancePtr->RelCardAddr), 0);
 	if (Status != XST_SUCCESS) {
diff --git a/XilinxProcessorIPLib/drivers/sdps/src/xsdps.h b/XilinxProcessorIPLib/drivers/sdps/src/xsdps.h
index c92c3ff4..cc249e55 100755
--- a/XilinxProcessorIPLib/drivers/sdps/src/xsdps.h
+++ b/XilinxProcessorIPLib/drivers/sdps/src/xsdps.h
@@ -104,6 +104,8 @@
 * 2.1   hk     04/18/14 Increase sleep for eMMC switch command.
 *                       Add sleep for microblaze designs. CR# 781117.
 * 2.2   hk     07/28/14 Make changes to enable use of data cache.
+* 2.3   sk     09/23/14 Send command for relative card address
+*                       when re-initialization is done.CR# 819614.
 *
 * </pre>
 *