summaryrefslogtreecommitdiffstats
path: root/sound/pci/ca0106
diff options
context:
space:
mode:
authorTrent Piepho <xyzzy@speakeasy.org>2007-07-25 18:41:17 +0200
committerJaroslav Kysela <perex@perex.cz>2007-10-16 15:58:00 +0200
commitb87c464ea2c27005f592aaf351af40989f90f574 (patch)
tree1ec740dd134d6fcbd0d98c076c353385542578c7 /sound/pci/ca0106
parent18b5d32f201462ef7ed3c01773a88b4645128158 (diff)
downloadkernel-crypto-b87c464ea2c27005f592aaf351af40989f90f574.tar.gz
kernel-crypto-b87c464ea2c27005f592aaf351af40989f90f574.tar.xz
kernel-crypto-b87c464ea2c27005f592aaf351af40989f90f574.zip
[ALSA] ca0106: remove extra commands in SPI DAC init sequence
The init sequence set a number of registers more than once to different values. It's only necessary to set them once to their final values. It also never actually updated the digital attenuation settings. Signed-off-by: Trent Piepho <xyzzy@speakeasy.org> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
Diffstat (limited to 'sound/pci/ca0106')
-rw-r--r--sound/pci/ca0106/ca0106_main.c16
1 files changed, 5 insertions, 11 deletions
diff --git a/sound/pci/ca0106/ca0106_main.c b/sound/pci/ca0106/ca0106_main.c
index 252710e4f5c..611fc15a054 100644
--- a/sound/pci/ca0106/ca0106_main.c
+++ b/sound/pci/ca0106/ca0106_main.c
@@ -1262,25 +1262,19 @@ static int __devinit snd_ca0106_pcm(struct snd_ca0106 *emu, int device, struct s
static unsigned int spi_dac_init[] = {
SPI_REG(SPI_LDA1_REG, SPI_DA_BIT_0dB), /* 0dB dig. attenuation */
SPI_REG(SPI_RDA1_REG, SPI_DA_BIT_0dB),
- SPI_REG(SPI_PL_REG, 0x00),
- SPI_REG(SPI_PL_REG, SPI_PL_BIT_L_L | SPI_PL_BIT_R_R),
- SPI_REG(SPI_FMT_REG, SPI_FMT_BIT_RJ | SPI_IWL_BIT_24),
+ SPI_REG(SPI_PL_REG, SPI_PL_BIT_L_L | SPI_PL_BIT_R_R | SPI_IZD_BIT),
+ SPI_REG(SPI_FMT_REG, SPI_FMT_BIT_I2S | SPI_IWL_BIT_24),
SPI_REG(SPI_LDA2_REG, SPI_DA_BIT_0dB),
SPI_REG(SPI_RDA2_REG, SPI_DA_BIT_0dB),
SPI_REG(SPI_LDA3_REG, SPI_DA_BIT_0dB),
SPI_REG(SPI_RDA3_REG, SPI_DA_BIT_0dB),
SPI_REG(SPI_MASTDA_REG, SPI_DA_BIT_0dB),
SPI_REG(9, 0x00),
- SPI_REG(SPI_MS_REG, 0x00),
- SPI_REG(SPI_MS_REG, SPI_RATE_BIT_256),
+ SPI_REG(SPI_MS_REG, SPI_DACD0_BIT | SPI_DACD1_BIT | SPI_DACD2_BIT),
SPI_REG(12, 0x00),
SPI_REG(SPI_LDA4_REG, SPI_DA_BIT_0dB),
- SPI_REG(SPI_RDA4_REG, SPI_DA_BIT_0dB),
- SPI_REG(15, 0x00),
- SPI_REG(SPI_PL_REG, SPI_PL_BIT_L_L | SPI_PL_BIT_R_R | SPI_IZD_BIT),
- SPI_REG(SPI_FMT_REG, SPI_FMT_BIT_I2S),
- SPI_REG(SPI_FMT_REG, SPI_FMT_BIT_I2S | SPI_IWL_BIT_24),
- SPI_REG(SPI_MS_REG, SPI_DACD0_BIT | SPI_DACD1_BIT | SPI_DACD2_BIT),
+ SPI_REG(SPI_RDA4_REG, SPI_DA_BIT_0dB | SPI_DA_BIT_UPDATE),
+ SPI_REG(SPI_DACD4_REG, 0x00),
};
static unsigned int i2c_adc_init[][2] = {