aboutsummaryrefslogtreecommitdiffstats
path: root/sound/isa/sb/sb16_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/isa/sb/sb16_main.c')
-rw-r--r--sound/isa/sb/sb16_main.c120
1 files changed, 60 insertions, 60 deletions
diff --git a/sound/isa/sb/sb16_main.c b/sound/isa/sb/sb16_main.c
index 17312e060a17..97786ed37dd6 100644
--- a/sound/isa/sb/sb16_main.c
+++ b/sound/isa/sb/sb16_main.c
@@ -50,10 +50,10 @@ MODULE_DESCRIPTION("Routines for control of 16-bit SoundBlaster cards and clones
50MODULE_LICENSE("GPL"); 50MODULE_LICENSE("GPL");
51 51
52#ifdef CONFIG_SND_SB16_CSP 52#ifdef CONFIG_SND_SB16_CSP
53static void snd_sb16_csp_playback_prepare(sb_t *chip, snd_pcm_runtime_t *runtime) 53static void snd_sb16_csp_playback_prepare(struct snd_sb *chip, struct snd_pcm_runtime *runtime)
54{ 54{
55 if (chip->hardware == SB_HW_16CSP) { 55 if (chip->hardware == SB_HW_16CSP) {
56 snd_sb_csp_t *csp = chip->csp; 56 struct snd_sb_csp *csp = chip->csp;
57 57
58 if (csp->running & SNDRV_SB_CSP_ST_LOADED) { 58 if (csp->running & SNDRV_SB_CSP_ST_LOADED) {
59 /* manually loaded codec */ 59 /* manually loaded codec */
@@ -98,10 +98,10 @@ static void snd_sb16_csp_playback_prepare(sb_t *chip, snd_pcm_runtime_t *runtime
98 } 98 }
99} 99}
100 100
101static void snd_sb16_csp_capture_prepare(sb_t *chip, snd_pcm_runtime_t *runtime) 101static void snd_sb16_csp_capture_prepare(struct snd_sb *chip, struct snd_pcm_runtime *runtime)
102{ 102{
103 if (chip->hardware == SB_HW_16CSP) { 103 if (chip->hardware == SB_HW_16CSP) {
104 snd_sb_csp_t *csp = chip->csp; 104 struct snd_sb_csp *csp = chip->csp;
105 105
106 if (csp->running & SNDRV_SB_CSP_ST_LOADED) { 106 if (csp->running & SNDRV_SB_CSP_ST_LOADED) {
107 /* manually loaded codec */ 107 /* manually loaded codec */
@@ -136,10 +136,10 @@ static void snd_sb16_csp_capture_prepare(sb_t *chip, snd_pcm_runtime_t *runtime)
136 } 136 }
137} 137}
138 138
139static void snd_sb16_csp_update(sb_t *chip) 139static void snd_sb16_csp_update(struct snd_sb *chip)
140{ 140{
141 if (chip->hardware == SB_HW_16CSP) { 141 if (chip->hardware == SB_HW_16CSP) {
142 snd_sb_csp_t *csp = chip->csp; 142 struct snd_sb_csp *csp = chip->csp;
143 143
144 if (csp->qpos_changed) { 144 if (csp->qpos_changed) {
145 spin_lock(&chip->reg_lock); 145 spin_lock(&chip->reg_lock);
@@ -149,11 +149,11 @@ static void snd_sb16_csp_update(sb_t *chip)
149 } 149 }
150} 150}
151 151
152static void snd_sb16_csp_playback_open(sb_t *chip, snd_pcm_runtime_t *runtime) 152static void snd_sb16_csp_playback_open(struct snd_sb *chip, struct snd_pcm_runtime *runtime)
153{ 153{
154 /* CSP decoders (QSound excluded) support only 16bit transfers */ 154 /* CSP decoders (QSound excluded) support only 16bit transfers */
155 if (chip->hardware == SB_HW_16CSP) { 155 if (chip->hardware == SB_HW_16CSP) {
156 snd_sb_csp_t *csp = chip->csp; 156 struct snd_sb_csp *csp = chip->csp;
157 157
158 if (csp->running & SNDRV_SB_CSP_ST_LOADED) { 158 if (csp->running & SNDRV_SB_CSP_ST_LOADED) {
159 /* manually loaded codec */ 159 /* manually loaded codec */
@@ -168,10 +168,10 @@ static void snd_sb16_csp_playback_open(sb_t *chip, snd_pcm_runtime_t *runtime)
168 } 168 }
169} 169}
170 170
171static void snd_sb16_csp_playback_close(sb_t *chip) 171static void snd_sb16_csp_playback_close(struct snd_sb *chip)
172{ 172{
173 if ((chip->hardware == SB_HW_16CSP) && (chip->open == SNDRV_SB_CSP_MODE_DSP_WRITE)) { 173 if ((chip->hardware == SB_HW_16CSP) && (chip->open == SNDRV_SB_CSP_MODE_DSP_WRITE)) {
174 snd_sb_csp_t *csp = chip->csp; 174 struct snd_sb_csp *csp = chip->csp;
175 175
176 if (csp->ops.csp_stop(csp) == 0) { 176 if (csp->ops.csp_stop(csp) == 0) {
177 csp->ops.csp_unuse(csp); 177 csp->ops.csp_unuse(csp);
@@ -180,11 +180,11 @@ static void snd_sb16_csp_playback_close(sb_t *chip)
180 } 180 }
181} 181}
182 182
183static void snd_sb16_csp_capture_open(sb_t *chip, snd_pcm_runtime_t *runtime) 183static void snd_sb16_csp_capture_open(struct snd_sb *chip, struct snd_pcm_runtime *runtime)
184{ 184{
185 /* CSP coders support only 16bit transfers */ 185 /* CSP coders support only 16bit transfers */
186 if (chip->hardware == SB_HW_16CSP) { 186 if (chip->hardware == SB_HW_16CSP) {
187 snd_sb_csp_t *csp = chip->csp; 187 struct snd_sb_csp *csp = chip->csp;
188 188
189 if (csp->running & SNDRV_SB_CSP_ST_LOADED) { 189 if (csp->running & SNDRV_SB_CSP_ST_LOADED) {
190 /* manually loaded codec */ 190 /* manually loaded codec */
@@ -199,10 +199,10 @@ static void snd_sb16_csp_capture_open(sb_t *chip, snd_pcm_runtime_t *runtime)
199 } 199 }
200} 200}
201 201
202static void snd_sb16_csp_capture_close(sb_t *chip) 202static void snd_sb16_csp_capture_close(struct snd_sb *chip)
203{ 203{
204 if ((chip->hardware == SB_HW_16CSP) && (chip->open == SNDRV_SB_CSP_MODE_DSP_READ)) { 204 if ((chip->hardware == SB_HW_16CSP) && (chip->open == SNDRV_SB_CSP_MODE_DSP_READ)) {
205 snd_sb_csp_t *csp = chip->csp; 205 struct snd_sb_csp *csp = chip->csp;
206 206
207 if (csp->ops.csp_stop(csp) == 0) { 207 if (csp->ops.csp_stop(csp) == 0) {
208 csp->ops.csp_unuse(csp); 208 csp->ops.csp_unuse(csp);
@@ -221,7 +221,7 @@ static void snd_sb16_csp_capture_close(sb_t *chip)
221#endif 221#endif
222 222
223 223
224static void snd_sb16_setup_rate(sb_t *chip, 224static void snd_sb16_setup_rate(struct snd_sb *chip,
225 unsigned short rate, 225 unsigned short rate,
226 int channel) 226 int channel)
227{ 227{
@@ -244,23 +244,23 @@ static void snd_sb16_setup_rate(sb_t *chip,
244 spin_unlock_irqrestore(&chip->reg_lock, flags); 244 spin_unlock_irqrestore(&chip->reg_lock, flags);
245} 245}
246 246
247static int snd_sb16_hw_params(snd_pcm_substream_t * substream, 247static int snd_sb16_hw_params(struct snd_pcm_substream *substream,
248 snd_pcm_hw_params_t * hw_params) 248 struct snd_pcm_hw_params *hw_params)
249{ 249{
250 return snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params)); 250 return snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params));
251} 251}
252 252
253static int snd_sb16_hw_free(snd_pcm_substream_t * substream) 253static int snd_sb16_hw_free(struct snd_pcm_substream *substream)
254{ 254{
255 snd_pcm_lib_free_pages(substream); 255 snd_pcm_lib_free_pages(substream);
256 return 0; 256 return 0;
257} 257}
258 258
259static int snd_sb16_playback_prepare(snd_pcm_substream_t * substream) 259static int snd_sb16_playback_prepare(struct snd_pcm_substream *substream)
260{ 260{
261 unsigned long flags; 261 unsigned long flags;
262 sb_t *chip = snd_pcm_substream_chip(substream); 262 struct snd_sb *chip = snd_pcm_substream_chip(substream);
263 snd_pcm_runtime_t *runtime = substream->runtime; 263 struct snd_pcm_runtime *runtime = substream->runtime;
264 unsigned char format; 264 unsigned char format;
265 unsigned int size, count, dma; 265 unsigned int size, count, dma;
266 266
@@ -298,10 +298,10 @@ static int snd_sb16_playback_prepare(snd_pcm_substream_t * substream)
298 return 0; 298 return 0;
299} 299}
300 300
301static int snd_sb16_playback_trigger(snd_pcm_substream_t * substream, 301static int snd_sb16_playback_trigger(struct snd_pcm_substream *substream,
302 int cmd) 302 int cmd)
303{ 303{
304 sb_t *chip = snd_pcm_substream_chip(substream); 304 struct snd_sb *chip = snd_pcm_substream_chip(substream);
305 int result = 0; 305 int result = 0;
306 306
307 spin_lock(&chip->reg_lock); 307 spin_lock(&chip->reg_lock);
@@ -324,11 +324,11 @@ static int snd_sb16_playback_trigger(snd_pcm_substream_t * substream,
324 return result; 324 return result;
325} 325}
326 326
327static int snd_sb16_capture_prepare(snd_pcm_substream_t * substream) 327static int snd_sb16_capture_prepare(struct snd_pcm_substream *substream)
328{ 328{
329 unsigned long flags; 329 unsigned long flags;
330 sb_t *chip = snd_pcm_substream_chip(substream); 330 struct snd_sb *chip = snd_pcm_substream_chip(substream);
331 snd_pcm_runtime_t *runtime = substream->runtime; 331 struct snd_pcm_runtime *runtime = substream->runtime;
332 unsigned char format; 332 unsigned char format;
333 unsigned int size, count, dma; 333 unsigned int size, count, dma;
334 334
@@ -365,10 +365,10 @@ static int snd_sb16_capture_prepare(snd_pcm_substream_t * substream)
365 return 0; 365 return 0;
366} 366}
367 367
368static int snd_sb16_capture_trigger(snd_pcm_substream_t * substream, 368static int snd_sb16_capture_trigger(struct snd_pcm_substream *substream,
369 int cmd) 369 int cmd)
370{ 370{
371 sb_t *chip = snd_pcm_substream_chip(substream); 371 struct snd_sb *chip = snd_pcm_substream_chip(substream);
372 int result = 0; 372 int result = 0;
373 373
374 spin_lock(&chip->reg_lock); 374 spin_lock(&chip->reg_lock);
@@ -393,7 +393,7 @@ static int snd_sb16_capture_trigger(snd_pcm_substream_t * substream,
393 393
394irqreturn_t snd_sb16dsp_interrupt(int irq, void *dev_id, struct pt_regs *regs) 394irqreturn_t snd_sb16dsp_interrupt(int irq, void *dev_id, struct pt_regs *regs)
395{ 395{
396 sb_t *chip = dev_id; 396 struct snd_sb *chip = dev_id;
397 unsigned char status; 397 unsigned char status;
398 int ok; 398 int ok;
399 399
@@ -443,9 +443,9 @@ irqreturn_t snd_sb16dsp_interrupt(int irq, void *dev_id, struct pt_regs *regs)
443 443
444 */ 444 */
445 445
446static snd_pcm_uframes_t snd_sb16_playback_pointer(snd_pcm_substream_t * substream) 446static snd_pcm_uframes_t snd_sb16_playback_pointer(struct snd_pcm_substream *substream)
447{ 447{
448 sb_t *chip = snd_pcm_substream_chip(substream); 448 struct snd_sb *chip = snd_pcm_substream_chip(substream);
449 unsigned int dma; 449 unsigned int dma;
450 size_t ptr; 450 size_t ptr;
451 451
@@ -454,9 +454,9 @@ static snd_pcm_uframes_t snd_sb16_playback_pointer(snd_pcm_substream_t * substre
454 return bytes_to_frames(substream->runtime, ptr); 454 return bytes_to_frames(substream->runtime, ptr);
455} 455}
456 456
457static snd_pcm_uframes_t snd_sb16_capture_pointer(snd_pcm_substream_t * substream) 457static snd_pcm_uframes_t snd_sb16_capture_pointer(struct snd_pcm_substream *substream)
458{ 458{
459 sb_t *chip = snd_pcm_substream_chip(substream); 459 struct snd_sb *chip = snd_pcm_substream_chip(substream);
460 unsigned int dma; 460 unsigned int dma;
461 size_t ptr; 461 size_t ptr;
462 462
@@ -469,7 +469,7 @@ static snd_pcm_uframes_t snd_sb16_capture_pointer(snd_pcm_substream_t * substrea
469 469
470 */ 470 */
471 471
472static snd_pcm_hardware_t snd_sb16_playback = 472static struct snd_pcm_hardware snd_sb16_playback =
473{ 473{
474 .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | 474 .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
475 SNDRV_PCM_INFO_MMAP_VALID), 475 SNDRV_PCM_INFO_MMAP_VALID),
@@ -487,7 +487,7 @@ static snd_pcm_hardware_t snd_sb16_playback =
487 .fifo_size = 0, 487 .fifo_size = 0,
488}; 488};
489 489
490static snd_pcm_hardware_t snd_sb16_capture = 490static struct snd_pcm_hardware snd_sb16_capture =
491{ 491{
492 .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | 492 .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
493 SNDRV_PCM_INFO_MMAP_VALID), 493 SNDRV_PCM_INFO_MMAP_VALID),
@@ -509,11 +509,11 @@ static snd_pcm_hardware_t snd_sb16_capture =
509 * open/close 509 * open/close
510 */ 510 */
511 511
512static int snd_sb16_playback_open(snd_pcm_substream_t * substream) 512static int snd_sb16_playback_open(struct snd_pcm_substream *substream)
513{ 513{
514 unsigned long flags; 514 unsigned long flags;
515 sb_t *chip = snd_pcm_substream_chip(substream); 515 struct snd_sb *chip = snd_pcm_substream_chip(substream);
516 snd_pcm_runtime_t *runtime = substream->runtime; 516 struct snd_pcm_runtime *runtime = substream->runtime;
517 517
518 spin_lock_irqsave(&chip->open_lock, flags); 518 spin_lock_irqsave(&chip->open_lock, flags);
519 if (chip->mode & SB_MODE_PLAYBACK) { 519 if (chip->mode & SB_MODE_PLAYBACK) {
@@ -566,10 +566,10 @@ static int snd_sb16_playback_open(snd_pcm_substream_t * substream)
566 return 0; 566 return 0;
567} 567}
568 568
569static int snd_sb16_playback_close(snd_pcm_substream_t * substream) 569static int snd_sb16_playback_close(struct snd_pcm_substream *substream)
570{ 570{
571 unsigned long flags; 571 unsigned long flags;
572 sb_t *chip = snd_pcm_substream_chip(substream); 572 struct snd_sb *chip = snd_pcm_substream_chip(substream);
573 573
574 snd_sb16_csp_playback_close(chip); 574 snd_sb16_csp_playback_close(chip);
575 spin_lock_irqsave(&chip->open_lock, flags); 575 spin_lock_irqsave(&chip->open_lock, flags);
@@ -579,11 +579,11 @@ static int snd_sb16_playback_close(snd_pcm_substream_t * substream)
579 return 0; 579 return 0;
580} 580}
581 581
582static int snd_sb16_capture_open(snd_pcm_substream_t * substream) 582static int snd_sb16_capture_open(struct snd_pcm_substream *substream)
583{ 583{
584 unsigned long flags; 584 unsigned long flags;
585 sb_t *chip = snd_pcm_substream_chip(substream); 585 struct snd_sb *chip = snd_pcm_substream_chip(substream);
586 snd_pcm_runtime_t *runtime = substream->runtime; 586 struct snd_pcm_runtime *runtime = substream->runtime;
587 587
588 spin_lock_irqsave(&chip->open_lock, flags); 588 spin_lock_irqsave(&chip->open_lock, flags);
589 if (chip->mode & SB_MODE_CAPTURE) { 589 if (chip->mode & SB_MODE_CAPTURE) {
@@ -636,10 +636,10 @@ static int snd_sb16_capture_open(snd_pcm_substream_t * substream)
636 return 0; 636 return 0;
637} 637}
638 638
639static int snd_sb16_capture_close(snd_pcm_substream_t * substream) 639static int snd_sb16_capture_close(struct snd_pcm_substream *substream)
640{ 640{
641 unsigned long flags; 641 unsigned long flags;
642 sb_t *chip = snd_pcm_substream_chip(substream); 642 struct snd_sb *chip = snd_pcm_substream_chip(substream);
643 643
644 snd_sb16_csp_capture_close(chip); 644 snd_sb16_csp_capture_close(chip);
645 spin_lock_irqsave(&chip->open_lock, flags); 645 spin_lock_irqsave(&chip->open_lock, flags);
@@ -653,7 +653,7 @@ static int snd_sb16_capture_close(snd_pcm_substream_t * substream)
653 * DMA control interface 653 * DMA control interface
654 */ 654 */
655 655
656static int snd_sb16_set_dma_mode(sb_t *chip, int what) 656static int snd_sb16_set_dma_mode(struct snd_sb *chip, int what)
657{ 657{
658 if (chip->dma8 < 0 || chip->dma16 < 0) { 658 if (chip->dma8 < 0 || chip->dma16 < 0) {
659 snd_assert(what == 0, return -EINVAL); 659 snd_assert(what == 0, return -EINVAL);
@@ -671,7 +671,7 @@ static int snd_sb16_set_dma_mode(sb_t *chip, int what)
671 return 0; 671 return 0;
672} 672}
673 673
674static int snd_sb16_get_dma_mode(sb_t *chip) 674static int snd_sb16_get_dma_mode(struct snd_sb *chip)
675{ 675{
676 if (chip->dma8 < 0 || chip->dma16 < 0) 676 if (chip->dma8 < 0 || chip->dma16 < 0)
677 return 0; 677 return 0;
@@ -685,7 +685,7 @@ static int snd_sb16_get_dma_mode(sb_t *chip)
685 } 685 }
686} 686}
687 687
688static int snd_sb16_dma_control_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) 688static int snd_sb16_dma_control_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
689{ 689{
690 static char *texts[3] = { 690 static char *texts[3] = {
691 "Auto", "Playback", "Capture" 691 "Auto", "Playback", "Capture"
@@ -700,9 +700,9 @@ static int snd_sb16_dma_control_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info
700 return 0; 700 return 0;
701} 701}
702 702
703static int snd_sb16_dma_control_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) 703static int snd_sb16_dma_control_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
704{ 704{
705 sb_t *chip = snd_kcontrol_chip(kcontrol); 705 struct snd_sb *chip = snd_kcontrol_chip(kcontrol);
706 unsigned long flags; 706 unsigned long flags;
707 707
708 spin_lock_irqsave(&chip->reg_lock, flags); 708 spin_lock_irqsave(&chip->reg_lock, flags);
@@ -711,9 +711,9 @@ static int snd_sb16_dma_control_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_valu
711 return 0; 711 return 0;
712} 712}
713 713
714static int snd_sb16_dma_control_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) 714static int snd_sb16_dma_control_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
715{ 715{
716 sb_t *chip = snd_kcontrol_chip(kcontrol); 716 struct snd_sb *chip = snd_kcontrol_chip(kcontrol);
717 unsigned long flags; 717 unsigned long flags;
718 unsigned char nval, oval; 718 unsigned char nval, oval;
719 int change; 719 int change;
@@ -728,7 +728,7 @@ static int snd_sb16_dma_control_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_valu
728 return change; 728 return change;
729} 729}
730 730
731static snd_kcontrol_new_t snd_sb16_dma_control = { 731static struct snd_kcontrol_new snd_sb16_dma_control = {
732 .iface = SNDRV_CTL_ELEM_IFACE_CARD, 732 .iface = SNDRV_CTL_ELEM_IFACE_CARD,
733 .name = "16-bit DMA Allocation", 733 .name = "16-bit DMA Allocation",
734 .info = snd_sb16_dma_control_info, 734 .info = snd_sb16_dma_control_info,
@@ -740,7 +740,7 @@ static snd_kcontrol_new_t snd_sb16_dma_control = {
740 * Initialization part 740 * Initialization part
741 */ 741 */
742 742
743int snd_sb16dsp_configure(sb_t * chip) 743int snd_sb16dsp_configure(struct snd_sb * chip)
744{ 744{
745 unsigned long flags; 745 unsigned long flags;
746 unsigned char irqreg = 0, dmareg = 0, mpureg; 746 unsigned char irqreg = 0, dmareg = 0, mpureg;
@@ -829,7 +829,7 @@ int snd_sb16dsp_configure(sb_t * chip)
829 return 0; 829 return 0;
830} 830}
831 831
832static snd_pcm_ops_t snd_sb16_playback_ops = { 832static struct snd_pcm_ops snd_sb16_playback_ops = {
833 .open = snd_sb16_playback_open, 833 .open = snd_sb16_playback_open,
834 .close = snd_sb16_playback_close, 834 .close = snd_sb16_playback_close,
835 .ioctl = snd_pcm_lib_ioctl, 835 .ioctl = snd_pcm_lib_ioctl,
@@ -840,7 +840,7 @@ static snd_pcm_ops_t snd_sb16_playback_ops = {
840 .pointer = snd_sb16_playback_pointer, 840 .pointer = snd_sb16_playback_pointer,
841}; 841};
842 842
843static snd_pcm_ops_t snd_sb16_capture_ops = { 843static struct snd_pcm_ops snd_sb16_capture_ops = {
844 .open = snd_sb16_capture_open, 844 .open = snd_sb16_capture_open,
845 .close = snd_sb16_capture_close, 845 .close = snd_sb16_capture_close,
846 .ioctl = snd_pcm_lib_ioctl, 846 .ioctl = snd_pcm_lib_ioctl,
@@ -851,10 +851,10 @@ static snd_pcm_ops_t snd_sb16_capture_ops = {
851 .pointer = snd_sb16_capture_pointer, 851 .pointer = snd_sb16_capture_pointer,
852}; 852};
853 853
854int snd_sb16dsp_pcm(sb_t * chip, int device, snd_pcm_t ** rpcm) 854int snd_sb16dsp_pcm(struct snd_sb * chip, int device, struct snd_pcm ** rpcm)
855{ 855{
856 snd_card_t *card = chip->card; 856 struct snd_card *card = chip->card;
857 snd_pcm_t *pcm; 857 struct snd_pcm *pcm;
858 int err; 858 int err;
859 859
860 if (rpcm) 860 if (rpcm)
@@ -882,7 +882,7 @@ int snd_sb16dsp_pcm(sb_t * chip, int device, snd_pcm_t ** rpcm)
882 return 0; 882 return 0;
883} 883}
884 884
885const snd_pcm_ops_t *snd_sb16dsp_get_pcm_ops(int direction) 885const struct snd_pcm_ops *snd_sb16dsp_get_pcm_ops(int direction)
886{ 886{
887 return direction == SNDRV_PCM_STREAM_PLAYBACK ? 887 return direction == SNDRV_PCM_STREAM_PLAYBACK ?
888 &snd_sb16_playback_ops : &snd_sb16_capture_ops; 888 &snd_sb16_playback_ops : &snd_sb16_capture_ops;