[PATCH v2 14/30] ide: Simplify success condition

Simon Glass sjg at chromium.org
Tue Apr 25 18:54:39 CEST 2023


Change the if() to remove extra brackets and check for the positive case
first, i.e. when a device is found. Exit the loop in that case, with the
retry logic in the 'else' part.

Signed-off-by: Simon Glass <sjg at chromium.org>
---

(no changes since v1)

 drivers/block/ide.c | 36 +++++++++++++++++-------------------
 1 file changed, 17 insertions(+), 19 deletions(-)

diff --git a/drivers/block/ide.c b/drivers/block/ide.c
index 2f45bb6bffb..a51a0008cae 100644
--- a/drivers/block/ide.c
+++ b/drivers/block/ide.c
@@ -599,27 +599,25 @@ static void ide_ident(struct blk_desc *dev_desc)
 			c = ide_wait(device, IDE_TIME_OUT);
 		}
 
-		if (((c & ATA_STAT_DRQ) == 0) ||
-		    ((c & (ATA_STAT_FAULT | ATA_STAT_ERR)) != 0)) {
-			if (IS_ENABLED(CONFIG_ATAPI)) {
-				/*
-				 * Need to soft reset the device
-				 * in case it's an ATAPI...
-				 */
-				debug("Retrying...\n");
-				ide_outb(device, ATA_DEV_HD,
-					 ATA_LBA | ATA_DEVICE(device));
-				mdelay(100);
-				ide_outb(device, ATA_COMMAND, 0x08);
-				mdelay(500);
-				/* Select device */
-				ide_outb(device, ATA_DEV_HD,
-					 ATA_LBA | ATA_DEVICE(device));
-			}
-			tries--;
-		} else {
+		if ((c & ATA_STAT_DRQ) &&
+		    !(c & (ATA_STAT_FAULT | ATA_STAT_ERR))) {
 			break;
+		} else if (IS_ENABLED(CONFIG_ATAPI)) {
+			/*
+			 * Need to soft reset the device
+			 * in case it's an ATAPI...
+			 */
+			debug("Retrying...\n");
+			ide_outb(device, ATA_DEV_HD,
+				 ATA_LBA | ATA_DEVICE(device));
+			mdelay(100);
+			ide_outb(device, ATA_COMMAND, 0x08);
+			mdelay(500);
+			/* Select device */
+			ide_outb(device, ATA_DEV_HD,
+				 ATA_LBA | ATA_DEVICE(device));
 		}
+		tries--;
 	}
 
 	if (!tries)	/* Not found */
-- 
2.40.0.634.g4ca3ef3211-goog



More information about the U-Boot mailing list