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>
This commit is contained in:
Krzysztof Helt 2009-04-23 21:46:19 +02:00 коммит произвёл Takashi Iwai
Родитель c282866101
Коммит 0cfcdedadd
1 изменённых файлов: 12 добавлений и 10 удалений

Просмотреть файл

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