Google luky.org euqset.org

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [patch 2.4.29] i810_audio: offset LVI from CIV to avoid stalled start


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 <herbert@xxxxxxxxxxxxxxxxxxx>
> Acked-by: Thomas Voegtle <tv@xxxxxxxx>
> Signed-off-by: John W. Linville <linville@xxxxxxxxxxxxx>
> ---
> 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
> linville@xxxxxxxxxxxxx
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

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


$B$3$N>pJs$,$"$J$?$NC5$7$F$$?$b$N$+$I$&$+A*Br$7$F$/$@$5$!#(B
yes/$B$^$5$K$3$l$@!*(B   no/$B0c$&$J$!(B   part/$B0lIt8+$D$+$C$?(B   try/$B$3$l$G;n$7$F$_$k(B

$B$"$J$?$,C5$7$F$$?>pJs$O$I$N$h$&$J$3$H$+!"$4<+M3$K5-F~2<$5$!#FC$K!V$^$5$K$3$l$@!*!W$H8@$&>l9g$O5-F~$r$*4j$$7$^$9!#(B
$BNc(B:$B!VJ#?t$N%^%7%s$+$i(BCATV$B7PM3$G(Bipmasquerade$B$rMxMQ$7$F(BWeb$B$r;2>H$7$?$>l9g$N@_Dj$K$D$$F!W(B
Follow-Ups: References: