Lines Matching refs:chip

32 static inline int snd_ad1816a_busy_wait(struct snd_ad1816a *chip)  in snd_ad1816a_busy_wait()  argument
44 static inline unsigned char snd_ad1816a_in(struct snd_ad1816a *chip, unsigned char reg) in snd_ad1816a_in() argument
46 snd_ad1816a_busy_wait(chip); in snd_ad1816a_in()
50 static inline void snd_ad1816a_out(struct snd_ad1816a *chip, unsigned char reg, in snd_ad1816a_out() argument
53 snd_ad1816a_busy_wait(chip); in snd_ad1816a_out()
57 static inline void snd_ad1816a_out_mask(struct snd_ad1816a *chip, unsigned char reg, in snd_ad1816a_out_mask() argument
60 snd_ad1816a_out(chip, reg, in snd_ad1816a_out_mask()
61 (value & mask) | (snd_ad1816a_in(chip, reg) & ~mask)); in snd_ad1816a_out_mask()
64 static unsigned short snd_ad1816a_read(struct snd_ad1816a *chip, unsigned char reg) in snd_ad1816a_read() argument
66 snd_ad1816a_out(chip, AD1816A_INDIR_ADDR, reg & 0x3f); in snd_ad1816a_read()
67 return snd_ad1816a_in(chip, AD1816A_INDIR_DATA_LOW) | in snd_ad1816a_read()
68 (snd_ad1816a_in(chip, AD1816A_INDIR_DATA_HIGH) << 8); in snd_ad1816a_read()
71 static void snd_ad1816a_write(struct snd_ad1816a *chip, unsigned char reg, in snd_ad1816a_write() argument
74 snd_ad1816a_out(chip, AD1816A_INDIR_ADDR, reg & 0x3f); in snd_ad1816a_write()
75 snd_ad1816a_out(chip, AD1816A_INDIR_DATA_LOW, value & 0xff); in snd_ad1816a_write()
76 snd_ad1816a_out(chip, AD1816A_INDIR_DATA_HIGH, (value >> 8) & 0xff); in snd_ad1816a_write()
79 static void snd_ad1816a_write_mask(struct snd_ad1816a *chip, unsigned char reg, in snd_ad1816a_write_mask() argument
82 snd_ad1816a_write(chip, reg, in snd_ad1816a_write_mask()
83 (value & mask) | (snd_ad1816a_read(chip, reg) & ~mask)); in snd_ad1816a_write_mask()
87 static unsigned char snd_ad1816a_get_format(struct snd_ad1816a *chip, in snd_ad1816a_get_format() argument
108 static int snd_ad1816a_open(struct snd_ad1816a *chip, unsigned int mode) in snd_ad1816a_open() argument
112 spin_lock_irqsave(&chip->lock, flags); in snd_ad1816a_open()
114 if (chip->mode & mode) { in snd_ad1816a_open()
115 spin_unlock_irqrestore(&chip->lock, flags); in snd_ad1816a_open()
121 snd_ad1816a_out_mask(chip, AD1816A_INTERRUPT_STATUS, in snd_ad1816a_open()
123 snd_ad1816a_write_mask(chip, AD1816A_INTERRUPT_ENABLE, in snd_ad1816a_open()
127 snd_ad1816a_out_mask(chip, AD1816A_INTERRUPT_STATUS, in snd_ad1816a_open()
129 snd_ad1816a_write_mask(chip, AD1816A_INTERRUPT_ENABLE, in snd_ad1816a_open()
133 snd_ad1816a_out_mask(chip, AD1816A_INTERRUPT_STATUS, in snd_ad1816a_open()
135 snd_ad1816a_write_mask(chip, AD1816A_INTERRUPT_ENABLE, in snd_ad1816a_open()
138 chip->mode |= mode; in snd_ad1816a_open()
140 spin_unlock_irqrestore(&chip->lock, flags); in snd_ad1816a_open()
144 static void snd_ad1816a_close(struct snd_ad1816a *chip, unsigned int mode) in snd_ad1816a_close() argument
148 spin_lock_irqsave(&chip->lock, flags); in snd_ad1816a_close()
152 snd_ad1816a_out_mask(chip, AD1816A_INTERRUPT_STATUS, in snd_ad1816a_close()
154 snd_ad1816a_write_mask(chip, AD1816A_INTERRUPT_ENABLE, in snd_ad1816a_close()
158 snd_ad1816a_out_mask(chip, AD1816A_INTERRUPT_STATUS, in snd_ad1816a_close()
160 snd_ad1816a_write_mask(chip, AD1816A_INTERRUPT_ENABLE, in snd_ad1816a_close()
164 snd_ad1816a_out_mask(chip, AD1816A_INTERRUPT_STATUS, in snd_ad1816a_close()
166 snd_ad1816a_write_mask(chip, AD1816A_INTERRUPT_ENABLE, in snd_ad1816a_close()
169 if (!((chip->mode &= ~mode) & AD1816A_MODE_OPEN)) in snd_ad1816a_close()
170 chip->mode = 0; in snd_ad1816a_close()
172 spin_unlock_irqrestore(&chip->lock, flags); in snd_ad1816a_close()
176 static int snd_ad1816a_trigger(struct snd_ad1816a *chip, unsigned char what, in snd_ad1816a_trigger() argument
184 spin_lock(&chip->lock); in snd_ad1816a_trigger()
191 snd_ad1816a_out_mask(chip, AD1816A_PLAYBACK_CONFIG, in snd_ad1816a_trigger()
194 snd_ad1816a_out_mask(chip, AD1816A_CAPTURE_CONFIG, in snd_ad1816a_trigger()
196 spin_unlock(&chip->lock); in snd_ad1816a_trigger()
208 struct snd_ad1816a *chip = snd_pcm_substream_chip(substream); in snd_ad1816a_playback_trigger() local
209 return snd_ad1816a_trigger(chip, AD1816A_PLAYBACK_ENABLE, in snd_ad1816a_playback_trigger()
215 struct snd_ad1816a *chip = snd_pcm_substream_chip(substream); in snd_ad1816a_capture_trigger() local
216 return snd_ad1816a_trigger(chip, AD1816A_CAPTURE_ENABLE, in snd_ad1816a_capture_trigger()
233 struct snd_ad1816a *chip = snd_pcm_substream_chip(substream); in snd_ad1816a_playback_prepare() local
238 spin_lock_irqsave(&chip->lock, flags); in snd_ad1816a_playback_prepare()
240 chip->p_dma_size = size = snd_pcm_lib_buffer_bytes(substream); in snd_ad1816a_playback_prepare()
241 snd_ad1816a_out_mask(chip, AD1816A_PLAYBACK_CONFIG, in snd_ad1816a_playback_prepare()
244 snd_dma_program(chip->dma1, runtime->dma_addr, size, in snd_ad1816a_playback_prepare()
248 if (chip->clock_freq) in snd_ad1816a_playback_prepare()
249 rate = (rate * 33000) / chip->clock_freq; in snd_ad1816a_playback_prepare()
250 snd_ad1816a_write(chip, AD1816A_PLAYBACK_SAMPLE_RATE, rate); in snd_ad1816a_playback_prepare()
251 snd_ad1816a_out_mask(chip, AD1816A_PLAYBACK_CONFIG, in snd_ad1816a_playback_prepare()
253 snd_ad1816a_get_format(chip, runtime->format, in snd_ad1816a_playback_prepare()
256 snd_ad1816a_write(chip, AD1816A_PLAYBACK_BASE_COUNT, in snd_ad1816a_playback_prepare()
259 spin_unlock_irqrestore(&chip->lock, flags); in snd_ad1816a_playback_prepare()
265 struct snd_ad1816a *chip = snd_pcm_substream_chip(substream); in snd_ad1816a_capture_prepare() local
270 spin_lock_irqsave(&chip->lock, flags); in snd_ad1816a_capture_prepare()
272 chip->c_dma_size = size = snd_pcm_lib_buffer_bytes(substream); in snd_ad1816a_capture_prepare()
273 snd_ad1816a_out_mask(chip, AD1816A_CAPTURE_CONFIG, in snd_ad1816a_capture_prepare()
276 snd_dma_program(chip->dma2, runtime->dma_addr, size, in snd_ad1816a_capture_prepare()
280 if (chip->clock_freq) in snd_ad1816a_capture_prepare()
281 rate = (rate * 33000) / chip->clock_freq; in snd_ad1816a_capture_prepare()
282 snd_ad1816a_write(chip, AD1816A_CAPTURE_SAMPLE_RATE, rate); in snd_ad1816a_capture_prepare()
283 snd_ad1816a_out_mask(chip, AD1816A_CAPTURE_CONFIG, in snd_ad1816a_capture_prepare()
285 snd_ad1816a_get_format(chip, runtime->format, in snd_ad1816a_capture_prepare()
288 snd_ad1816a_write(chip, AD1816A_CAPTURE_BASE_COUNT, in snd_ad1816a_capture_prepare()
291 spin_unlock_irqrestore(&chip->lock, flags); in snd_ad1816a_capture_prepare()
298 struct snd_ad1816a *chip = snd_pcm_substream_chip(substream); in snd_ad1816a_playback_pointer() local
300 if (!(chip->mode & AD1816A_MODE_PLAYBACK)) in snd_ad1816a_playback_pointer()
302 ptr = snd_dma_pointer(chip->dma1, chip->p_dma_size); in snd_ad1816a_playback_pointer()
308 struct snd_ad1816a *chip = snd_pcm_substream_chip(substream); in snd_ad1816a_capture_pointer() local
310 if (!(chip->mode & AD1816A_MODE_CAPTURE)) in snd_ad1816a_capture_pointer()
312 ptr = snd_dma_pointer(chip->dma2, chip->c_dma_size); in snd_ad1816a_capture_pointer()
319 struct snd_ad1816a *chip = dev_id; in snd_ad1816a_interrupt() local
322 spin_lock(&chip->lock); in snd_ad1816a_interrupt()
323 status = snd_ad1816a_in(chip, AD1816A_INTERRUPT_STATUS); in snd_ad1816a_interrupt()
324 spin_unlock(&chip->lock); in snd_ad1816a_interrupt()
326 if ((status & AD1816A_PLAYBACK_IRQ_PENDING) && chip->playback_substream) in snd_ad1816a_interrupt()
327 snd_pcm_period_elapsed(chip->playback_substream); in snd_ad1816a_interrupt()
329 if ((status & AD1816A_CAPTURE_IRQ_PENDING) && chip->capture_substream) in snd_ad1816a_interrupt()
330 snd_pcm_period_elapsed(chip->capture_substream); in snd_ad1816a_interrupt()
332 if ((status & AD1816A_TIMER_IRQ_PENDING) && chip->timer) in snd_ad1816a_interrupt()
333 snd_timer_interrupt(chip->timer, chip->timer->sticks); in snd_ad1816a_interrupt()
335 spin_lock(&chip->lock); in snd_ad1816a_interrupt()
336 snd_ad1816a_out(chip, AD1816A_INTERRUPT_STATUS, 0x00); in snd_ad1816a_interrupt()
337 spin_unlock(&chip->lock); in snd_ad1816a_interrupt()
382 struct snd_ad1816a *chip = snd_timer_chip(timer); in snd_ad1816a_timer_close() local
383 snd_ad1816a_close(chip, AD1816A_MODE_TIMER); in snd_ad1816a_timer_close()
389 struct snd_ad1816a *chip = snd_timer_chip(timer); in snd_ad1816a_timer_open() local
390 snd_ad1816a_open(chip, AD1816A_MODE_TIMER); in snd_ad1816a_timer_open()
406 struct snd_ad1816a *chip = snd_timer_chip(timer); in snd_ad1816a_timer_start() local
407 spin_lock_irqsave(&chip->lock, flags); in snd_ad1816a_timer_start()
408 bits = snd_ad1816a_read(chip, AD1816A_INTERRUPT_ENABLE); in snd_ad1816a_timer_start()
411 snd_ad1816a_write(chip, AD1816A_TIMER_BASE_COUNT, in snd_ad1816a_timer_start()
414 snd_ad1816a_write_mask(chip, AD1816A_INTERRUPT_ENABLE, in snd_ad1816a_timer_start()
417 spin_unlock_irqrestore(&chip->lock, flags); in snd_ad1816a_timer_start()
424 struct snd_ad1816a *chip = snd_timer_chip(timer); in snd_ad1816a_timer_stop() local
425 spin_lock_irqsave(&chip->lock, flags); in snd_ad1816a_timer_stop()
427 snd_ad1816a_write_mask(chip, AD1816A_INTERRUPT_ENABLE, in snd_ad1816a_timer_stop()
430 spin_unlock_irqrestore(&chip->lock, flags); in snd_ad1816a_timer_stop()
447 struct snd_ad1816a *chip = snd_pcm_substream_chip(substream); in snd_ad1816a_playback_open() local
451 if ((error = snd_ad1816a_open(chip, AD1816A_MODE_PLAYBACK)) < 0) in snd_ad1816a_playback_open()
454 snd_pcm_limit_isa_dma_size(chip->dma1, &runtime->hw.buffer_bytes_max); in snd_ad1816a_playback_open()
455 snd_pcm_limit_isa_dma_size(chip->dma1, &runtime->hw.period_bytes_max); in snd_ad1816a_playback_open()
456 chip->playback_substream = substream; in snd_ad1816a_playback_open()
462 struct snd_ad1816a *chip = snd_pcm_substream_chip(substream); in snd_ad1816a_capture_open() local
466 if ((error = snd_ad1816a_open(chip, AD1816A_MODE_CAPTURE)) < 0) in snd_ad1816a_capture_open()
469 snd_pcm_limit_isa_dma_size(chip->dma2, &runtime->hw.buffer_bytes_max); in snd_ad1816a_capture_open()
470 snd_pcm_limit_isa_dma_size(chip->dma2, &runtime->hw.period_bytes_max); in snd_ad1816a_capture_open()
471 chip->capture_substream = substream; in snd_ad1816a_capture_open()
477 struct snd_ad1816a *chip = snd_pcm_substream_chip(substream); in snd_ad1816a_playback_close() local
479 chip->playback_substream = NULL; in snd_ad1816a_playback_close()
480 snd_ad1816a_close(chip, AD1816A_MODE_PLAYBACK); in snd_ad1816a_playback_close()
486 struct snd_ad1816a *chip = snd_pcm_substream_chip(substream); in snd_ad1816a_capture_close() local
488 chip->capture_substream = NULL; in snd_ad1816a_capture_close()
489 snd_ad1816a_close(chip, AD1816A_MODE_CAPTURE); in snd_ad1816a_capture_close()
494 static void snd_ad1816a_init(struct snd_ad1816a *chip) in snd_ad1816a_init() argument
498 spin_lock_irqsave(&chip->lock, flags); in snd_ad1816a_init()
500 snd_ad1816a_out(chip, AD1816A_INTERRUPT_STATUS, 0x00); in snd_ad1816a_init()
501 snd_ad1816a_out_mask(chip, AD1816A_PLAYBACK_CONFIG, in snd_ad1816a_init()
503 snd_ad1816a_out_mask(chip, AD1816A_CAPTURE_CONFIG, in snd_ad1816a_init()
505 snd_ad1816a_write(chip, AD1816A_INTERRUPT_ENABLE, 0x0000); in snd_ad1816a_init()
506 snd_ad1816a_write_mask(chip, AD1816A_CHIP_CONFIG, in snd_ad1816a_init()
508 snd_ad1816a_write(chip, AD1816A_DSP_CONFIG, 0x0000); in snd_ad1816a_init()
509 snd_ad1816a_write(chip, AD1816A_POWERDOWN_CTRL, 0x0000); in snd_ad1816a_init()
511 spin_unlock_irqrestore(&chip->lock, flags); in snd_ad1816a_init()
515 void snd_ad1816a_suspend(struct snd_ad1816a *chip) in snd_ad1816a_suspend() argument
520 snd_pcm_suspend_all(chip->pcm); in snd_ad1816a_suspend()
521 spin_lock_irqsave(&chip->lock, flags); in snd_ad1816a_suspend()
523 chip->image[reg] = snd_ad1816a_read(chip, reg); in snd_ad1816a_suspend()
524 spin_unlock_irqrestore(&chip->lock, flags); in snd_ad1816a_suspend()
527 void snd_ad1816a_resume(struct snd_ad1816a *chip) in snd_ad1816a_resume() argument
532 snd_ad1816a_init(chip); in snd_ad1816a_resume()
533 spin_lock_irqsave(&chip->lock, flags); in snd_ad1816a_resume()
535 snd_ad1816a_write(chip, reg, chip->image[reg]); in snd_ad1816a_resume()
536 spin_unlock_irqrestore(&chip->lock, flags); in snd_ad1816a_resume()
540 static int snd_ad1816a_probe(struct snd_ad1816a *chip) in snd_ad1816a_probe() argument
544 spin_lock_irqsave(&chip->lock, flags); in snd_ad1816a_probe()
546 switch (chip->version = snd_ad1816a_read(chip, AD1816A_VERSION_ID)) { in snd_ad1816a_probe()
548 chip->hardware = AD1816A_HW_AD1815; in snd_ad1816a_probe()
551 chip->hardware = AD1816A_HW_AD18MAX10; in snd_ad1816a_probe()
554 chip->hardware = AD1816A_HW_AD1816A; in snd_ad1816a_probe()
557 chip->hardware = AD1816A_HW_AUTO; in snd_ad1816a_probe()
560 spin_unlock_irqrestore(&chip->lock, flags); in snd_ad1816a_probe()
564 static int snd_ad1816a_free(struct snd_ad1816a *chip) in snd_ad1816a_free() argument
566 release_and_free_resource(chip->res_port); in snd_ad1816a_free()
567 if (chip->irq >= 0) in snd_ad1816a_free()
568 free_irq(chip->irq, (void *) chip); in snd_ad1816a_free()
569 if (chip->dma1 >= 0) { in snd_ad1816a_free()
570 snd_dma_disable(chip->dma1); in snd_ad1816a_free()
571 free_dma(chip->dma1); in snd_ad1816a_free()
573 if (chip->dma2 >= 0) { in snd_ad1816a_free()
574 snd_dma_disable(chip->dma2); in snd_ad1816a_free()
575 free_dma(chip->dma2); in snd_ad1816a_free()
582 struct snd_ad1816a *chip = device->device_data; in snd_ad1816a_dev_free() local
583 return snd_ad1816a_free(chip); in snd_ad1816a_dev_free()
586 static const char *snd_ad1816a_chip_id(struct snd_ad1816a *chip) in snd_ad1816a_chip_id() argument
588 switch (chip->hardware) { in snd_ad1816a_chip_id()
594 chip->version, chip->hardware); in snd_ad1816a_chip_id()
601 struct snd_ad1816a *chip) in snd_ad1816a_create() argument
608 chip->irq = -1; in snd_ad1816a_create()
609 chip->dma1 = -1; in snd_ad1816a_create()
610 chip->dma2 = -1; in snd_ad1816a_create()
612 if ((chip->res_port = request_region(port, 16, "AD1816A")) == NULL) { in snd_ad1816a_create()
614 snd_ad1816a_free(chip); in snd_ad1816a_create()
617 if (request_irq(irq, snd_ad1816a_interrupt, 0, "AD1816A", (void *) chip)) { in snd_ad1816a_create()
619 snd_ad1816a_free(chip); in snd_ad1816a_create()
622 chip->irq = irq; in snd_ad1816a_create()
625 snd_ad1816a_free(chip); in snd_ad1816a_create()
628 chip->dma1 = dma1; in snd_ad1816a_create()
631 snd_ad1816a_free(chip); in snd_ad1816a_create()
634 chip->dma2 = dma2; in snd_ad1816a_create()
636 chip->card = card; in snd_ad1816a_create()
637 chip->port = port; in snd_ad1816a_create()
638 spin_lock_init(&chip->lock); in snd_ad1816a_create()
640 if ((error = snd_ad1816a_probe(chip))) { in snd_ad1816a_create()
641 snd_ad1816a_free(chip); in snd_ad1816a_create()
645 snd_ad1816a_init(chip); in snd_ad1816a_create()
648 if ((error = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops)) < 0) { in snd_ad1816a_create()
649 snd_ad1816a_free(chip); in snd_ad1816a_create()
678 int snd_ad1816a_pcm(struct snd_ad1816a *chip, int device) in snd_ad1816a_pcm() argument
683 if ((error = snd_pcm_new(chip->card, "AD1816A", device, 1, 1, &pcm))) in snd_ad1816a_pcm()
689 pcm->private_data = chip; in snd_ad1816a_pcm()
690 pcm->info_flags = (chip->dma1 == chip->dma2 ) ? SNDRV_PCM_INFO_JOINT_DUPLEX : 0; in snd_ad1816a_pcm()
692 strcpy(pcm->name, snd_ad1816a_chip_id(chip)); in snd_ad1816a_pcm()
693 snd_ad1816a_init(chip); in snd_ad1816a_pcm()
697 64*1024, chip->dma1 > 3 || chip->dma2 > 3 ? 128*1024 : 64*1024); in snd_ad1816a_pcm()
699 chip->pcm = pcm; in snd_ad1816a_pcm()
703 int snd_ad1816a_timer(struct snd_ad1816a *chip, int device) in snd_ad1816a_timer() argument
711 tid.card = chip->card->number; in snd_ad1816a_timer()
714 if ((error = snd_timer_new(chip->card, "AD1816A", &tid, &timer)) < 0) in snd_ad1816a_timer()
716 strcpy(timer->name, snd_ad1816a_chip_id(chip)); in snd_ad1816a_timer()
717 timer->private_data = chip; in snd_ad1816a_timer()
718 chip->timer = timer; in snd_ad1816a_timer()
739 struct snd_ad1816a *chip = snd_kcontrol_chip(kcontrol); in snd_ad1816a_get_mux() local
743 spin_lock_irqsave(&chip->lock, flags); in snd_ad1816a_get_mux()
744 val = snd_ad1816a_read(chip, AD1816A_ADC_SOURCE_SEL); in snd_ad1816a_get_mux()
745 spin_unlock_irqrestore(&chip->lock, flags); in snd_ad1816a_get_mux()
753 struct snd_ad1816a *chip = snd_kcontrol_chip(kcontrol); in snd_ad1816a_put_mux() local
763 spin_lock_irqsave(&chip->lock, flags); in snd_ad1816a_put_mux()
764 change = snd_ad1816a_read(chip, AD1816A_ADC_SOURCE_SEL) != val; in snd_ad1816a_put_mux()
765 snd_ad1816a_write(chip, AD1816A_ADC_SOURCE_SEL, val); in snd_ad1816a_put_mux()
766 spin_unlock_irqrestore(&chip->lock, flags); in snd_ad1816a_put_mux()
795 struct snd_ad1816a *chip = snd_kcontrol_chip(kcontrol); in snd_ad1816a_get_single() local
802 spin_lock_irqsave(&chip->lock, flags); in snd_ad1816a_get_single()
803 ucontrol->value.integer.value[0] = (snd_ad1816a_read(chip, reg) >> shift) & mask; in snd_ad1816a_get_single()
804 spin_unlock_irqrestore(&chip->lock, flags); in snd_ad1816a_get_single()
812 struct snd_ad1816a *chip = snd_kcontrol_chip(kcontrol); in snd_ad1816a_put_single() local
825 spin_lock_irqsave(&chip->lock, flags); in snd_ad1816a_put_single()
826 old_val = snd_ad1816a_read(chip, reg); in snd_ad1816a_put_single()
829 snd_ad1816a_write(chip, reg, val); in snd_ad1816a_put_single()
830 spin_unlock_irqrestore(&chip->lock, flags); in snd_ad1816a_put_single()
860 struct snd_ad1816a *chip = snd_kcontrol_chip(kcontrol); in snd_ad1816a_get_double() local
869 spin_lock_irqsave(&chip->lock, flags); in snd_ad1816a_get_double()
870 val = snd_ad1816a_read(chip, reg); in snd_ad1816a_get_double()
873 spin_unlock_irqrestore(&chip->lock, flags); in snd_ad1816a_get_double()
883 struct snd_ad1816a *chip = snd_kcontrol_chip(kcontrol); in snd_ad1816a_put_double() local
901 spin_lock_irqsave(&chip->lock, flags); in snd_ad1816a_put_double()
902 old_val = snd_ad1816a_read(chip, reg); in snd_ad1816a_put_double()
905 snd_ad1816a_write(chip, reg, val1); in snd_ad1816a_put_double()
906 spin_unlock_irqrestore(&chip->lock, flags); in snd_ad1816a_put_double()
962 int snd_ad1816a_mixer(struct snd_ad1816a *chip) in snd_ad1816a_mixer() argument
968 if (snd_BUG_ON(!chip || !chip->card)) in snd_ad1816a_mixer()
971 card = chip->card; in snd_ad1816a_mixer()
973 strcpy(card->mixername, snd_ad1816a_chip_id(chip)); in snd_ad1816a_mixer()
976 if ((err = snd_ctl_add(card, snd_ctl_new1(&snd_ad1816a_controls[idx], chip))) < 0) in snd_ad1816a_mixer()