lloyd,
I guess you're building for SMP. I had the same errors and Takashi sent
here some patches that solved all this.
See the diff-patches attached to this message (use 'patch -p1' while on
the alsa-driver source directory).
Ciao.
--
rncbc aka Rui Nuno Capela
[EMAIL PROTECTED]
Index: alsa-driver/include/ak4117.h
===================================================================
RCS file: /suse/tiwai/cvs/alsa/alsa-driver/include/ak4117.h,v
retrieving revision 1.2
diff -u -r1.2 ak4117.h
--- alsa-driver/include/ak4117.h 16 May 2003 09:03:24 -0000 1.2
+++ alsa-driver/include/ak4117.h 14 Jul 2003 13:54:12 -0000
@@ -163,7 +163,7 @@
ak4117_read_t * read;
void * private_data;
unsigned int init: 1;
- spinlock_t * lock;
+ spinlock_t lock;
unsigned char regmap[5];
snd_kcontrol_t *kctls[AK4117_CONTROLS];
snd_pcm_substream_t *substream;
Index: alsa-driver/pcmcia/pdaudiocf/pdaudiocf_core.c
===================================================================
RCS file: /suse/tiwai/cvs/alsa/alsa-driver/pcmcia/pdaudiocf/pdaudiocf_core.c,v
retrieving revision 1.1
diff -u -r1.1 pdaudiocf_core.c
--- alsa-driver/pcmcia/pdaudiocf/pdaudiocf_core.c 30 Jun 2003 10:08:42 -0000 1.1
+++ alsa-driver/pcmcia/pdaudiocf/pdaudiocf_core.c 15 Jul 2003 13:06:08 -0000
@@ -133,8 +133,7 @@
if (chip == NULL)
return NULL;
chip->card = card;
- spin_lock_init(&chip->lock);
- spin_lock_init(&chip->irq_lock);
+ spin_lock_init(&chip->reg_lock);
spin_lock_init(&chip->ak4117_lock);
tasklet_init(&chip->tq, pdacf_tasklet, (unsigned long)chip);
card->private_data = chip;
Index: alsa-driver/pcmcia/pdaudiocf/pdaudiocf_pcm.c
===================================================================
RCS file: /suse/tiwai/cvs/alsa/alsa-driver/pcmcia/pdaudiocf/pdaudiocf_pcm.c,v
retrieving revision 1.1
diff -u -r1.1 pdaudiocf_pcm.c
--- alsa-driver/pcmcia/pdaudiocf/pdaudiocf_pcm.c 30 Jun 2003 10:08:42 -0000 1.1
+++ alsa-driver/pcmcia/pdaudiocf/pdaudiocf_pcm.c 15 Jul 2003 15:17:38 -0000
@@ -126,7 +126,7 @@
tmp |= val;
pdacf_reg_write(chip, PDAUDIOCF_REG_SCR, tmp);
__end:
- spin_unlock(&chip_reg_lock);
+ spin_unlock(&chip->reg_lock);
if (cmd == SNDRV_PCM_TRIGGER_STOP)
pdacf_reinit(chip, 0);
snd_ak4117_check_rate_and_errors(chip->ak4117, AK4117_CHECK_NO_RATE);