\r
case HII_KEY_ID_GOTO_REVERT:\r
gHiiConfiguration.AvailableFields |= HII_FIELD_PASSWORD;\r
- if (OpalDisk->SupportedAttributes.PyriteSsc != 1) {\r
- //\r
- // According to current Pyrite SSC Spec 1.00, there is no parameter for RevertSP method.\r
- // So issue RevertSP method without any parameter by suppress KeepUserData option.\r
- //\r
- gHiiConfiguration.AvailableFields |= HII_FIELD_KEEP_USER_DATA;\r
- }\r
+ gHiiConfiguration.AvailableFields |= HII_FIELD_KEEP_USER_DATA;\r
if (AvailActions.RevertKeepDataForced) {\r
gHiiConfiguration.AvailableFields |= HII_FIELD_KEEP_USER_DATA_FORCED;\r
}\r
// Default initialize keep user Data to be true\r
//\r
gHiiConfiguration.KeepUserData = 1;\r
- if (OpalDisk->SupportedAttributes.PyriteSsc == 1) {\r
- //\r
- // According to current Pyrite SSC Spec 1.00, there is no parameter for RevertSP method.\r
- // So issue RevertSP method without any parameter by set default value to FALSE.\r
- //\r
- gHiiConfiguration.KeepUserData = 0;\r
- }\r
-\r
}\r
}\r
}\r
} else if (gHiiConfiguration.SelectedAction == HII_KEY_ID_GOTO_DISABLE_USER) {\r
Status = HiiDisableUser (OpalDisk, Password, PassLength);\r
} else if (gHiiConfiguration.SelectedAction == HII_KEY_ID_GOTO_REVERT) {\r
- DEBUG ((DEBUG_INFO, "gHiiConfiguration.KeepUserData %u\n", gHiiConfiguration.KeepUserData));\r
- Status = HiiRevert(OpalDisk, Password, PassLength, gHiiConfiguration.KeepUserData);\r
+ if (OpalDisk->SupportedAttributes.PyriteSsc == 1 && OpalDisk->LockingFeature.MediaEncryption == 0) {\r
+ //\r
+ // For pyrite type device which also not supports media encryption, it not accept "Keep User Data" parameter.\r
+ // So here hardcode a FALSE for this case.\r
+ //\r
+ Status = HiiRevert(OpalDisk, Password, PassLength, FALSE);\r
+ } else {\r
+ Status = HiiRevert(OpalDisk, Password, PassLength, gHiiConfiguration.KeepUserData);\r
+ }\r
} else {\r
Status = HiiSetPassword(OpalDisk, Password, PassLength);\r
}\r