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;

Reply via email to