Re: 2.5.73-mm2 - odd audio problem, bad intel8x0/ac97 clocking.

Andrew Morton (akpm@digeo.com)
Sat, 28 Jun 2003 17:10:36 -0700


Valdis.Kletnieks@vt.edu wrote:
>
> This is *not* the "clock runs really really fas"t issue - I left -mm2 running overnight and
> in some 8 hours the system clock only drifted a few seconds versus wall clock (and it's
> possible it was off a few seconds when it booted, as it didn't get an NTP sync at boot).
>
> Audio plays "too fast" - a 4 minute .ogg goes through in about 3:40, sounding a bit
> high-pitched in the process.
>
> lspci -v:
> 00:1f.5 Multimedia audio controller: Intel Corp. 82801CA/CAM AC'97 Audio (rev 02)
> Subsystem: Cirrus Logic: Unknown device 5959
> Flags: bus master, medium devsel, latency 0, IRQ 11
> I/O ports at d800 [size=256]
> I/O ports at dc80 [size=64]
>
> relevant dmesg output:
> Advanced Linux Sound Architecture Driver Version 0.9.4 (Mon Jun 09 12:01:18 2003 UTC).
> request_module: failed /sbin/modprobe -- snd-card-0. error = -16
> PCI: Setting latency timer of device 0000:00:1f.5 to 64
> intel8x0: clocking to 51084
> ALSA sound/pci/intel8x0.c:2520: joystick(s) found
> ALSA device list:
> #0: Intel 82801CA-ICH3 at 0xd800, irq 11
>
> The 'clocking to 51084' is *VERY* suspicious

It could be that do_gettimeofday() has gone silly. Could you
add this patch and see what it says?

sound/pci/intel8x0.c | 6 ++----
1 files changed, 2 insertions(+), 4 deletions(-)

diff -puN sound/pci/intel8x0.c~intel8x0-cleanup sound/pci/intel8x0.c
--- 25/sound/pci/intel8x0.c~intel8x0-cleanup 2003-06-28 17:07:43.000000000 -0700
+++ 25-akpm/sound/pci/intel8x0.c 2003-06-28 17:09:07.000000000 -0700
@@ -2062,10 +2062,8 @@ static void __devinit intel8x0_measure_a

t = stop_time.tv_sec - start_time.tv_sec;
t *= 1000000;
- if (stop_time.tv_usec < start_time.tv_usec)
- t -= start_time.tv_usec - stop_time.tv_usec;
- else
- t += stop_time.tv_usec - start_time.tv_usec;
+ t += stop_time.tv_usec - start_time.tv_usec;
+ printk(KERN_INFO "%s: measured %lu usecs\n", __FUNCTION__, t);
if (t == 0) {
snd_printk(KERN_ERR "?? calculation error..\n");
return;

_

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/