[PATCH] update for ALi5455 Audio Driver for 2.4.20

From: wei_ni
Date: Wed Nov 12 2003 - 01:17:38 EST


Dear all,

We resolve the bugs in ALi5455 audio driver.

Best regards,

Ni wei
http://www.ali.com.tw

Information about update:
Updated files: ali5455.c
Location: drivers/sound
Driver Version: 0.02ac
Kernel Version: 2.4.20

patchfile for ali5455.c:
---------------------------------------------------------------------------------
--- ali5455.c.orig 2003-11-12 10:14:05.000000000 +0800
+++ ali5455.c 2003-11-12 10:48:26.000000000 +0800
@@ -1253,17 +1253,15 @@
{
struct dmabuf *dmabuf = &state->dmabuf;
int free;
- ali_update_ptr(state);
- // catch underruns during playback
+
if (dmabuf->count < 0) {
dmabuf->count = 0;
dmabuf->swptr = dmabuf->hwptr;
}
- free = dmabuf->dmasize - dmabuf->count;
- free -= (dmabuf->hwptr % dmabuf->fragsize);
- if (free < 0)
- return (0);
- return (free);
+ free = dmabuf->dmasize - dmabuf->swptr;
+ if ((dmabuf->count + free) > dmabuf->dmasize)
+ free = dmabuf->dmasize - dmabuf->count;
+ return free;
}

static inline int ali_get_available_read_data(struct
@@ -1859,6 +1857,7 @@
NOTHING we can do to prevent it. */

/* FIXME - do timeout handling here !! */
+ schedule_timeout(tmo >= 2 ? tmo : 2);

if (signal_pending(current)) {
if (!ret)
@@ -1959,7 +1958,7 @@
if (size > (PAGE_SIZE << dmabuf->buforder))
goto out;
ret = -EAGAIN;
- if (remap_page_range(vma->vm_start, virt_to_phys(dmabuf->rawbuf),
size, vma->vm_page_prot))
+ if (remap_page_range(vma,vma->vm_start, virt_to_phys(dmabuf->rawbuf),
size, vma->vm_page_prot))
goto out;
dmabuf->mapped = 1;
dmabuf->trigger = 0;

Ni Wei
2003-11-12

-
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/