\r
\r
/**\r
- Sent UIC DME_LINKSTARTUP command to start the link startup procedure.\r
+ Send UIC command.\r
\r
@param[in] Private The pointer to the UFS_PASS_THRU_PRIVATE_DATA data structure.\r
@param[in] UicOpcode The opcode of the UIC command.\r
\r
@return EFI_SUCCESS Successfully execute this UIC command and detect attached UFS device.\r
@return EFI_DEVICE_ERROR Fail to execute this UIC command and detect attached UFS device.\r
- @return EFI_NOT_FOUND The presence of the UFS device isn't detected.\r
\r
**/\r
EFI_STATUS\r
}\r
}\r
\r
- //\r
- // Check value of HCS.DP and make sure that there is a device attached to the Link.\r
- //\r
- Status = UfsMmioRead32 (Private, UFS_HC_STATUS_OFFSET, &Data);\r
- if (EFI_ERROR (Status)) {\r
- return Status;\r
- }\r
-\r
- if ((Data & UFS_HC_HCS_DP) == 0) {\r
- Status = UfsWaitMemSet (Private, UFS_HC_IS_OFFSET, UFS_HC_IS_ULSS, UFS_HC_IS_ULSS, UFS_TIMEOUT);\r
- if (EFI_ERROR (Status)) {\r
- return EFI_DEVICE_ERROR;\r
- }\r
- return EFI_NOT_FOUND;\r
- }\r
-\r
- DEBUG ((DEBUG_INFO, "UfsPassThruDxe: found a attached UFS device\n"));\r
-\r
return EFI_SUCCESS;\r
}\r
\r
IN UFS_PASS_THRU_PRIVATE_DATA *Private\r
)\r
{\r
- UINTN Retry;\r
- EFI_STATUS Status;\r
+ UINTN Retry;\r
+ EFI_STATUS Status;\r
+ UINT32 Data;\r
\r
//\r
// Start UFS device detection.\r
//\r
for (Retry = 0; Retry < 3; Retry++) {\r
Status = UfsExecUicCommands (Private, UfsUicDmeLinkStartup, 0, 0, 0);\r
- if (!EFI_ERROR (Status)) {\r
- break;\r
+ if (EFI_ERROR (Status)) {\r
+ return EFI_DEVICE_ERROR;\r
}\r
\r
- if (Status == EFI_NOT_FOUND) {\r
- continue;\r
+ Status = UfsMmioRead32 (Private, UFS_HC_STATUS_OFFSET, &Data);\r
+ if (EFI_ERROR (Status)) {\r
+ return EFI_DEVICE_ERROR;\r
}\r
\r
- return EFI_DEVICE_ERROR;\r
- }\r
-\r
- if (Retry == 3) {\r
- return EFI_NOT_FOUND;\r
+ if ((Data & UFS_HC_HCS_DP) == 0) {\r
+ Status = UfsWaitMemSet (Private, UFS_HC_IS_OFFSET, UFS_HC_IS_ULSS, UFS_HC_IS_ULSS, UFS_TIMEOUT);\r
+ if (EFI_ERROR (Status)) {\r
+ return EFI_DEVICE_ERROR;\r
+ }\r
+ } else {\r
+ return EFI_SUCCESS;\r
+ }\r
}\r
\r
- return EFI_SUCCESS;\r
+ return EFI_NOT_FOUND;\r
}\r
\r
/**\r