ALSA: oxygen: fix distorted output on AK4396-based cards
authorClemens Ladisch <clemens@ladisch.de>
Fri, 29 Aug 2008 11:08:34 +0000 (13:08 +0200)
committerTakashi Iwai <tiwai@suse.de>
Fri, 29 Aug 2008 12:15:19 +0000 (14:15 +0200)
commitdf91bc23dcb052ff2da71b3482bf3c5fbf4b8a53
treee74972c0522e55da1b027b60c4894c853a96a5ba
parent93a1a5eb70be5cc14990b97ef2460212e32658dc
ALSA: oxygen: fix distorted output on AK4396-based cards

When changing the sample rate, the CMI8788's master clock output becomes
unstable for a short time.  The AK4396 needs the master clock to do SPI
writes, so writing to an AK4396 control register directly after a sample
rate change will garble the value.  In our case, this leads to the DACs
being misconfigured to I2S sample format, which results in a wrong
output level and horrible distortions on samples louder than -6 dB.

To fix this, we need to wait until the new master clock signal has
become stable before doing SPI writes.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/oxygen/hifier.c
sound/pci/oxygen/oxygen.c