diff options
Diffstat (limited to 'arch/powerpc/kernel/prom.c')
-rw-r--r-- | arch/powerpc/kernel/prom.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c index 9f329a8928ea..acc0d247d3c3 100644 --- a/arch/powerpc/kernel/prom.c +++ b/arch/powerpc/kernel/prom.c | |||
@@ -697,6 +697,18 @@ static int __init early_init_dt_scan_cpus(unsigned long node, | |||
697 | prop = of_get_flat_dt_prop(node, "cpu-version", NULL); | 697 | prop = of_get_flat_dt_prop(node, "cpu-version", NULL); |
698 | if (prop && (*prop & 0xff000000) == 0x0f000000) | 698 | if (prop && (*prop & 0xff000000) == 0x0f000000) |
699 | identify_cpu(0, *prop); | 699 | identify_cpu(0, *prop); |
700 | #if defined(CONFIG_44x) && defined(CONFIG_PPC_FPU) | ||
701 | /* | ||
702 | * Since 440GR(x)/440EP(x) processors have the same pvr, | ||
703 | * we check the node path and set bit 28 in the cur_cpu_spec | ||
704 | * pvr for EP(x) processor version. This bit is always 0 in | ||
705 | * the "real" pvr. Then we call identify_cpu again with | ||
706 | * the new logical pvr to enable FPU support. | ||
707 | */ | ||
708 | if (strstr(uname, "440EP")) { | ||
709 | identify_cpu(0, cur_cpu_spec->pvr_value | 0x8); | ||
710 | } | ||
711 | #endif | ||
700 | } | 712 | } |
701 | 713 | ||
702 | check_cpu_feature_properties(node); | 714 | check_cpu_feature_properties(node); |