+ if ((mUfsHcPlatform != NULL) &&\r
+ ((mUfsHcPlatform->RefClkFreq == EdkiiUfsCardRefClkFreq19p2Mhz) ||\r
+ (mUfsHcPlatform->RefClkFreq == EdkiiUfsCardRefClkFreq26Mhz) ||\r
+ (mUfsHcPlatform->RefClkFreq == EdkiiUfsCardRefClkFreq38p4Mhz)))\r
+ {\r
+ RefClkAttr = UfsAttrRefClkFreq;\r
+ Attributes = EdkiiUfsCardRefClkFreqObsolete;\r
+ Status = UfsRwAttributes (Private, TRUE, RefClkAttr, 0, 0, (UINT32 *)&Attributes);\r
+ if (!EFI_ERROR (Status)) {\r
+ if (Attributes != mUfsHcPlatform->RefClkFreq) {\r
+ Attributes = mUfsHcPlatform->RefClkFreq;\r
+ DEBUG (\r
+ (DEBUG_INFO,\r
+ "Setting bRefClkFreq attribute(%x) to %x\n 0 -> 19.2 Mhz\n 1 -> 26 Mhz\n 2 -> 38.4 Mhz\n 3 -> Obsolete\n",\r
+ RefClkAttr,\r
+ Attributes)\r
+ );\r
+ Status = UfsRwAttributes (Private, FALSE, RefClkAttr, 0, 0, (UINT32 *)&Attributes);\r
+ if (EFI_ERROR (Status)) {\r
+ DEBUG (\r
+ (DEBUG_ERROR,\r
+ "Failed to Change Reference Clock Attribute to %d, Status = %r \n",\r
+ mUfsHcPlatform->RefClkFreq,\r
+ Status)\r
+ );\r
+ }\r
+ }\r
+ } else {\r
+ DEBUG (\r
+ (DEBUG_ERROR,\r
+ "Failed to Read Reference Clock Attribute, Status = %r \n",\r
+ Status)\r
+ );\r
+ }\r
+ }\r
+\r
+ if ((mUfsHcPlatform != NULL) && (mUfsHcPlatform->Callback != NULL)) {\r
+ Status = mUfsHcPlatform->Callback (Private->Handle, EdkiiUfsHcPostLinkStartup, &Private->UfsHcDriverInterface);\r
+ if (EFI_ERROR (Status)) {\r
+ DEBUG (\r
+ (DEBUG_ERROR,\r
+ "Failure from platform driver during EdkiiUfsHcPostLinkStartup, Status = %r\n",\r
+ Status)\r
+ );\r
+ return Status;\r
+ }\r
+ }\r
+\r