> -----Original Message-----
> From: Albecki, Mateusz
> Sent: Monday, June 24, 2019 7:33 PM
> To: devel@edk2.groups.io; Albecki, Mateusz
> Cc: Wu, Hao A
> Subject: RE: [edk2-devel] [PATCH] MdeModulePkg/UfsPassThruDxe:
> Refactor UFS device presence detection
> 
> Test info:
> 
> Tested device presence detection before and after change on real hardware.
> No functional change in UFS detection.


Thanks for the test information.
Reviewed-by: Hao A Wu <hao.a...@intel.com>

Best Regards,
Hao Wu


> 
> > -----Original Message-----
> > From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of
> > Albecki, Mateusz
> > Sent: Friday, June 21, 2019 5:27 PM
> > To: devel@edk2.groups.io
> > Cc: Albecki, Mateusz <mateusz.albe...@intel.com>; Wu, Hao A
> > <hao.a...@intel.com>
> > Subject: [edk2-devel] [PATCH] MdeModulePkg/UfsPassThruDxe: Refactor
> > UFS device presence detection
> >
> > In current implementation we are checking for device presence every time
> > we execute UIC command. To make UfsExecUicCommands more generic
> > checking device presence has been moved to UfsDeviceDetection.
> >
> > Cc: Hao A Wu <hao.a...@intel.com>
> > Signed-off-by: Mateusz Albecki <mateusz.albe...@intel.com>
> > ---
> >  .../Bus/Ufs/UfsPassThruDxe/UfsPassThruHci.c        | 50 ++++++++-----------
> --
> > -
> >  1 file changed, 18 insertions(+), 32 deletions(-)
> >
> > diff --git a/MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThruHci.c
> > b/MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThruHci.c
> > index 4b93821f38..633f975e30 100644
> > --- a/MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThruHci.c
> > +++ b/MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThruHci.c
> > @@ -1534,7 +1534,7 @@ Exit1:
> >
> >
> >  /**
> > -  Sent UIC DME_LINKSTARTUP command to start the link startup
> procedure.
> > +  Send UIC command.
> >
> >    @param[in] Private          The pointer to the
> > UFS_PASS_THRU_PRIVATE_DATA data structure.
> >    @param[in] UicOpcode        The opcode of the UIC command.
> > @@ -1544,7 +1544,6 @@ Exit1:
> >
> >    @return EFI_SUCCESS      Successfully execute this UIC command and
> > detect attached UFS device.
> >    @return EFI_DEVICE_ERROR Fail to execute this UIC command and detect
> > attached UFS device.
> > -  @return EFI_NOT_FOUND    The presence of the UFS device isn't
> detected.
> >
> >  **/
> >  EFI_STATUS
> > @@ -1629,24 +1628,6 @@ UfsExecUicCommands (
> >      }
> >    }
> >
> > -  //
> > -  // Check value of HCS.DP and make sure that there is a device attached to
> > the Link.
> > -  //
> > -  Status = UfsMmioRead32 (Private, UFS_HC_STATUS_OFFSET, &Data);
> > -  if (EFI_ERROR (Status)) {
> > -    return Status;
> > -  }
> > -
> > -  if ((Data & UFS_HC_HCS_DP) == 0) {
> > -    Status  = UfsWaitMemSet (Private, UFS_HC_IS_OFFSET,
> UFS_HC_IS_ULSS,
> > UFS_HC_IS_ULSS, UFS_TIMEOUT);
> > -    if (EFI_ERROR (Status)) {
> > -      return EFI_DEVICE_ERROR;
> > -    }
> > -    return EFI_NOT_FOUND;
> > -  }
> > -
> > -  DEBUG ((DEBUG_INFO, "UfsPassThruDxe: found a attached UFS
> > device\n"));
> > -
> >    return EFI_SUCCESS;
> >  }
> >
> > @@ -1820,8 +1801,9 @@ UfsDeviceDetection (
> >    IN  UFS_PASS_THRU_PRIVATE_DATA     *Private
> >    )
> >  {
> > -  UINTN                  Retry;
> > -  EFI_STATUS             Status;
> > +  UINTN       Retry;
> > +  EFI_STATUS  Status;
> > +  UINT32      Data;
> >
> >    //
> >    // Start UFS device detection.
> > @@ -1829,22 +1811,26 @@ UfsDeviceDetection (
> >    //
> >    for (Retry = 0; Retry < 3; Retry++) {
> >      Status = UfsExecUicCommands (Private, UfsUicDmeLinkStartup, 0, 0, 0);
> > -    if (!EFI_ERROR (Status)) {
> > -      break;
> > +    if (EFI_ERROR (Status)) {
> > +      return EFI_DEVICE_ERROR;
> >      }
> >
> > -    if (Status == EFI_NOT_FOUND) {
> > -      continue;
> > +    Status = UfsMmioRead32 (Private, UFS_HC_STATUS_OFFSET, &Data);
> > +    if (EFI_ERROR (Status)) {
> > +      return EFI_DEVICE_ERROR;
> >      }
> >
> > -    return EFI_DEVICE_ERROR;
> > -  }
> > -
> > -  if (Retry == 3) {
> > -    return EFI_NOT_FOUND;
> > +    if ((Data & UFS_HC_HCS_DP) == 0) {
> > +      Status = UfsWaitMemSet (Private, UFS_HC_IS_OFFSET,
> > UFS_HC_IS_ULSS, UFS_HC_IS_ULSS, UFS_TIMEOUT);
> > +      if (EFI_ERROR (Status)) {
> > +        return EFI_DEVICE_ERROR;
> > +      }
> > +    } else {
> > +      return EFI_SUCCESS;
> > +    }
> >    }
> >
> > -  return EFI_SUCCESS;
> > +  return EFI_NOT_FOUND;
> >  }
> >
> >  /**
> > --
> > 2.14.1.windows.1
> >
> > --------------------------------------------------------------------
> >
> > Intel Technology Poland sp. z o.o.
> > ul. Slowackiego 173 | 80-298 Gdansk | Sad Rejonowy Gdansk Polnoc | VII
> > Wydzial Gospodarczy Krajowego Rejestru Sadowego - KRS 101882 | NIP
> 957-
> > 07-52-316 | Kapital zakladowy 200.000 PLN.
> >
> > Ta wiadomosc wraz z zalacznikami jest przeznaczona dla okreslonego
> > adresata i moze zawierac informacje poufne. W razie przypadkowego
> > otrzymania tej wiadomosci, prosimy o powiadomienie nadawcy oraz trwale
> > jej usuniecie; jakiekolwiek przegladanie lub rozpowszechnianie jest
> > zabronione.
> > This e-mail and any attachments may contain confidential material for the
> > sole use of the intended recipient(s). If you are not the intended 
> > recipient,
> > please contact the sender and delete all copies; any review or distribution
> by
> > others is strictly prohibited.
> >
> >
> > 


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#42769): https://edk2.groups.io/g/devel/message/42769
Mute This Topic: https://groups.io/mt/32159554/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to