Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 26 Mar 2003 17:28:54 -0800
From:      Orion Hodson <orion@freebsd.org>
To:        "Kevin Oberman" <oberman@es.net>
Cc:        current@freebsd.org
Subject:   Re: AC97 sound problems with current
Message-ID:  <200303270128.h2R1SsAT090245@puma.icir.org>
In-Reply-To: <20030326210223.9B74B5D07@ptavv.es.net>

next in thread | previous in thread | raw e-mail | index | archive | help

Kevin Oberman writes:
|
| After upgrading my laptop from STABLE to CURRENT on 3/14 I have been
| having problems with GnomeMeeting. Often the sound is badly broken with
| 'spurts' of sound with silent gaps in between. This was never the case
| with STABLE. Other times it's fine.
|
| When I looked at my dmesg output I noticed some changes between STABLE
| and CURRENT for the pcm0 device. Under STABLE I only got two messages:
| pcm0: <Intel 82801CA (ICH3)> port 0x18c0-0x18ff,0x1c00-0x1cff irq 11 at 
device 31.5 on pci0
| pcm0: <Analog Devices AD1881A ac97 codec>
| Under CURRENT I get a third:
|
| pcm0: measured ac97 link rate at 512000000 Hz

There is a calibration step in the driver to determine the clock rate of the 
AC97 link.  What you are seeing is the calibration step failing and setting a 
bogus ac97 link rate.  I took a cursory look a couple of weeks back and it 
smelt like the timecounter initialization point changed, but haven't gotten 
around to looking closer and fixing the driver.  It's on the todo list... I've 
also been wondering if it's possible to ditch the calibration entirely, but 
this is an involved AC97 question and I don't have easy access to the relevant 
h/w and it's a different q.

Anyway, whilst it remains broken you can set the ac97 clock rate by hand.  The 
sysctl variable hw.snd.pcmX.ac97rate exists specifically for times when the 
calibration test fails (X = 0 if no other cards installed).  Depending on 
which clock source is being used by the codec you'll want to set the variable 
to 48000 or around 55913.  YMMV, but kldloading the driver rather than having 
it compiled into the kernel will probably result in the correct calibration.

- Orion




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200303270128.h2R1SsAT090245>