|
@@ -708,11 +708,16 @@ static __init void cpufeatures_cpu_quirks(void)
|
|
|
*/
|
|
|
if ((version & 0xffffff00) == 0x004e0100)
|
|
|
cur_cpu_spec->cpu_features |= CPU_FTR_POWER9_DD1;
|
|
|
+ else if ((version & 0xffffefff) == 0x004e0200)
|
|
|
+ ; /* DD2.0 has no feature flag */
|
|
|
else if ((version & 0xffffefff) == 0x004e0201)
|
|
|
cur_cpu_spec->cpu_features |= CPU_FTR_POWER9_DD2_1;
|
|
|
- else if ((version & 0xffffefff) == 0x004e0202)
|
|
|
- cur_cpu_spec->cpu_features |= CPU_FTR_P9_TM_HV_ASSIST |
|
|
|
- CPU_FTR_P9_TM_XER_SO_BUG;
|
|
|
+ else if ((version & 0xffffefff) == 0x004e0202) {
|
|
|
+ cur_cpu_spec->cpu_features |= CPU_FTR_P9_TM_HV_ASSIST;
|
|
|
+ cur_cpu_spec->cpu_features |= CPU_FTR_P9_TM_XER_SO_BUG;
|
|
|
+ cur_cpu_spec->cpu_features |= CPU_FTR_POWER9_DD2_1;
|
|
|
+ } else /* DD2.1 and up have DD2_1 */
|
|
|
+ cur_cpu_spec->cpu_features |= CPU_FTR_POWER9_DD2_1;
|
|
|
|
|
|
if ((version & 0xffff0000) == 0x004e0000) {
|
|
|
cur_cpu_spec->cpu_features &= ~(CPU_FTR_DAWR);
|