• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/sound/oss/emu10k1/

Lines Matching refs:wiinst

122 	struct wiinst *wiinst = wave_dev->wiinst;
123 struct wiinst **wiinst_tmp = NULL;
129 switch (wiinst->recsrc) {
150 *wiinst_tmp = wiinst;
154 if (wiinst->format.bytesperchannel == 1) {
155 if (wiinst->buffer.size > 0x8000) {
156 wiinst->buffer.size = 0x8000;
157 wiinst->buffer.sizeregval = 0x1f;
159 wiinst->buffer.sizeregval += 4;
161 wiinst->buffer.cov = 2;
163 wiinst->buffer.cov = 1;
165 if (alloc_buffer(card, &wiinst->buffer) < 0) {
170 emu10k1_set_record_src(card, wiinst);
172 emu10k1_reset_record(card, &wiinst->buffer);
174 wiinst->buffer.hw_pos = 0;
175 wiinst->buffer.pos = 0;
176 wiinst->buffer.bytestocopy = 0;
178 delay = (48000 * wiinst->buffer.fragment_size) / wiinst->format.bytespersec;
180 emu10k1_timer_install(card, &wiinst->timer, delay / 2);
182 wiinst->state = WAVE_STATE_OPEN;
190 struct wiinst *wiinst = wave_dev->wiinst;
197 emu10k1_timer_uninstall(card, &wiinst->timer);
199 free_buffer(card, &wiinst->buffer);
202 switch (wave_dev->wiinst->recsrc) {
218 wiinst->state = WAVE_STATE_CLOSED;
224 struct wiinst *wiinst = wave_dev->wiinst;
228 emu10k1_start_record(card, &wiinst->buffer);
229 emu10k1_timer_enable(wave_dev->card, &wiinst->timer);
231 wiinst->state |= WAVE_STATE_STARTED;
237 struct wiinst *wiinst = wave_dev->wiinst;
241 if (!(wiinst->state & WAVE_STATE_STARTED))
244 emu10k1_timer_disable(card, &wiinst->timer);
245 emu10k1_stop_record(card, &wiinst->buffer);
247 wiinst->state &= ~WAVE_STATE_STARTED;
253 struct wiinst *wiinst = wave_dev->wiinst;
258 if (wiinst->state & WAVE_STATE_STARTED)
261 query_format(wiinst->recsrc, format);
263 if ((wiinst->format.samplingrate != format->samplingrate)
264 || (wiinst->format.bitsperchannel != format->bitsperchannel)
265 || (wiinst->format.channels != format->channels)) {
267 wiinst->format = *format;
269 if (wiinst->state == WAVE_STATE_CLOSED)
272 wiinst->buffer.size *= wiinst->buffer.cov;
274 if (wiinst->format.bytesperchannel == 1) {
275 wiinst->buffer.cov = 2;
276 wiinst->buffer.size /= wiinst->buffer.cov;
278 wiinst->buffer.cov = 1;
280 emu10k1_timer_uninstall(card, &wiinst->timer);
282 delay = (48000 * wiinst->buffer.fragment_size) / wiinst->format.bytespersec;
284 emu10k1_timer_install(card, &wiinst->timer, delay / 2);
290 void emu10k1_wavein_getxfersize(struct wiinst *wiinst, u32 * size)
292 struct wavein_buffer *buffer = &wiinst->buffer;
296 if (wiinst->mmapped)
328 int emu10k1_wavein_xferdata(struct wiinst *wiinst, u8 __user *data, u32 * size)
330 struct wavein_buffer *buffer = &wiinst->buffer;
341 spin_lock_irqsave(&wiinst->lock, flags);
348 spin_unlock_irqrestore(&wiinst->lock, flags);
366 void emu10k1_wavein_update(struct emu10k1_card *card, struct wiinst *wiinst)
372 if (!(wiinst->state & WAVE_STATE_STARTED)) {
373 hw_pos = wiinst->buffer.hw_pos;
376 hw_pos = sblive_readptr(card, wiinst->buffer.idxreg, 0) / wiinst->buffer.cov;
379 diff = (wiinst->buffer.size + hw_pos - wiinst->buffer.hw_pos) % wiinst->buffer.size;
380 wiinst->total_recorded += diff;
381 wiinst->buffer.bytestocopy += diff;
383 wiinst->buffer.hw_pos = hw_pos;