diff --git a/arch/ppc/platforms/pmac_time.c b/arch/ppc/platforms/pmac_time.c index 70e7408e43dfe8856995e47f49c18d4c7170f8bd..923afbdc7c563fb623474e48ab4d61dd39d74fd1 100644 --- a/arch/ppc/platforms/pmac_time.c +++ b/arch/ppc/platforms/pmac_time.c @@ -166,7 +166,7 @@ via_calibrate_decr(void) { struct device_node *vias; volatile unsigned char *via; - int count = VIA_TIMER_FREQ_6 / HZ; + int count = VIA_TIMER_FREQ_6 / 100; unsigned int dstart, dend; vias = find_devices("via-cuda"); @@ -196,7 +196,7 @@ via_calibrate_decr(void) ; dend = get_dec(); - tb_ticks_per_jiffy = (dstart - dend) / 6; + tb_ticks_per_jiffy = (dstart - dend) / (6 * (HZ/100)); tb_to_us = mulhwu_scale_factor(dstart - dend, 60000); printk(KERN_INFO "via_calibrate_decr: ticks per jiffy = %u (%u ticks)\n", @@ -260,7 +260,9 @@ pmac_calibrate_decr(void) * calibration. That's better since the VIA itself seems * to be slightly off. --BenH */ - if (!machine_is_compatible("MacRISC2")) + if (!machine_is_compatible("MacRISC2") && + !machine_is_compatible("MacRISC3") && + !machine_is_compatible("MacRISC4")) if (via_calibrate_decr()) return;