[ALSA] ca0106: remove extra commands in SPI DAC init sequence
authorTrent Piepho <xyzzy@speakeasy.org>
Wed, 25 Jul 2007 16:41:17 +0000 (18:41 +0200)
committerJaroslav Kysela <perex@perex.cz>
Tue, 16 Oct 2007 13:58:00 +0000 (15:58 +0200)
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>
sound/pci/ca0106/ca0106_main.c

index 252710e4f5c8a8ed8e12360562a0050c8f740ee3..611fc15a0545b22a33e714ed8b9e8a8d5ffb077a 100644 (file)
@@ -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] = {