Hi,
The second part of the patch adds a missing line into snd_opti93x_capture_open to set the substream. There is a report on the sourceforge site from someone with a 933 card which might also be fixed by this.
The first part just introduces a udelay(50) into snd_opti93x_trigger when starting recording which gives my card (931) a chance to respond.
I haven't done much testing as my card just produces noise (but I believe this is a hardware problem). Part two I think is correct though, by comparison with snd_opti93x_playback_open.
/Michael.
--- alsa-driver-0.9.0rc8a/alsa-kernel/isa/opti9xx/opti92x-ad1848.c.orig Tue Mar 11
20:01:19 2003
+++ alsa-driver-0.9.0rc8a/alsa-kernel/isa/opti9xx/opti92x-ad1848.c Tue Mar 11
20:03:22 2003
@@ -987,8 +987,10 @@
s = s->link_next;
} while (s != substream);
spin_lock(&chip->lock);
- if (cmd == SNDRV_PCM_TRIGGER_START)
+ if (cmd == SNDRV_PCM_TRIGGER_START) {
snd_opti93x_out_mask(chip, OPTi93X_IFACE_CONF, what, what);
+ if(what & OPTi93X_CAPTURE_ENABLE) udelay(50);
+ }
else
snd_opti93x_out_mask(chip, OPTi93X_IFACE_CONF, what, 0x00);
spin_unlock(&chip->lock);
@@ -1207,6 +1209,7 @@
return error;
runtime->hw = snd_opti93x_capture;
snd_pcm_set_sync(substream);
+ chip->capture_substream = substream;
snd_pcm_limit_isa_dma_size(chip->dma2, &runtime->hw.buffer_bytes_max);
snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_RATE,
&hw_constraints_rates);
return error;
