1
0
Fork 0

ALSA: sc6000: fix older card initialization

The last patch to handle newer cards like SC7000
broke initialization of the SC6000. Fix this.

Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
wifi-calibration
Krzysztof Helt 2009-04-23 21:46:19 +02:00 committed by Takashi Iwai
parent c282866101
commit 0cfcdedadd
1 changed files with 12 additions and 10 deletions

View File

@ -391,7 +391,6 @@ static int __devinit sc6000_init_board(char __iomem *vport,
int config = mss_config |
sc6000_mpu_irq_to_softcfg(mpu_irq[dev]);
int err;
int cfg[2];
int old = 0;
err = sc6000_dsp_reset(vport);
@ -421,11 +420,18 @@ static int __devinit sc6000_init_board(char __iomem *vport,
answer, version[0], version[1]);
/* set configuration */
sc6000_hw_cfg_encode(vport, &cfg[0], port[dev], mpu_port[dev],
mss_port[dev]);
if (sc6000_hw_cfg_write(vport, cfg) < 0) {
snd_printk(KERN_ERR "sc6000_hw_cfg_write: failed!\n");
return -EIO;
sc6000_write(vport, COMMAND_5C);
if (sc6000_read(vport) < 0)
old = 1;
if (!old) {
int cfg[2];
sc6000_hw_cfg_encode(vport, &cfg[0], port[dev], mpu_port[dev],
mss_port[dev]);
if (sc6000_hw_cfg_write(vport, cfg) < 0) {
snd_printk(KERN_ERR "sc6000_hw_cfg_write: failed!\n");
return -EIO;
}
}
err = sc6000_setup_board(vport, config);
if (err < 0) {
@ -434,10 +440,6 @@ static int __devinit sc6000_init_board(char __iomem *vport,
}
sc6000_dsp_reset(vport);
sc6000_write(vport, COMMAND_5C);
if (sc6000_read(vport) < 0)
old = 1;
sc6000_dsp_reset(vport);
if (!old) {
sc6000_write(vport, COMMAND_60);