Lines Matching refs:ak4117
40 static void reg_write(struct ak4117 *ak4117, unsigned char reg, unsigned char val) in reg_write() argument
42 ak4117->write(ak4117->private_data, reg, val); in reg_write()
43 if (reg < sizeof(ak4117->regmap)) in reg_write()
44 ak4117->regmap[reg] = val; in reg_write()
47 static inline unsigned char reg_read(struct ak4117 *ak4117, unsigned char reg) in reg_read() argument
49 return ak4117->read(ak4117->private_data, reg); in reg_read()
53 static void reg_dump(struct ak4117 *ak4117)
59 …(KERN_DEBUG "reg[%02x] = %02x (%02x)\n", i, reg_read(ak4117, i), i < sizeof(ak4117->regmap) ? ak41…
63 static void snd_ak4117_free(struct ak4117 *chip) in snd_ak4117_free()
71 struct ak4117 *chip = device->device_data; in snd_ak4117_dev_free()
77 const unsigned char pgm[5], void *private_data, struct ak4117 **r_ak4117) in snd_ak4117_create()
79 struct ak4117 *chip; in snd_ak4117_create()
116 void snd_ak4117_reg_write(struct ak4117 *chip, unsigned char reg, unsigned char mask, unsigned char… in snd_ak4117_reg_write()
123 void snd_ak4117_reinit(struct ak4117 *chip) in snd_ak4117_reinit()
170 struct ak4117 *chip = snd_kcontrol_chip(kcontrol); in snd_ak4117_in_error_get()
186 struct ak4117 *chip = snd_kcontrol_chip(kcontrol); in snd_ak4117_in_bit_get()
208 struct ak4117 *chip = snd_kcontrol_chip(kcontrol); in snd_ak4117_rx_get()
217 struct ak4117 *chip = snd_kcontrol_chip(kcontrol); in snd_ak4117_rx_put()
243 struct ak4117 *chip = snd_kcontrol_chip(kcontrol); in snd_ak4117_rate_get()
259 struct ak4117 *chip = snd_kcontrol_chip(kcontrol); in snd_ak4117_spdif_get()
293 struct ak4117 *chip = snd_kcontrol_chip(kcontrol); in snd_ak4117_spdif_pget()
315 struct ak4117 *chip = snd_kcontrol_chip(kcontrol); in snd_ak4117_spdif_qget()
331 .private_value = offsetof(struct ak4117, parity_errors),
339 .private_value = offsetof(struct ak4117, v_bit_errors),
347 .private_value = offsetof(struct ak4117, ccrc_errors),
355 .private_value = offsetof(struct ak4117, qcrc_errors),
426 int snd_ak4117_build(struct ak4117 *ak4117, struct snd_pcm_substream *cap_substream) in snd_ak4117_build() argument
434 ak4117->substream = cap_substream; in snd_ak4117_build()
436 kctl = snd_ctl_new1(&snd_ak4117_iec958_controls[idx], ak4117); in snd_ak4117_build()
441 err = snd_ctl_add(ak4117->card, kctl); in snd_ak4117_build()
444 ak4117->kctls[idx] = kctl; in snd_ak4117_build()
449 int snd_ak4117_external_rate(struct ak4117 *ak4117) in snd_ak4117_external_rate() argument
453 rcs1 = reg_read(ak4117, AK4117_REG_RCS1); in snd_ak4117_external_rate()
457 int snd_ak4117_check_rate_and_errors(struct ak4117 *ak4117, unsigned int flags) in snd_ak4117_check_rate_and_errors() argument
459 struct snd_pcm_runtime *runtime = ak4117->substream ? ak4117->substream->runtime : NULL; in snd_ak4117_check_rate_and_errors()
465 rcs1 = reg_read(ak4117, AK4117_REG_RCS1); in snd_ak4117_check_rate_and_errors()
468 rcs0 = reg_read(ak4117, AK4117_REG_RCS0); in snd_ak4117_check_rate_and_errors()
469 rcs2 = reg_read(ak4117, AK4117_REG_RCS2); in snd_ak4117_check_rate_and_errors()
471 spin_lock_irqsave(&ak4117->lock, _flags); in snd_ak4117_check_rate_and_errors()
473 ak4117->parity_errors++; in snd_ak4117_check_rate_and_errors()
475 ak4117->v_bit_errors++; in snd_ak4117_check_rate_and_errors()
477 ak4117->ccrc_errors++; in snd_ak4117_check_rate_and_errors()
479 ak4117->qcrc_errors++; in snd_ak4117_check_rate_and_errors()
480 …c0 = (ak4117->rcs0 & (AK4117_QINT | AK4117_CINT | AK4117_STC | AK4117_AUDION | AK4117_AUTO | AK411… in snd_ak4117_check_rate_and_errors()
482 c1 = (ak4117->rcs1 & (AK4117_DTSCD | AK4117_NPCM | AK4117_PEM | 0x0f)) ^ in snd_ak4117_check_rate_and_errors()
484 ak4117->rcs0 = rcs0 & ~(AK4117_QINT | AK4117_CINT | AK4117_STC); in snd_ak4117_check_rate_and_errors()
485 ak4117->rcs1 = rcs1; in snd_ak4117_check_rate_and_errors()
486 ak4117->rcs2 = rcs2; in snd_ak4117_check_rate_and_errors()
487 spin_unlock_irqrestore(&ak4117->lock, _flags); in snd_ak4117_check_rate_and_errors()
490 snd_ctl_notify(ak4117->card, SNDRV_CTL_EVENT_MASK_VALUE, &ak4117->kctls[0]->id); in snd_ak4117_check_rate_and_errors()
492 snd_ctl_notify(ak4117->card, SNDRV_CTL_EVENT_MASK_VALUE, &ak4117->kctls[1]->id); in snd_ak4117_check_rate_and_errors()
494 snd_ctl_notify(ak4117->card, SNDRV_CTL_EVENT_MASK_VALUE, &ak4117->kctls[2]->id); in snd_ak4117_check_rate_and_errors()
496 snd_ctl_notify(ak4117->card, SNDRV_CTL_EVENT_MASK_VALUE, &ak4117->kctls[3]->id); in snd_ak4117_check_rate_and_errors()
500 snd_ctl_notify(ak4117->card, SNDRV_CTL_EVENT_MASK_VALUE, &ak4117->kctls[4]->id); in snd_ak4117_check_rate_and_errors()
503 snd_ctl_notify(ak4117->card, SNDRV_CTL_EVENT_MASK_VALUE, &ak4117->kctls[6]->id); in snd_ak4117_check_rate_and_errors()
505 snd_ctl_notify(ak4117->card, SNDRV_CTL_EVENT_MASK_VALUE, &ak4117->kctls[8]->id); in snd_ak4117_check_rate_and_errors()
508 snd_ctl_notify(ak4117->card, SNDRV_CTL_EVENT_MASK_VALUE, &ak4117->kctls[9]->id); in snd_ak4117_check_rate_and_errors()
510 snd_ctl_notify(ak4117->card, SNDRV_CTL_EVENT_MASK_VALUE, &ak4117->kctls[10]->id); in snd_ak4117_check_rate_and_errors()
512 snd_ctl_notify(ak4117->card, SNDRV_CTL_EVENT_MASK_VALUE, &ak4117->kctls[11]->id); in snd_ak4117_check_rate_and_errors()
514 if (ak4117->change_callback && (c0 | c1) != 0) in snd_ak4117_check_rate_and_errors()
515 ak4117->change_callback(ak4117, c0, c1); in snd_ak4117_check_rate_and_errors()
521 snd_pcm_stream_lock_irqsave(ak4117->substream, _flags); in snd_ak4117_check_rate_and_errors()
522 if (snd_pcm_running(ak4117->substream)) { in snd_ak4117_check_rate_and_errors()
524 snd_pcm_stop(ak4117->substream, SNDRV_PCM_STATE_DRAINING); in snd_ak4117_check_rate_and_errors()
528 snd_pcm_stream_unlock_irqrestore(ak4117->substream, _flags); in snd_ak4117_check_rate_and_errors()
535 struct ak4117 *chip = (struct ak4117 *)data; in snd_ak4117_timer()