ALSA: oxygen: fix distorted output on AK4396-based cards
commitb7bacf78acade979a96792b302a42c9f9f122246
authorClemens Ladisch <clemens@ladisch.de>
Tue, 30 Sep 2008 09:50:35 +0000 (30 11:50 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 9 Oct 2008 03:22:52 +0000 (8 20:22 -0700)
treec692c8174f49ea32b18c894f5fdf60682568f40e
parent5af6467733f9af297ce977a2594662bbef1f999d
ALSA: oxygen: fix distorted output on AK4396-based cards

Upstream-commit-id: df91bc23dcb052ff2da71b3482bf3c5fbf4b8a53

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
sound/pci/oxygen/hifier.c
sound/pci/oxygen/oxygen.c