Commit 18f3c59f authored by James Courtier-Dutton's avatar James Courtier-Dutton Committed by Jaroslav Kysela

[ALSA] snd-emu10k1: Tidy SPI code.

Modules: EMU10K1/EMU10K2 driver
Signed-off-by: default avatarJames Courtier-Dutton <James@superbug.co.uk>
parent c6a02ca2
...@@ -92,6 +92,30 @@ void snd_emu10k1_voice_init(struct snd_emu10k1 * emu, int ch) ...@@ -92,6 +92,30 @@ void snd_emu10k1_voice_init(struct snd_emu10k1 * emu, int ch)
} }
} }
static unsigned int spi_dac_init[] = {
0x00ff,
0x02ff,
0x0400,
0x0520,
0x0600,
0x08ff,
0x0aff,
0x0cff,
0x0eff,
0x10ff,
0x1200,
0x1400,
0x1480,
0x1800,
0x1aff,
0x1cff,
0x1e00,
0x0530,
0x0602,
0x0622,
0x1400,
};
static int snd_emu10k1_init(struct snd_emu10k1 *emu, int enable_ir, int resume) static int snd_emu10k1_init(struct snd_emu10k1 *emu, int enable_ir, int resume)
{ {
unsigned int silent_page; unsigned int silent_page;
...@@ -182,28 +206,12 @@ static int snd_emu10k1_init(struct snd_emu10k1 *emu, int enable_ir, int resume) ...@@ -182,28 +206,12 @@ static int snd_emu10k1_init(struct snd_emu10k1 *emu, int enable_ir, int resume)
outl(tmp, emu->port + A_IOCFG); outl(tmp, emu->port + A_IOCFG);
} }
if (emu->card_capabilities->spi_dac) { /* Audigy 2 ZS Notebook with DAC Wolfson WM8768/WM8568 */ if (emu->card_capabilities->spi_dac) { /* Audigy 2 ZS Notebook with DAC Wolfson WM8768/WM8568 */
u32 tmp; int size, n;
tmp = snd_emu10k1_spi_write(emu, 0x00ff);
tmp = snd_emu10k1_spi_write(emu, 0x02ff); size = ARRAY_SIZE(spi_dac_init);
tmp = snd_emu10k1_spi_write(emu, 0x0400); for (n=0; n < size; n++)
tmp = snd_emu10k1_spi_write(emu, 0x0520); snd_emu10k1_spi_write(emu, spi_dac_init[n]);
tmp = snd_emu10k1_spi_write(emu, 0x0600);
tmp = snd_emu10k1_spi_write(emu, 0x08ff);
tmp = snd_emu10k1_spi_write(emu, 0x0aff);
tmp = snd_emu10k1_spi_write(emu, 0x0cff);
tmp = snd_emu10k1_spi_write(emu, 0x0eff);
tmp = snd_emu10k1_spi_write(emu, 0x10ff);
tmp = snd_emu10k1_spi_write(emu, 0x1200);
tmp = snd_emu10k1_spi_write(emu, 0x1400);
tmp = snd_emu10k1_spi_write(emu, 0x1480);
tmp = snd_emu10k1_spi_write(emu, 0x1800);
tmp = snd_emu10k1_spi_write(emu, 0x1aff);
tmp = snd_emu10k1_spi_write(emu, 0x1cff);
tmp = snd_emu10k1_spi_write(emu, 0x1e00);
tmp = snd_emu10k1_spi_write(emu, 0x0530);
tmp = snd_emu10k1_spi_write(emu, 0x0602);
tmp = snd_emu10k1_spi_write(emu, 0x0622);
tmp = snd_emu10k1_spi_write(emu, 0x1400);
snd_emu10k1_ptr20_write(emu, 0x60, 0, 0x10); snd_emu10k1_ptr20_write(emu, 0x60, 0, 0x10);
/* Enable GPIOs /* Enable GPIOs
* GPIO0: Unknown * GPIO0: Unknown
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment