Lines Matching +full:bank +full:- +full:ioport
1 // SPDX-License-Identifier: GPL-2.0-or-later
16 * the following is a copy of the 2.4.18 OSS FREE file-heading comment:
21 * -- If MSND_CLASSIC is defined:
23 * -> driver for Turtle Beach Classic/Monterey/Tahiti
25 * -- Else
27 * -> driver for Turtle Beach Pinnacle/Fiji
29 * 12-3-2000 Modified IO port validation Steve Sycamore
40 #include <linux/ioport.h>
62 # define DEV_NAME "msnd-classic"
66 # define DEV_NAME "msnd-pinnacle"
71 chip->play_sample_size = snd_pcm_format_width(DEFSAMPLESIZE); in set_default_audio_parameters()
72 chip->play_sample_rate = DEFSAMPLERATE; in set_default_audio_parameters()
73 chip->play_channels = DEFCHANNELS; in set_default_audio_parameters()
74 chip->capture_sample_size = snd_pcm_format_width(DEFSAMPLESIZE); in set_default_audio_parameters()
75 chip->capture_sample_rate = DEFSAMPLERATE; in set_default_audio_parameters()
76 chip->capture_channels = DEFCHANNELS; in set_default_audio_parameters()
83 if (chip->banksPlayed < 3) in snd_msnd_eval_dsp_msg()
84 dev_dbg(chip->card->dev, "%08X: HIMT_PLAY_DONE: %i\n", in snd_msnd_eval_dsp_msg()
87 if (chip->last_playbank == LOBYTE(wMessage)) { in snd_msnd_eval_dsp_msg()
88 dev_dbg(chip->card->dev, in snd_msnd_eval_dsp_msg()
92 chip->banksPlayed++; in snd_msnd_eval_dsp_msg()
94 if (test_bit(F_WRITING, &chip->flags)) in snd_msnd_eval_dsp_msg()
97 chip->last_playbank = LOBYTE(wMessage); in snd_msnd_eval_dsp_msg()
98 chip->playDMAPos += chip->play_period_bytes; in snd_msnd_eval_dsp_msg()
99 if (chip->playDMAPos > chip->playLimit) in snd_msnd_eval_dsp_msg()
100 chip->playDMAPos = 0; in snd_msnd_eval_dsp_msg()
101 snd_pcm_period_elapsed(chip->playback_substream); in snd_msnd_eval_dsp_msg()
106 if (chip->last_recbank == LOBYTE(wMessage)) in snd_msnd_eval_dsp_msg()
108 chip->last_recbank = LOBYTE(wMessage); in snd_msnd_eval_dsp_msg()
109 chip->captureDMAPos += chip->capturePeriodBytes; in snd_msnd_eval_dsp_msg()
110 if (chip->captureDMAPos > (chip->captureLimit)) in snd_msnd_eval_dsp_msg()
111 chip->captureDMAPos = 0; in snd_msnd_eval_dsp_msg()
113 if (test_bit(F_READING, &chip->flags)) in snd_msnd_eval_dsp_msg()
114 snd_msnd_DARQ(chip, chip->last_recbank); in snd_msnd_eval_dsp_msg()
116 snd_pcm_period_elapsed(chip->capture_substream); in snd_msnd_eval_dsp_msg()
125 dev_dbg(chip->card->dev, in snd_msnd_eval_dsp_msg()
127 chip->banksPlayed); in snd_msnd_eval_dsp_msg()
128 if (chip->banksPlayed > 2) in snd_msnd_eval_dsp_msg()
129 clear_bit(F_WRITING, &chip->flags); in snd_msnd_eval_dsp_msg()
133 dev_dbg(chip->card->dev, LOGNAME ": Record overflow\n"); in snd_msnd_eval_dsp_msg()
134 clear_bit(F_READING, &chip->flags); in snd_msnd_eval_dsp_msg()
138 dev_dbg(chip->card->dev, LOGNAME in snd_msnd_eval_dsp_msg()
146 dev_dbg(chip->card->dev, LOGNAME ": HIMT message %d 0x%02x\n", in snd_msnd_eval_dsp_msg()
155 void __iomem *pwDSPQData = chip->mappedbase + DSPQ_DATA_BUFF; in snd_msnd_interrupt()
159 /* inb(chip->io + HP_RXL); */ in snd_msnd_interrupt()
162 head = readw(chip->DSPQ + JQS_wHead); in snd_msnd_interrupt()
163 tail = readw(chip->DSPQ + JQS_wTail); in snd_msnd_interrupt()
164 size = readw(chip->DSPQ + JQS_wSize); in snd_msnd_interrupt()
171 writew(head, chip->DSPQ + JQS_wHead); in snd_msnd_interrupt()
175 inb(chip->io + HP_RXL); in snd_msnd_interrupt()
182 long io = chip->io; in snd_msnd_reset_dsp()
193 while (timeout-- > 0) { in snd_msnd_reset_dsp()
198 dev_err(chip->card->dev, LOGNAME ": Cannot reset DSP\n"); in snd_msnd_reset_dsp()
200 return -EIO; in snd_msnd_reset_dsp()
205 struct snd_msnd *chip = card->private_data; in snd_msnd_probe()
213 if (!request_region(chip->io, DSP_NUMIO, "probing")) { in snd_msnd_probe()
214 dev_err(card->dev, LOGNAME ": I/O port conflict\n"); in snd_msnd_probe()
215 return -ENODEV; in snd_msnd_probe()
219 release_region(chip->io, DSP_NUMIO); in snd_msnd_probe()
220 return -ENODEV; in snd_msnd_probe()
224 strscpy(card->shortname, "Classic/Tahiti/Monterey"); in snd_msnd_probe()
225 strscpy(card->longname, "Turtle Beach Multisound"); in snd_msnd_probe()
226 dev_info(card->dev, LOGNAME ": %s, " in snd_msnd_probe()
227 "I/O 0x%lx-0x%lx, IRQ %d, memory mapped to 0x%lX-0x%lX\n", in snd_msnd_probe()
228 card->shortname, in snd_msnd_probe()
229 chip->io, chip->io + DSP_NUMIO - 1, in snd_msnd_probe()
230 chip->irq, in snd_msnd_probe()
231 chip->base, chip->base + 0x7fff); in snd_msnd_probe()
254 strscpy(card->shortname, pin); in snd_msnd_probe()
258 strscpy(card->shortname, pin); in snd_msnd_probe()
262 strscpy(card->shortname, pin); in snd_msnd_probe()
266 strscpy(card->shortname, pin); in snd_msnd_probe()
270 strscpy(card->shortname, fiji); in snd_msnd_probe()
274 strscpy(card->shortname, fiji); in snd_msnd_probe()
278 strscpy(card->shortname, fiji); in snd_msnd_probe()
281 rev = "A-B (Fiji) or A-E (Pinnacle)"; in snd_msnd_probe()
282 strscpy(card->shortname, pinfiji); in snd_msnd_probe()
285 strscpy(card->longname, "Turtle Beach Multisound Pinnacle"); in snd_msnd_probe()
286 dev_info(card->dev, LOGNAME ": %s revision %s, Xilinx version %s, " in snd_msnd_probe()
287 "I/O 0x%lx-0x%lx, IRQ %d, memory mapped to 0x%lX-0x%lX\n", in snd_msnd_probe()
288 card->shortname, in snd_msnd_probe()
290 chip->io, chip->io + DSP_NUMIO - 1, in snd_msnd_probe()
291 chip->irq, in snd_msnd_probe()
292 chip->base, chip->base + 0x7fff); in snd_msnd_probe()
295 release_region(chip->io, DSP_NUMIO); in snd_msnd_probe()
306 outb(chip->memid, chip->io + HP_MEMM); in snd_msnd_init_sma()
308 outb(HPBLKSEL_0, chip->io + HP_BLKS); in snd_msnd_init_sma()
310 chip->SMA = chip->mappedbase + SMA_STRUCT_START; in snd_msnd_init_sma()
313 mastVolLeft = readw(chip->SMA + SMA_wCurrMastVolLeft); in snd_msnd_init_sma()
314 mastVolRight = readw(chip->SMA + SMA_wCurrMastVolRight); in snd_msnd_init_sma()
317 memset_io(chip->mappedbase, 0, 0x8000); in snd_msnd_init_sma()
319 /* Critical section: bank 1 access */ in snd_msnd_init_sma()
320 spin_lock_irqsave(&chip->lock, flags); in snd_msnd_init_sma()
321 outb(HPBLKSEL_1, chip->io + HP_BLKS); in snd_msnd_init_sma()
322 memset_io(chip->mappedbase, 0, 0x8000); in snd_msnd_init_sma()
323 outb(HPBLKSEL_0, chip->io + HP_BLKS); in snd_msnd_init_sma()
324 spin_unlock_irqrestore(&chip->lock, flags); in snd_msnd_init_sma()
327 chip->DAPQ = chip->mappedbase + DAPQ_OFFSET; in snd_msnd_init_sma()
328 snd_msnd_init_queue(chip->DAPQ, DAPQ_DATA_BUFF, DAPQ_BUFF_SIZE); in snd_msnd_init_sma()
331 chip->DARQ = chip->mappedbase + DARQ_OFFSET; in snd_msnd_init_sma()
332 snd_msnd_init_queue(chip->DARQ, DARQ_DATA_BUFF, DARQ_BUFF_SIZE); in snd_msnd_init_sma()
335 chip->MODQ = chip->mappedbase + MODQ_OFFSET; in snd_msnd_init_sma()
336 snd_msnd_init_queue(chip->MODQ, MODQ_DATA_BUFF, MODQ_BUFF_SIZE); in snd_msnd_init_sma()
339 chip->MIDQ = chip->mappedbase + MIDQ_OFFSET; in snd_msnd_init_sma()
340 snd_msnd_init_queue(chip->MIDQ, MIDQ_DATA_BUFF, MIDQ_BUFF_SIZE); in snd_msnd_init_sma()
342 /* DSP -> host message queue */ in snd_msnd_init_sma()
343 chip->DSPQ = chip->mappedbase + DSPQ_OFFSET; in snd_msnd_init_sma()
344 snd_msnd_init_queue(chip->DSPQ, DSPQ_DATA_BUFF, DSPQ_BUFF_SIZE); in snd_msnd_init_sma()
348 writew(1, chip->SMA + SMA_wCurrPlayFormat); in snd_msnd_init_sma()
349 writew(chip->play_sample_size, chip->SMA + SMA_wCurrPlaySampleSize); in snd_msnd_init_sma()
350 writew(chip->play_channels, chip->SMA + SMA_wCurrPlayChannels); in snd_msnd_init_sma()
351 writew(chip->play_sample_rate, chip->SMA + SMA_wCurrPlaySampleRate); in snd_msnd_init_sma()
353 writew(chip->play_sample_rate, chip->SMA + SMA_wCalFreqAtoD); in snd_msnd_init_sma()
354 writew(mastVolLeft, chip->SMA + SMA_wCurrMastVolLeft); in snd_msnd_init_sma()
355 writew(mastVolRight, chip->SMA + SMA_wCurrMastVolRight); in snd_msnd_init_sma()
357 writel(0x00010000, chip->SMA + SMA_dwCurrPlayPitch); in snd_msnd_init_sma()
358 writel(0x00000001, chip->SMA + SMA_dwCurrPlayRate); in snd_msnd_init_sma()
360 writew(0x303, chip->SMA + SMA_wCurrInputTagBits); in snd_msnd_init_sma()
370 struct snd_msnd *chip = card->private_data; in upload_dsp_code()
374 outb(HPBLKSEL_0, chip->io + HP_BLKS); in upload_dsp_code()
376 err = request_firmware(&init_fw, INITCODEFILE, card->dev); in upload_dsp_code()
378 dev_err(card->dev, LOGNAME ": Error loading " INITCODEFILE); in upload_dsp_code()
381 err = request_firmware(&perm_fw, PERMCODEFILE, card->dev); in upload_dsp_code()
383 dev_err(card->dev, LOGNAME ": Error loading " PERMCODEFILE); in upload_dsp_code()
387 memcpy_toio(chip->mappedbase, perm_fw->data, perm_fw->size); in upload_dsp_code()
388 if (snd_msnd_upload_host(chip, init_fw->data, init_fw->size) < 0) { in upload_dsp_code()
389 dev_warn(card->dev, LOGNAME ": Error uploading to DSP\n"); in upload_dsp_code()
390 err = -ENODEV; in upload_dsp_code()
393 dev_info(card->dev, LOGNAME ": DSP firmware uploaded\n"); in upload_dsp_code()
406 outb(HPPRORESET_ON, chip->io + HP_PROR); in reset_proteus()
408 outb(HPPRORESET_OFF, chip->io + HP_PROR); in reset_proteus()
415 struct snd_msnd *chip = card->private_data; in snd_msnd_initialize()
419 outb(HPWAITSTATE_0, chip->io + HP_WAIT); in snd_msnd_initialize()
420 outb(HPBITMODE_16, chip->io + HP_BITM); in snd_msnd_initialize()
426 dev_warn(card->dev, LOGNAME ": Cannot initialize SMA\n"); in snd_msnd_initialize()
436 dev_warn(card->dev, LOGNAME ": Cannot upload DSP code\n"); in snd_msnd_initialize()
442 while (readw(chip->mappedbase)) { in snd_msnd_initialize()
444 if (!timeout--) { in snd_msnd_initialize()
445 dev_err(card->dev, LOGNAME ": DSP reset timeout\n"); in snd_msnd_initialize()
446 return -EIO; in snd_msnd_initialize()
456 struct snd_msnd *chip = card->private_data; in snd_msnd_dsp_full_reset()
459 if (test_bit(F_RESETTING, &chip->flags) || ++chip->nresets > 10) in snd_msnd_dsp_full_reset()
462 set_bit(F_RESETTING, &chip->flags); in snd_msnd_dsp_full_reset()
467 dev_warn(card->dev, LOGNAME ": DSP reset failed\n"); in snd_msnd_dsp_full_reset()
469 clear_bit(F_RESETTING, &chip->flags); in snd_msnd_dsp_full_reset()
478 snd_msnd_dsp_full_reset(chip->card); in snd_msnd_send_dsp_cmd_chk()
484 dev_dbg(chip->card->dev, "snd_msnd_calibrate_adc(%i)\n", srate); in snd_msnd_calibrate_adc()
485 writew(srate, chip->SMA + SMA_wCalFreqAtoD); in snd_msnd_calibrate_adc()
486 if (chip->calibrate_signal == 0) in snd_msnd_calibrate_adc()
487 writew(readw(chip->SMA + SMA_wCurrHostStatusFlags) in snd_msnd_calibrate_adc()
488 | 0x0001, chip->SMA + SMA_wCurrHostStatusFlags); in snd_msnd_calibrate_adc()
490 writew(readw(chip->SMA + SMA_wCurrHostStatusFlags) in snd_msnd_calibrate_adc()
491 & ~0x0001, chip->SMA + SMA_wCurrHostStatusFlags); in snd_msnd_calibrate_adc()
497 dev_warn(chip->card->dev, LOGNAME ": ADC calibration failed\n"); in snd_msnd_calibrate_adc()
498 return -EIO; in snd_msnd_calibrate_adc()
506 snd_msnd_enable_irq(mpu->private_data); in snd_msnd_mpu401_open()
507 snd_msnd_send_dsp_cmd(mpu->private_data, HDEX_MIDI_IN_START); in snd_msnd_mpu401_open()
513 snd_msnd_send_dsp_cmd(mpu->private_data, HDEX_MIDI_IN_STOP); in snd_msnd_mpu401_close()
514 snd_msnd_disable_irq(mpu->private_data); in snd_msnd_mpu401_close()
522 struct snd_msnd *chip = card->private_data; in snd_msnd_attach()
525 err = devm_request_irq(card->dev, chip->irq, snd_msnd_interrupt, 0, in snd_msnd_attach()
526 card->shortname, chip); in snd_msnd_attach()
528 dev_err(card->dev, LOGNAME ": Couldn't grab IRQ %d\n", chip->irq); in snd_msnd_attach()
531 card->sync_irq = chip->irq; in snd_msnd_attach()
532 if (!devm_request_region(card->dev, chip->io, DSP_NUMIO, in snd_msnd_attach()
533 card->shortname)) in snd_msnd_attach()
534 return -EBUSY; in snd_msnd_attach()
536 if (!devm_request_mem_region(card->dev, chip->base, BUFFSIZE, in snd_msnd_attach()
537 card->shortname)) { in snd_msnd_attach()
538 dev_err(card->dev, LOGNAME in snd_msnd_attach()
539 ": unable to grab memory region 0x%lx-0x%lx\n", in snd_msnd_attach()
540 chip->base, chip->base + BUFFSIZE - 1); in snd_msnd_attach()
541 return -EBUSY; in snd_msnd_attach()
543 chip->mappedbase = devm_ioremap(card->dev, chip->base, 0x8000); in snd_msnd_attach()
544 if (!chip->mappedbase) { in snd_msnd_attach()
545 dev_err(card->dev, LOGNAME in snd_msnd_attach()
546 ": unable to map memory region 0x%lx-0x%lx\n", in snd_msnd_attach()
547 chip->base, chip->base + BUFFSIZE - 1); in snd_msnd_attach()
548 return -EIO; in snd_msnd_attach()
557 dev_err(card->dev, LOGNAME ": error creating new PCM device\n"); in snd_msnd_attach()
563 dev_err(card->dev, LOGNAME ": error creating new Mixer device\n"); in snd_msnd_attach()
576 &chip->rmidi); in snd_msnd_attach()
578 dev_err(card->dev, LOGNAME in snd_msnd_attach()
582 mpu = chip->rmidi->private_data; in snd_msnd_attach()
584 mpu->open_input = snd_msnd_mpu401_open; in snd_msnd_attach()
585 mpu->close_input = snd_msnd_mpu401_close; in snd_msnd_attach()
586 mpu->private_data = chip; in snd_msnd_attach()
589 disable_irq(chip->irq); in snd_msnd_attach()
590 snd_msnd_calibrate_adc(chip, chip->play_sample_rate); in snd_msnd_attach()
610 dev_err(chip->card->dev, LOGNAME ": %s: I/O error\n", __func__); in snd_msnd_write_cfg()
611 return -EIO; in snd_msnd_write_cfg()
619 return -EIO; in snd_msnd_write_cfg_io0()
621 return -EIO; in snd_msnd_write_cfg_io0()
623 return -EIO; in snd_msnd_write_cfg_io0()
630 return -EIO; in snd_msnd_write_cfg_io1()
632 return -EIO; in snd_msnd_write_cfg_io1()
634 return -EIO; in snd_msnd_write_cfg_io1()
641 return -EIO; in snd_msnd_write_cfg_irq()
643 return -EIO; in snd_msnd_write_cfg_irq()
645 return -EIO; in snd_msnd_write_cfg_irq()
656 return -EIO; in snd_msnd_write_cfg_mem()
658 return -EIO; in snd_msnd_write_cfg_mem()
660 return -EIO; in snd_msnd_write_cfg_mem()
663 return -EIO; in snd_msnd_write_cfg_mem()
670 return -EIO; in snd_msnd_activate_logical()
672 return -EIO; in snd_msnd_activate_logical()
681 return -EIO; in snd_msnd_write_cfg_logical()
683 return -EIO; in snd_msnd_write_cfg_logical()
685 return -EIO; in snd_msnd_write_cfg_logical()
687 return -EIO; in snd_msnd_write_cfg_logical()
689 return -EIO; in snd_msnd_write_cfg_logical()
691 return -EIO; in snd_msnd_write_cfg_logical()
700 dev_info(chip->card->dev, LOGNAME ": Resetting all devices\n"); in snd_msnd_pinnacle_cfg_reset()
703 return -EIO; in snd_msnd_pinnacle_cfg_reset()
709 static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; /* Index 0-MAX */
737 static int write_ndelay[SNDRV_CARDS] = { [0 ... (SNDRV_CARDS-1)] = 1 };
756 module_param_hw_array(io, long, ioport, NULL, 0444);
764 module_param_hw_array(cfg, long, ioport, NULL, 0444);
766 module_param_hw_array(mpu_io, long, ioport, NULL, 0444);
768 module_param_hw_array(ide_io0, long, ioport, NULL, 0444);
769 module_param_hw_array(ide_io1, long, ioport, NULL, 0444);
771 module_param_hw_array(joystick_io, long, ioport, NULL, 0444);
794 dev_err(pdev, LOGNAME ": \"io\" - DSP I/O base must be set " in snd_msnd_isa_match()
802 ": \"io\" - DSP I/O base must within the range 0x100 " in snd_msnd_isa_match()
815 ": \"irq\" - must be set to 5, 7, 9, 10, 11 or 12\n"); in snd_msnd_isa_match()
825 dev_err(pdev, LOGNAME ": \"mem\" - must be set to " in snd_msnd_isa_match()
857 return -ENODEV; in snd_msnd_isa_probe()
865 chip = card->private_data; in snd_msnd_isa_probe()
866 chip->card = card; in snd_msnd_isa_probe()
871 chip->irqid = HPIRQ_5; break; in snd_msnd_isa_probe()
873 chip->irqid = HPIRQ_7; break; in snd_msnd_isa_probe()
875 chip->irqid = HPIRQ_9; break; in snd_msnd_isa_probe()
877 chip->irqid = HPIRQ_10; break; in snd_msnd_isa_probe()
879 chip->irqid = HPIRQ_11; break; in snd_msnd_isa_probe()
881 chip->irqid = HPIRQ_12; break; in snd_msnd_isa_probe()
886 chip->memid = HPMEM_B000; break; in snd_msnd_isa_probe()
888 chip->memid = HPMEM_C800; break; in snd_msnd_isa_probe()
890 chip->memid = HPMEM_D000; break; in snd_msnd_isa_probe()
892 chip->memid = HPMEM_D800; break; in snd_msnd_isa_probe()
894 chip->memid = HPMEM_E000; break; in snd_msnd_isa_probe()
896 chip->memid = HPMEM_E800; break; in snd_msnd_isa_probe()
899 dev_info(pdev, LOGNAME ": Non-PnP mode: configuring at port 0x%lx\n", in snd_msnd_isa_probe()
902 if (!devm_request_region(card->dev, cfg[idx], 2, in snd_msnd_isa_probe()
906 return -EIO; in snd_msnd_isa_probe()
910 return -EIO; in snd_msnd_isa_probe()
968 chip->type = msndClassic; in snd_msnd_isa_probe()
970 chip->type = msndPinnacle; in snd_msnd_isa_probe()
972 chip->io = io[idx]; in snd_msnd_isa_probe()
973 chip->irq = irq[idx]; in snd_msnd_isa_probe()
974 chip->base = mem[idx]; in snd_msnd_isa_probe()
976 chip->calibrate_signal = calibrate_signal ? 1 : 0; in snd_msnd_isa_probe()
977 chip->recsrc = 0; in snd_msnd_isa_probe()
978 chip->dspq_data_buff = DSPQ_DATA_BUFF; in snd_msnd_isa_probe()
979 chip->dspq_buff_size = DSPQ_BUFF_SIZE; in snd_msnd_isa_probe()
981 clear_bit(F_DISABLE_WRITE_NDELAY, &chip->flags); in snd_msnd_isa_probe()
983 set_bit(F_DISABLE_WRITE_NDELAY, &chip->flags); in snd_msnd_isa_probe()
986 set_bit(F_HAVEDIGITAL, &chip->flags); in snd_msnd_isa_probe()
988 spin_lock_init(&chip->lock); in snd_msnd_isa_probe()
1030 return -ENODEV; in snd_msnd_pnp_detect()
1035 pnp_dev = pnp_request_card_device(pcard, pid->devs[0].id, NULL); in snd_msnd_pnp_detect()
1037 return -ENODEV; in snd_msnd_pnp_detect()
1039 mpu_dev = pnp_request_card_device(pcard, pid->devs[1].id, NULL); in snd_msnd_pnp_detect()
1041 return -ENODEV; in snd_msnd_pnp_detect()
1044 dev_info(&pcard->card->dev, "msnd_pinnacle: device is inactive\n"); in snd_msnd_pnp_detect()
1045 return -EBUSY; in snd_msnd_pnp_detect()
1049 dev_info(&pcard->card->dev, "msnd_pinnacle: MPU device is inactive\n"); in snd_msnd_pnp_detect()
1050 return -EBUSY; in snd_msnd_pnp_detect()
1057 ret = snd_devm_card_new(&pcard->card->dev, in snd_msnd_pnp_detect()
1063 chip = card->private_data; in snd_msnd_pnp_detect()
1064 chip->card = card; in snd_msnd_pnp_detect()
1077 chip->type = msndClassic; in snd_msnd_pnp_detect()
1079 chip->type = msndPinnacle; in snd_msnd_pnp_detect()
1081 chip->io = io[idx]; in snd_msnd_pnp_detect()
1082 chip->irq = irq[idx]; in snd_msnd_pnp_detect()
1083 chip->base = mem[idx]; in snd_msnd_pnp_detect()
1085 chip->calibrate_signal = calibrate_signal ? 1 : 0; in snd_msnd_pnp_detect()
1086 chip->recsrc = 0; in snd_msnd_pnp_detect()
1087 chip->dspq_data_buff = DSPQ_DATA_BUFF; in snd_msnd_pnp_detect()
1088 chip->dspq_buff_size = DSPQ_BUFF_SIZE; in snd_msnd_pnp_detect()
1090 clear_bit(F_DISABLE_WRITE_NDELAY, &chip->flags); in snd_msnd_pnp_detect()
1092 set_bit(F_DISABLE_WRITE_NDELAY, &chip->flags); in snd_msnd_pnp_detect()
1095 set_bit(F_HAVEDIGITAL, &chip->flags); in snd_msnd_pnp_detect()
1097 spin_lock_init(&chip->lock); in snd_msnd_pnp_detect()
1100 dev_err(&pcard->card->dev, LOGNAME ": Probe failed\n"); in snd_msnd_pnp_detect()
1106 dev_err(&pcard->card->dev, LOGNAME ": Attach failed\n"); in snd_msnd_pnp_detect()