|
@@ -589,6 +589,8 @@ static struct dt_cpu_feature_match __initdata
|
|
{"virtual-page-class-key-protection", feat_enable, 0},
|
|
{"virtual-page-class-key-protection", feat_enable, 0},
|
|
{"transactional-memory", feat_enable_tm, CPU_FTR_TM},
|
|
{"transactional-memory", feat_enable_tm, CPU_FTR_TM},
|
|
{"transactional-memory-v3", feat_enable_tm, 0},
|
|
{"transactional-memory-v3", feat_enable_tm, 0},
|
|
|
|
+ {"tm-suspend-hypervisor-assist", feat_enable, CPU_FTR_P9_TM_HV_ASSIST},
|
|
|
|
+ {"tm-suspend-xer-so-bug", feat_enable, CPU_FTR_P9_TM_XER_SO_BUG},
|
|
{"idle-nap", feat_enable_idle_nap, 0},
|
|
{"idle-nap", feat_enable_idle_nap, 0},
|
|
{"alignment-interrupt-dsisr", feat_enable_align_dsisr, 0},
|
|
{"alignment-interrupt-dsisr", feat_enable_align_dsisr, 0},
|
|
{"idle-stop", feat_enable_idle_stop, 0},
|
|
{"idle-stop", feat_enable_idle_stop, 0},
|
|
@@ -708,6 +710,9 @@ static __init void cpufeatures_cpu_quirks(void)
|
|
cur_cpu_spec->cpu_features |= CPU_FTR_POWER9_DD1;
|
|
cur_cpu_spec->cpu_features |= CPU_FTR_POWER9_DD1;
|
|
else if ((version & 0xffffefff) == 0x004e0201)
|
|
else if ((version & 0xffffefff) == 0x004e0201)
|
|
cur_cpu_spec->cpu_features |= CPU_FTR_POWER9_DD2_1;
|
|
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;
|
|
}
|
|
}
|
|
|
|
|
|
static void __init cpufeatures_setup_finished(void)
|
|
static void __init cpufeatures_setup_finished(void)
|