Mikael Pettersson wrote: > On Wed, 11 Jul 2007 10:45:35 +0800, Albert Lee wrote: > >>So, it seems both mdelay(37) and do_gettimeofday() are working properly on PowerMac G3. >>Maybe the calculated wrong PLL input is due to wrong reading of the counter register? >>Could you please try the attached debug patch for more clue, thanks. > > > This, supposedly debug-only, patch gives me much better PLL calibration: > > pata_pdc2027x 0000:00:0e.0: version 0.9 > bccrh [0] bccrl [0] > bccrhv[0] bccrlv[0] > bccrh [7FCF] bccrl [15ED] > bccrhv[7FCF] bccrlv[15D4] > start[0] end[1072141805] > usec_elapsed for mdelay(100) [105500] > start time: [1184152411]s [689475]us > end time: [1184152411]s [794975]us > PLL input clock[-1563248254]Hz > usec_elapsed for mdelay(37) [35432] > start time: [1184152411]s [818033]us > end time: [1184152411]s [853465]us > bccrh [7FC9] bccrl [1A4B] > bccrhv[7FC9] bccrlv[1A4B] > bccrh [7F98] bccrl [3038] > bccrhv[7F98] bccrlv[301F] > start[1071946315] end[1070346296] > usec_elapsed for mdelay(100) [103571] > start time: [1184152411]s [874717]us > end time: [1184152411]s [978288]us > PLL input clock[15440000]Hz > usec_elapsed for mdelay(37) [35431] > start time: [1184152411]s [997039]us > end time: [1184152412]s [32470]us > pata_pdc2027x 0000:00:0e.0: PLL input clock 15440 kHz > > and from then on things are fine. > > Weird. I'll try with an older gcc later (been using gcc-4.2.0 so far). > Is the problem reproducible with more reload loops? Maybe we could try something like: #!/bin/sh while : ; do rmmod pata_pdc2027x sleep 1 modprobe pata_pdc2027x done and "tail -f /var/log/messages|grep PLL > pll_test.log" to check the PLL clock. -- albert - To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html