Please ignore this patch...it was made assuming that a previous patch
had been applied -- that seems not to have been the case...

I will reform and repost...

John

On Thu, Jan 20, 2005 at 03:22:59PM -0500, John W. Linville wrote:
> Offset LVI past CIV when starting DAC/ADC in order to prevent
> stalled start.
> 
> Acked-by: Herbert Xu <[EMAIL PROTECTED]>
> Acked-by: Thomas Voegtle <[EMAIL PROTECTED]>
> Signed-off-by: John W. Linville <[EMAIL PROTECTED]>
> ---
> This fixes a "no sound" problem with Wolfenstein Enemy Territory and
> (apparently) other games using the Quake3 engine.  It probably affects
> some other OSS applications as well.
> 
> This recreates some code that had been removed from the i810_audio
> driver around 5/2004.
> 
>  drivers/sound/i810_audio.c |   10 ++++++++++
>  1 files changed, 10 insertions(+)
> 
> --- i810_audio-2.4/drivers/sound/i810_audio.c.orig    2005-01-20 
> 14:41:43.914734688 -0500
> +++ i810_audio-2.4/drivers/sound/i810_audio.c 2005-01-20 14:41:43.916734414 
> -0500
> @@ -1062,10 +1062,20 @@
>       if (count < fragsize)
>               return;
>  
> +     /* if we are currently stopped, then our CIV is actually set to our
> +      * *last* sg segment and we are ready to wrap to the next.  However,
> +      * if we set our LVI to the last sg segment, then it won't wrap to
> +      * the next sg segment, it won't even get a start.  So, instead, when
> +      * we are stopped, we set both the LVI value and also we increment
> +      * the CIV value to the next sg segment to be played so that when
> +      * we call start, things will operate properly
> +      */
>       if (!dmabuf->enable && dmabuf->ready) {
>               if (!(dmabuf->trigger & trigger))
>                       return;
>  
> +             CIV_TO_LVI(state->card, port, 1);
> +
>               start(state);
>               while (!(inb(port + OFF_CR) & ((1<<4) | (1<<2))))
>                       ;
> -- 
> John W. Linville
> [EMAIL PROTECTED]
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [EMAIL PROTECTED]
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

-- 
John W. Linville
[EMAIL PROTECTED]
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to