patch-2.4.18 linux/drivers/sound/emu10k1/audio.c
Next file: linux/drivers/sound/emu10k1/audio.h
Previous file: linux/drivers/sound/dmasound/trans_16.c
Back to the patch index
Back to the overall index
- Lines: 89
- Date:
Mon Jan 21 18:48:29 2002
- Orig file:
linux.orig/drivers/sound/emu10k1/audio.c
- Orig date:
Mon Feb 18 20:18:40 2002
diff -Naur -X /home/marcelo/lib/dontdiff linux.orig/drivers/sound/emu10k1/audio.c linux/drivers/sound/emu10k1/audio.c
@@ -983,11 +983,11 @@
unsigned long pgoff;
int rd, wr;
- DPF(4, "emu10k1_mm_nopage()\n");
- DPD(4, "addr: %#lx\n", address);
+ DPF(3, "emu10k1_mm_nopage()\n");
+ DPD(3, "addr: %#lx\n", address);
if (address > vma->vm_end) {
- DPF(2, "EXIT, returning NOPAGE_SIGBUS\n");
+ DPF(1, "EXIT, returning NOPAGE_SIGBUS\n");
return NOPAGE_SIGBUS; /* Disallow mremap */
}
@@ -1009,14 +1009,14 @@
pgoff -= woinst->buffer.pages;
dmapage = virt_to_page ((u8 *) wiinst->buffer.addr + pgoff * PAGE_SIZE);
} else
- dmapage = virt_to_page (woinst->buffer.mem[0].addr[pgoff]);
+ dmapage = virt_to_page (woinst->voice[0].mem.addr[pgoff]);
} else {
dmapage = virt_to_page ((u8 *) wiinst->buffer.addr + pgoff * PAGE_SIZE);
}
get_page (dmapage);
- DPD(4, "page: %#lx\n", dmapage);
+ DPD(3, "page: %#lx\n", (unsigned long) dmapage);
return dmapage;
}
@@ -1083,8 +1083,8 @@
n_pages = ((vma->vm_end - vma->vm_start) + PAGE_SIZE - 1) >> PAGE_SHIFT;
pgoffset = vma->vm_pgoff;
- DPD(3, "vma_start: %#lx, vma_end: %#lx, vma_offset: %d\n", vma->vm_start, vma->vm_end, pgoffset);
- DPD(3, "n_pages: %d, max_pages: %d\n", n_pages, max_pages);
+ DPD(2, "vma_start: %#lx, vma_end: %#lx, vma_offset: %ld\n", vma->vm_start, vma->vm_end, pgoffset);
+ DPD(2, "n_pages: %ld, max_pages: %ld\n", n_pages, max_pages);
if (pgoffset + n_pages > max_pages)
return -EINVAL;
@@ -1092,7 +1092,6 @@
vma->vm_flags |= VM_RESERVED;
vma->vm_ops = &emu10k1_mm_ops;
vma->vm_private_data = wave_dev;
-
return 0;
}
@@ -1211,7 +1210,7 @@
woinst->num_voices = 1;
for (i = 0; i < WAVEOUT_MAXVOICES; i++) {
woinst->voice[i].usage = VOICE_USAGE_FREE;
- woinst->buffer.mem[i].emupageindex = -1;
+ woinst->voice[i].mem.emupageindex = -1;
}
init_waitqueue_head(&woinst->wait_queue);
@@ -1330,23 +1329,13 @@
if (file->f_mode & FMODE_READ) {
spin_lock_irqsave(&wiinst->lock, flags);
- if (wiinst->state == WAVE_STATE_CLOSED) {
- calculate_ifrag(wiinst);
- if (emu10k1_wavein_open(wave_dev) < 0) {
- spin_unlock_irqrestore(&wiinst->lock, flags);
- return (mask |= POLLERR);
- }
- }
+ if (wiinst->state & WAVE_STATE_OPEN) {
+ emu10k1_wavein_update(wave_dev->card, wiinst);
+ emu10k1_wavein_getxfersize(wiinst, &bytestocopy);
- if (!(wiinst->state & WAVE_STATE_STARTED)) {
- wave_dev->enablebits |= PCM_ENABLE_INPUT;
- emu10k1_wavein_start(wave_dev);
+ if (bytestocopy >= wiinst->buffer.fragment_size)
+ mask |= POLLIN | POLLRDNORM;
}
- emu10k1_wavein_update(wave_dev->card, wiinst);
- emu10k1_wavein_getxfersize(wiinst, &bytestocopy);
-
- if (bytestocopy >= wiinst->buffer.fragment_size)
- mask |= POLLIN | POLLRDNORM;
spin_unlock_irqrestore(&wiinst->lock, flags);
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)