st_smi: Fix smi read status

smi_read_sr fails sometimes because of TFF not getting set within assumed time.
This condition may arise because of, for example, smi memory being in a erase
mode.

This fix is to enable reading the status register until timeout.

Signed-off-by: Vipin Kumar <vipin.kumar@st.com>
Signed-off-by: Amit Virdi <amit.virdi@st.com>
Signed-off-by: Stefan Roese <sr@denx.de>
diff --git a/drivers/mtd/st_smi.c b/drivers/mtd/st_smi.c
index 8c27603..38f22b7 100644
--- a/drivers/mtd/st_smi.c
+++ b/drivers/mtd/st_smi.c
@@ -188,9 +188,7 @@
 	   but potentially three seconds (!) after page erase. */
 	do {
 		sr = smi_read_sr(bank);
-		if (sr < 0)
-			continue;	/* try until timeout */
-		else if (!(sr & WIP_BIT))
+		if ((sr >= 0) && (!(sr & WIP_BIT)))
 			return 0;
 
 		/* Try again after 1m-sec */
@@ -231,9 +229,7 @@
 
 	do {
 		sr = smi_read_sr(bank);
-		if (sr < 0)
-			break;
-		else if (sr & (1 << (bank + WM_SHIFT)))
+		if ((sr >= 0) && (sr & (1 << (bank + WM_SHIFT))))
 			return 0;
 
 		/* Try again after 1m-sec */