Messages in this thread Patch in this message | | | Subject | [PATCH] update for ALi5455 Audio Driver for 2.4.20 | From | wei_ni@ali ... | Date | Wed, 12 Nov 2003 14:19:43 +0800 |
| |
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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |