Lines Matching refs:ak4113
41 static void ak4113_init_regs(struct ak4113 *chip);
44 static void reg_write(struct ak4113 *ak4113, unsigned char reg, in reg_write() argument
47 ak4113->write(ak4113->private_data, reg, val); in reg_write()
48 if (reg < sizeof(ak4113->regmap)) in reg_write()
49 ak4113->regmap[reg] = val; in reg_write()
52 static inline unsigned char reg_read(struct ak4113 *ak4113, unsigned char reg) in reg_read() argument
54 return ak4113->read(ak4113->private_data, reg); in reg_read()
57 static void snd_ak4113_free(struct ak4113 *chip) in snd_ak4113_free()
66 struct ak4113 *chip = device->device_data; in snd_ak4113_dev_free()
73 void *private_data, struct ak4113 **r_ak4113) in snd_ak4113_create()
75 struct ak4113 *chip; in snd_ak4113_create()
116 void snd_ak4113_reg_write(struct ak4113 *chip, unsigned char reg, in snd_ak4113_reg_write()
125 static void ak4113_init_regs(struct ak4113 *chip) in ak4113_init_regs()
141 void snd_ak4113_reinit(struct ak4113 *chip) in snd_ak4113_reinit()
201 struct ak4113 *chip = snd_kcontrol_chip(kcontrol); in snd_ak4113_in_error_get()
217 struct ak4113 *chip = snd_kcontrol_chip(kcontrol); in snd_ak4113_in_bit_get()
240 struct ak4113 *chip = snd_kcontrol_chip(kcontrol); in snd_ak4113_rx_get()
250 struct ak4113 *chip = snd_kcontrol_chip(kcontrol); in snd_ak4113_rx_put()
278 struct ak4113 *chip = snd_kcontrol_chip(kcontrol); in snd_ak4113_rate_get()
296 struct ak4113 *chip = snd_kcontrol_chip(kcontrol); in snd_ak4113_spdif_get()
333 struct ak4113 *chip = snd_kcontrol_chip(kcontrol); in snd_ak4113_spdif_pget()
358 struct ak4113 *chip = snd_kcontrol_chip(kcontrol); in snd_ak4113_spdif_qget()
376 .private_value = offsetof(struct ak4113, parity_errors),
385 .private_value = offsetof(struct ak4113, v_bit_errors),
394 .private_value = offsetof(struct ak4113, ccrc_errors),
403 .private_value = offsetof(struct ak4113, qcrc_errors),
485 struct ak4113 *ak4113 = entry->private_data; in snd_ak4113_proc_regs_read() local
489 val = reg_read(ak4113, reg); in snd_ak4113_proc_regs_read()
494 static void snd_ak4113_proc_init(struct ak4113 *ak4113) in snd_ak4113_proc_init() argument
497 if (!snd_card_proc_new(ak4113->card, "ak4113", &entry)) in snd_ak4113_proc_init()
498 snd_info_set_text_ops(entry, ak4113, snd_ak4113_proc_regs_read); in snd_ak4113_proc_init()
501 int snd_ak4113_build(struct ak4113 *ak4113, in snd_ak4113_build() argument
510 ak4113->substream = cap_substream; in snd_ak4113_build()
512 kctl = snd_ctl_new1(&snd_ak4113_iec958_controls[idx], ak4113); in snd_ak4113_build()
517 err = snd_ctl_add(ak4113->card, kctl); in snd_ak4113_build()
520 ak4113->kctls[idx] = kctl; in snd_ak4113_build()
522 snd_ak4113_proc_init(ak4113); in snd_ak4113_build()
524 schedule_delayed_work(&ak4113->work, HZ / 10); in snd_ak4113_build()
529 int snd_ak4113_external_rate(struct ak4113 *ak4113) in snd_ak4113_external_rate() argument
533 rcs1 = reg_read(ak4113, AK4113_REG_RCS1); in snd_ak4113_external_rate()
538 int snd_ak4113_check_rate_and_errors(struct ak4113 *ak4113, unsigned int flags) in snd_ak4113_check_rate_and_errors() argument
541 ak4113->substream ? ak4113->substream->runtime : NULL; in snd_ak4113_check_rate_and_errors()
547 rcs1 = reg_read(ak4113, AK4113_REG_RCS1); in snd_ak4113_check_rate_and_errors()
550 rcs0 = reg_read(ak4113, AK4113_REG_RCS0); in snd_ak4113_check_rate_and_errors()
551 rcs2 = reg_read(ak4113, AK4113_REG_RCS2); in snd_ak4113_check_rate_and_errors()
552 spin_lock_irqsave(&ak4113->lock, _flags); in snd_ak4113_check_rate_and_errors()
554 ak4113->parity_errors++; in snd_ak4113_check_rate_and_errors()
556 ak4113->v_bit_errors++; in snd_ak4113_check_rate_and_errors()
558 ak4113->ccrc_errors++; in snd_ak4113_check_rate_and_errors()
560 ak4113->qcrc_errors++; in snd_ak4113_check_rate_and_errors()
561 c0 = (ak4113->rcs0 & (AK4113_QINT | AK4113_CINT | AK4113_STC | in snd_ak4113_check_rate_and_errors()
565 c1 = (ak4113->rcs1 & (AK4113_DTSCD | AK4113_NPCM | AK4113_PEM | in snd_ak4113_check_rate_and_errors()
569 ak4113->rcs0 = rcs0 & ~(AK4113_QINT | AK4113_CINT | AK4113_STC); in snd_ak4113_check_rate_and_errors()
570 ak4113->rcs1 = rcs1; in snd_ak4113_check_rate_and_errors()
571 ak4113->rcs2 = rcs2; in snd_ak4113_check_rate_and_errors()
572 spin_unlock_irqrestore(&ak4113->lock, _flags); in snd_ak4113_check_rate_and_errors()
575 snd_ctl_notify(ak4113->card, SNDRV_CTL_EVENT_MASK_VALUE, in snd_ak4113_check_rate_and_errors()
576 &ak4113->kctls[0]->id); in snd_ak4113_check_rate_and_errors()
578 snd_ctl_notify(ak4113->card, SNDRV_CTL_EVENT_MASK_VALUE, in snd_ak4113_check_rate_and_errors()
579 &ak4113->kctls[1]->id); in snd_ak4113_check_rate_and_errors()
581 snd_ctl_notify(ak4113->card, SNDRV_CTL_EVENT_MASK_VALUE, in snd_ak4113_check_rate_and_errors()
582 &ak4113->kctls[2]->id); in snd_ak4113_check_rate_and_errors()
584 snd_ctl_notify(ak4113->card, SNDRV_CTL_EVENT_MASK_VALUE, in snd_ak4113_check_rate_and_errors()
585 &ak4113->kctls[3]->id); in snd_ak4113_check_rate_and_errors()
589 snd_ctl_notify(ak4113->card, SNDRV_CTL_EVENT_MASK_VALUE, in snd_ak4113_check_rate_and_errors()
590 &ak4113->kctls[4]->id); in snd_ak4113_check_rate_and_errors()
593 snd_ctl_notify(ak4113->card, SNDRV_CTL_EVENT_MASK_VALUE, in snd_ak4113_check_rate_and_errors()
594 &ak4113->kctls[6]->id); in snd_ak4113_check_rate_and_errors()
596 snd_ctl_notify(ak4113->card, SNDRV_CTL_EVENT_MASK_VALUE, in snd_ak4113_check_rate_and_errors()
597 &ak4113->kctls[8]->id); in snd_ak4113_check_rate_and_errors()
600 snd_ctl_notify(ak4113->card, SNDRV_CTL_EVENT_MASK_VALUE, in snd_ak4113_check_rate_and_errors()
601 &ak4113->kctls[9]->id); in snd_ak4113_check_rate_and_errors()
603 snd_ctl_notify(ak4113->card, SNDRV_CTL_EVENT_MASK_VALUE, in snd_ak4113_check_rate_and_errors()
604 &ak4113->kctls[10]->id); in snd_ak4113_check_rate_and_errors()
606 snd_ctl_notify(ak4113->card, SNDRV_CTL_EVENT_MASK_VALUE, in snd_ak4113_check_rate_and_errors()
607 &ak4113->kctls[11]->id); in snd_ak4113_check_rate_and_errors()
609 if (ak4113->change_callback && (c0 | c1) != 0) in snd_ak4113_check_rate_and_errors()
610 ak4113->change_callback(ak4113, c0, c1); in snd_ak4113_check_rate_and_errors()
617 snd_pcm_stream_lock_irqsave(ak4113->substream, _flags); in snd_ak4113_check_rate_and_errors()
618 if (snd_pcm_running(ak4113->substream)) { in snd_ak4113_check_rate_and_errors()
621 snd_pcm_stop(ak4113->substream, in snd_ak4113_check_rate_and_errors()
626 snd_pcm_stream_unlock_irqrestore(ak4113->substream, _flags); in snd_ak4113_check_rate_and_errors()
634 struct ak4113 *chip = container_of(work, struct ak4113, work.work); in ak4113_stats()
644 void snd_ak4113_suspend(struct ak4113 *chip) in snd_ak4113_suspend()
651 void snd_ak4113_resume(struct ak4113 *chip) in snd_ak4113_resume()