Commit 6c1143bb authored by Avri Altman's avatar Avri Altman Committed by Martin K. Petersen
Browse files

scsi: ufs: core: Use ufshcd_wait_for_register() in HCE init



The current so called "inner loop" in ufshcd_hba_execute_hce() is open
coding ufshcd_wait_for_register(). Replace it by
ufshcd_wait_for_register().  This is a code simplification - no
functional change.

Signed-off-by: default avatarAvri Altman <avri.altman@wdc.com>
Link: https://lore.kernel.org/r/20241016102141.441382-1-avri.altman@wdc.com


Reviewed-by: default avatarBart Van Assche <bvanassche@acm.org>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 10c58d7e
Loading
Loading
Loading
Loading
+30 −37
Original line number Diff line number Diff line
@@ -4826,10 +4826,9 @@ EXPORT_SYMBOL_GPL(ufshcd_hba_stop);
 */
static int ufshcd_hba_execute_hce(struct ufs_hba *hba)
{
	int retry_outer = 3;
	int retry_inner;
	int retry;

start:
	for (retry = 3; retry > 0; retry--) {
		if (ufshcd_is_hba_active(hba))
			/* change controller state to "reset state" */
			ufshcd_hba_stop(hba);
@@ -4855,21 +4854,15 @@ static int ufshcd_hba_execute_hce(struct ufs_hba *hba)
		ufshcd_delay_us(hba->vps->hba_enable_delay_us, 100);

		/* wait for the host controller to complete initialization */
	retry_inner = 50;
	while (!ufshcd_is_hba_active(hba)) {
		if (retry_inner) {
			retry_inner--;
		} else {
			dev_err(hba->dev,
				"Controller enable failed\n");
			if (retry_outer) {
				retry_outer--;
				goto start;
		if (!ufshcd_wait_for_register(hba, REG_CONTROLLER_ENABLE, CONTROLLER_ENABLE,
					      CONTROLLER_ENABLE, 1000, 50))
			break;

		dev_err(hba->dev, "Enabling the controller failed\n");
	}

	if (!retry)
		return -EIO;
		}
		usleep_range(1000, 1100);
	}

	/* enable UIC related interrupts */
	ufshcd_enable_intr(hba, UFSHCD_UIC_MASK);