/* Start specified slot in transfer list of a UFS device. */
EFI_STATUS UfsStartExecCmd(IN UFS_PASS_THRU_PRIVATE_DATA *Private, IN UINT8 Slot)
/* Start specified slot in transfer list of a UFS device. */
EFI_STATUS UfsStartExecCmd(IN UFS_PASS_THRU_PRIVATE_DATA *Private, IN UINT8 Slot)
{
  UINT32      Data;
  EFI_STATUS  Status;
  Status = UfsMmioRead32 (Private, UFS_HC_UTRLRSR_OFFSET, &Data);
  if (EFI_ERROR (Status)) {
    return Status;
  }
  if ((Data & UFS_HC_UTRLRSR) != UFS_HC_UTRLRSR) {
    Status = UfsMmioWrite32 (Private, UFS_HC_UTRLRSR_OFFSET, UFS_HC_UTRLRSR);
    if (EFI_ERROR (Status)) {
      return Status;
    }
  }
  Status = UfsMmioWrite32 (Private, UFS_HC_UTRLDBR_OFFSET, BIT0 << Slot);
  if (EFI_ERROR (Status)) {
    return Status;
  }
  return EFI_SUCCESS;
}