|
@@ -40,6 +40,9 @@
|
|
|
static int __init p3041_ds_probe(void)
|
|
|
{
|
|
|
unsigned long root = of_get_flat_dt_root();
|
|
|
+#ifdef CONFIG_SMP
|
|
|
+ extern struct smp_ops_t smp_85xx_ops;
|
|
|
+#endif
|
|
|
|
|
|
if (of_flat_dt_is_compatible(root, "fsl,P3041DS"))
|
|
|
return 1;
|
|
@@ -51,6 +54,14 @@ static int __init p3041_ds_probe(void)
|
|
|
ppc_md.restart = fsl_hv_restart;
|
|
|
ppc_md.power_off = fsl_hv_halt;
|
|
|
ppc_md.halt = fsl_hv_halt;
|
|
|
+#ifdef CONFIG_SMP
|
|
|
+ /*
|
|
|
+ * Disable the timebase sync operations because we can't write
|
|
|
+ * to the timebase registers under the hypervisor.
|
|
|
+ */
|
|
|
+ smp_85xx_ops.give_timebase = NULL;
|
|
|
+ smp_85xx_ops.take_timebase = NULL;
|
|
|
+#endif
|
|
|
return 1;
|
|
|
}
|
|
|
|