Re: [PATCH] TEST of patch proposed for i810 audio

Nathan Bryant (nbryant@allegientsystems.com)
Wed, 26 Dec 2001 18:01:27 -0500


This is a multi-part message in MIME format.
--------------060104030408050109060208
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit

maybe this patch will solve your problem, samir, maybe it won't;
regardless, it should fix at least one corner case and is either
obviously correct or start_*c is not ;-)

patch is against doug's 0.12.

--------------060104030408050109060208
Content-Type: text/plain;
name="new.diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="new.diff"

--- i810_audio.c.12 Wed Dec 19 02:04:06 2001
+++ linux/drivers/sound/i810_audio.c Wed Dec 26 17:31:22 2001
@@ -952,12 +952,12 @@
* the CIV value to the next sg segment to be played so that when
* we call start_{dac,adc}, things will operate properly
*/
- if (!dmabuf->enable && dmabuf->trigger) {
- if(rec && dmabuf->count != dmabuf->dmasize) {
+ if (!dmabuf->enable && dmabuf->trigger && dmabuf->ready) {
+ if(rec && dmabuf->count < dmabuf->dmasize) {
outb((inb(port+OFF_CIV)+1)&31, port+OFF_LVI);
__start_adc(state);
while( !(inb(port + OFF_CR) & ((1<<4) | (1<<2))) ) ;
- } else if(dmabuf->count) {
+ } else if(!rec && dmabuf->count) {
outb((inb(port+OFF_CIV)+1)&31, port+OFF_LVI);
__start_dac(state);
while( !(inb(port + OFF_CR) & ((1<<4) | (1<<2))) ) ;

--------------060104030408050109060208--

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