• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500-V1.0.1.40_1.0.68/src/linux/linux-2.6/sound/oss/emu10k1/

Lines Matching refs:woinst

50 static void calculate_ofrag(struct woinst *);
150 struct woinst *woinst = wave_dev->woinst;
159 spin_lock_irqsave(&woinst->lock, flags);
161 if (woinst->mmapped) {
162 spin_unlock_irqrestore(&woinst->lock, flags);
166 if (woinst->format.passthrough == 1) {
169 woinst->buffer.ossfragshift = PT_BLOCKSIZE_LOG2;
170 woinst->buffer.numfrags = PT_BLOCKCOUNT;
171 calculate_ofrag(woinst);
174 spin_unlock_irqrestore(&woinst->lock, flags);
178 if (woinst->state == WAVE_STATE_CLOSED) {
179 calculate_ofrag(woinst);
182 spin_unlock_irqrestore(&woinst->lock, flags);
192 spin_lock_irqsave(&woinst->lock, flags);
196 spin_unlock_irqrestore(&woinst->lock, flags);
199 if (count % woinst->format.bytespersample)
202 count /= woinst->num_voices;
207 spin_lock_irqsave(&woinst->lock, flags);
208 emu10k1_waveout_update(woinst);
209 emu10k1_waveout_getxfersize(woinst, &bytestocopy);
210 spin_unlock_irqrestore(&woinst->lock, flags);
214 if ((bytestocopy >= woinst->buffer.fragment_size)
219 emu10k1_waveout_xferdata(woinst, (u8 __user *) buffer, &bytestocopy);
222 buffer += bytestocopy * woinst->num_voices;
223 ret += bytestocopy * woinst->num_voices;
225 spin_lock_irqsave(&woinst->lock, flags);
226 woinst->total_copied += bytestocopy;
228 if (!(woinst->state & WAVE_STATE_STARTED)
230 && (woinst->total_copied >= woinst->buffer.fragment_size))
233 spin_unlock_irqrestore(&woinst->lock, flags);
241 interruptible_sleep_on(&woinst->wait_queue);
256 struct woinst *woinst = NULL;
266 woinst = wave_dev->woinst;
281 spin_lock_irqsave(&woinst->lock, flags);
283 if (woinst->state & WAVE_STATE_OPEN) {
287 woinst->mmapped = 0;
288 woinst->total_copied = 0;
289 woinst->total_played = 0;
290 woinst->blocks = 0;
292 spin_unlock_irqrestore(&woinst->lock, flags);
315 spin_lock_irqsave(&woinst->lock, flags);
317 if (woinst->state & WAVE_STATE_OPEN) {
319 if (woinst->state & WAVE_STATE_STARTED)
320 while ((woinst->total_played < woinst->total_copied)
322 spin_unlock_irqrestore(&woinst->lock, flags);
323 interruptible_sleep_on(&woinst->wait_queue);
324 spin_lock_irqsave(&woinst->lock, flags);
329 woinst->mmapped = 0;
330 woinst->total_copied = 0;
331 woinst->total_played = 0;
332 woinst->blocks = 0;
334 spin_unlock_irqrestore(&woinst->lock, flags);
393 spin_lock_irqsave(&woinst->lock, flags);
395 format = woinst->format;
399 spin_unlock_irqrestore(&woinst->lock, flags);
403 val = woinst->format.samplingrate;
405 spin_unlock_irqrestore(&woinst->lock, flags);
415 val = woinst->format.samplingrate;
451 spin_lock_irqsave(&woinst->lock, flags);
453 format = woinst->format;
457 spin_unlock_irqrestore(&woinst->lock, flags);
461 val = woinst->format.channels - 1;
463 spin_unlock_irqrestore(&woinst->lock, flags);
502 spin_lock_irqsave(&woinst->lock, flags);
504 format = woinst->format;
508 spin_unlock_irqrestore(&woinst->lock, flags);
512 val = woinst->format.channels;
514 spin_unlock_irqrestore(&woinst->lock, flags);
523 val = woinst->format.channels;
574 spin_lock_irqsave(&woinst->lock, flags);
576 format = woinst->format;
580 spin_unlock_irqrestore(&woinst->lock, flags);
584 val = woinst->format.id;
586 spin_unlock_irqrestore(&woinst->lock, flags);
595 val = woinst->format.id;
606 val = woinst->format.bitsperchannel;
615 val = woinst->format.samplingrate;
624 val = woinst->format.channels;
658 spin_lock_irqsave(&woinst->lock, flags);
662 if (woinst->state & WAVE_STATE_OPEN)
666 if (woinst->state & WAVE_STATE_STARTED)
670 spin_unlock_irqrestore(&woinst->lock, flags);
699 spin_lock_irqsave(&woinst->lock, flags);
701 if (woinst->state & WAVE_STATE_OPEN) {
702 emu10k1_waveout_update(woinst);
703 emu10k1_waveout_getxfersize(woinst, &bytestocopy);
706 calculate_ofrag(woinst);
707 info.bytes = woinst->buffer.size;
709 spin_unlock_irqrestore(&woinst->lock, flags);
711 info.bytes *= woinst->num_voices;
712 info.fragsize = woinst->buffer.fragment_size * woinst->num_voices;
713 info.fragstotal = woinst->buffer.numfrags * woinst->num_voices;
762 spin_lock_irqsave(&woinst->lock, flags);
763 if (woinst->state & WAVE_STATE_OPEN) {
764 emu10k1_waveout_update(woinst);
765 emu10k1_waveout_getxfersize(woinst, &bytestocopy);
766 val = woinst->buffer.size - bytestocopy;
770 val *= woinst->num_voices;
771 spin_unlock_irqrestore(&woinst->lock, flags);
817 spin_lock_irqsave(&woinst->lock, flags);
819 if (woinst->state & WAVE_STATE_OPEN ||
820 ((woinst->format.passthrough == 1) && wave_dev->card->pt.state)) {
823 if (woinst->format.passthrough == 1) {
825 cinfo.bytes = woinst->total_played;
827 emu10k1_waveout_update(woinst);
828 cinfo.bytes = woinst->total_played;
831 cinfo.ptr = woinst->buffer.hw_pos;
832 num_fragments = cinfo.bytes / woinst->buffer.fragment_size;
833 cinfo.blocks = num_fragments - woinst->blocks;
834 woinst->blocks = num_fragments;
836 cinfo.bytes *= woinst->num_voices;
837 cinfo.ptr *= woinst->num_voices;
844 if (woinst->mmapped)
845 woinst->buffer.free_bytes %= woinst->buffer.fragment_size;
847 spin_unlock_irqrestore(&woinst->lock, flags);
858 spin_lock_irqsave(&woinst->lock, flags);
860 calculate_ofrag(woinst);
861 val = woinst->buffer.fragment_size * woinst->num_voices;
863 spin_unlock_irqrestore(&woinst->lock, flags);
881 spin_lock_irqsave(&woinst->lock, flags);
883 if (!(woinst->state & WAVE_STATE_STARTED)
885 && (woinst->total_copied > 0))
888 spin_unlock_irqrestore(&woinst->lock, flags);
910 if (woinst->state & WAVE_STATE_OPEN || (woinst->format.passthrough == 1))
913 woinst->buffer.ossfragshift = val & 0xffff;
914 woinst->buffer.numfrags = (val >> 16) & 0xffff;
1000 struct woinst *woinst = wave_dev->woinst;
1015 if (woinst != NULL)
1016 wr = woinst->mmapped;
1028 if (pgoff >= woinst->buffer.pages) {
1029 pgoff -= woinst->buffer.pages;
1032 dmapage = virt_to_page (woinst->voice[0].mem.addr[pgoff]);
1053 struct woinst *woinst = NULL;
1061 woinst = wave_dev->woinst;
1063 spin_lock_irqsave(&woinst->lock, flags);
1066 if (woinst->num_voices > 1) {
1067 spin_unlock_irqrestore(&woinst->lock, flags);
1071 if (woinst->state == WAVE_STATE_CLOSED) {
1072 calculate_ofrag(woinst);
1075 spin_unlock_irqrestore(&woinst->lock, flags);
1081 woinst->mmapped = 1;
1082 max_pages += woinst->buffer.pages;
1083 spin_unlock_irqrestore(&woinst->lock, flags);
1151 wave_dev->woinst = NULL;
1211 struct woinst *woinst;
1214 if ((woinst = kmalloc(sizeof(struct woinst), GFP_KERNEL)) == NULL) {
1221 woinst->format = wave_dev->wiinst->format;
1223 woinst->format.id = AFMT_U8;
1224 woinst->format.samplingrate = 8000;
1225 woinst->format.bitsperchannel = 8;
1226 woinst->format.channels = 1;
1229 woinst->state = WAVE_STATE_CLOSED;
1231 woinst->buffer.fragment_size = 0;
1232 woinst->buffer.ossfragshift = 0;
1233 woinst->buffer.numfrags = 0;
1234 woinst->device = (card->audio_dev1 == minor);
1235 woinst->timer.state = TIMER_STATE_UNINSTALLED;
1236 woinst->num_voices = 1;
1238 woinst->voice[i].usage = VOICE_USAGE_FREE;
1239 woinst->voice[i].mem.emupageindex = -1;
1242 init_waitqueue_head(&woinst->wait_queue);
1244 woinst->mmapped = 0;
1245 woinst->total_copied = 0;
1246 woinst->total_played = 0;
1247 woinst->blocks = 0;
1248 spin_lock_init(&woinst->lock);
1249 tasklet_init(&woinst->timer.tasklet, emu10k1_waveout_bh, (unsigned long) wave_dev);
1250 wave_dev->woinst = woinst;
1251 emu10k1_waveout_setformat(wave_dev, &woinst->format);
1270 struct woinst *woinst = wave_dev->woinst;
1272 spin_lock_irqsave(&woinst->lock, flags);
1273 if(woinst->format.passthrough==2)
1275 if (woinst->format.passthrough && card->pt.state != PT_STATE_INACTIVE){
1280 if (woinst->state & WAVE_STATE_OPEN) {
1281 if (woinst->state & WAVE_STATE_STARTED) {
1284 && (woinst->total_played < woinst->total_copied)) {
1286 spin_unlock_irqrestore(&woinst->lock, flags);
1287 interruptible_sleep_on(&woinst->wait_queue);
1288 spin_lock_irqsave(&woinst->lock, flags);
1295 spin_unlock_irqrestore(&woinst->lock, flags);
1297 tasklet_kill(&woinst->timer.tasklet);
1298 kfree(wave_dev->woinst);
1326 struct woinst *woinst = wave_dev->woinst;
1335 poll_wait(file, &woinst->wait_queue, wait);
1341 spin_lock_irqsave(&woinst->lock, flags);
1343 if (woinst->state & WAVE_STATE_OPEN) {
1344 emu10k1_waveout_update(woinst);
1345 emu10k1_waveout_getxfersize(woinst, &bytestocopy);
1347 if (bytestocopy >= woinst->buffer.fragment_size)
1352 spin_unlock_irqrestore(&woinst->lock, flags);
1372 static void calculate_ofrag(struct woinst *woinst)
1374 struct waveout_buffer *buffer = &woinst->buffer;
1381 fragsize = (woinst->format.bytespervoicesample * woinst->format.samplingrate * WAVEOUT_DEFAULTFRAGLEN) / 1000 - 1;
1404 numfrags = (woinst->format.bytespervoicesample * woinst->format.samplingrate * WAVEOUT_DEFAULTBUFLEN) /
1552 struct woinst *woinst = wave_dev->woinst;
1556 if (!woinst)
1559 spin_lock_irqsave(&woinst->lock, flags);
1561 if (!(woinst->state & WAVE_STATE_STARTED)) {
1562 spin_unlock_irqrestore(&woinst->lock, flags);
1566 emu10k1_waveout_update(woinst);
1567 emu10k1_waveout_getxfersize(woinst, &bytestocopy);
1569 if (woinst->buffer.fill_silence) {
1570 spin_unlock_irqrestore(&woinst->lock, flags);
1571 emu10k1_waveout_fillsilence(woinst);
1573 spin_unlock_irqrestore(&woinst->lock, flags);
1575 if (bytestocopy >= woinst->buffer.fragment_size) {
1576 if (waitqueue_active(&woinst->wait_queue))
1577 wake_up_interruptible(&woinst->wait_queue);