Symbol: ak4114
include/sound/ak4114.h
178
void (*change_callback)(struct ak4114 *ak4114, unsigned char c0, unsigned char c1);
include/sound/ak4114.h
184
void *private_data, struct ak4114 **r_ak4114);
include/sound/ak4114.h
185
void snd_ak4114_reg_write(struct ak4114 *ak4114, unsigned char reg, unsigned char mask, unsigned char val);
include/sound/ak4114.h
186
void snd_ak4114_reinit(struct ak4114 *ak4114);
include/sound/ak4114.h
187
int snd_ak4114_build(struct ak4114 *ak4114,
include/sound/ak4114.h
190
int snd_ak4114_external_rate(struct ak4114 *ak4114);
include/sound/ak4114.h
191
int snd_ak4114_check_rate_and_errors(struct ak4114 *ak4114, unsigned int flags);
include/sound/ak4114.h
194
void snd_ak4114_suspend(struct ak4114 *chip);
include/sound/ak4114.h
195
void snd_ak4114_resume(struct ak4114 *chip);
include/sound/ak4114.h
197
static inline void snd_ak4114_suspend(struct ak4114 *chip) {}
include/sound/ak4114.h
198
static inline void snd_ak4114_resume(struct ak4114 *chip) {}
sound/i2c/other/ak4114.c
103
void snd_ak4114_reg_write(struct ak4114 *chip, unsigned char reg, unsigned char mask, unsigned char val)
sound/i2c/other/ak4114.c
113
static void ak4114_init_regs(struct ak4114 *chip)
sound/i2c/other/ak4114.c
131
void snd_ak4114_reinit(struct ak4114 *chip)
sound/i2c/other/ak4114.c
171
struct ak4114 *chip = snd_kcontrol_chip(kcontrol);
sound/i2c/other/ak4114.c
185
struct ak4114 *chip = snd_kcontrol_chip(kcontrol);
sound/i2c/other/ak4114.c
207
struct ak4114 *chip = snd_kcontrol_chip(kcontrol);
sound/i2c/other/ak4114.c
223
struct ak4114 *chip = snd_kcontrol_chip(kcontrol);
sound/i2c/other/ak4114.c
234
struct ak4114 *chip = snd_kcontrol_chip(kcontrol);
sound/i2c/other/ak4114.c
245
struct ak4114 *chip = snd_kcontrol_chip(kcontrol);
sound/i2c/other/ak4114.c
25
static void ak4114_init_regs(struct ak4114 *chip);
sound/i2c/other/ak4114.c
27
static void reg_write(struct ak4114 *ak4114, unsigned char reg, unsigned char val)
sound/i2c/other/ak4114.c
279
struct ak4114 *chip = snd_kcontrol_chip(kcontrol);
sound/i2c/other/ak4114.c
29
ak4114->write(ak4114->private_data, reg, val);
sound/i2c/other/ak4114.c
301
struct ak4114 *chip = snd_kcontrol_chip(kcontrol);
sound/i2c/other/ak4114.c
31
ak4114->regmap[reg] = val;
sound/i2c/other/ak4114.c
33
ak4114->txcsb[reg-AK4114_REG_TXCSB0] = val;
sound/i2c/other/ak4114.c
36
static inline unsigned char reg_read(struct ak4114 *ak4114, unsigned char reg)
sound/i2c/other/ak4114.c
38
return ak4114->read(ak4114->private_data, reg);
sound/i2c/other/ak4114.c
41
static void snd_ak4114_free(struct ak4114 *chip)
sound/i2c/other/ak4114.c
431
struct ak4114 *ak4114 = entry->private_data;
sound/i2c/other/ak4114.c
435
val = reg_read(ak4114, reg);
sound/i2c/other/ak4114.c
440
static void snd_ak4114_proc_init(struct ak4114 *ak4114)
sound/i2c/other/ak4114.c
442
snd_card_ro_proc_new(ak4114->card, "ak4114", ak4114,
sound/i2c/other/ak4114.c
446
int snd_ak4114_build(struct ak4114 *ak4114,
sound/i2c/other/ak4114.c
456
ak4114->playback_substream = ply_substream;
sound/i2c/other/ak4114.c
457
ak4114->capture_substream = cap_substream;
sound/i2c/other/ak4114.c
459
kctl = snd_ctl_new1(&snd_ak4114_iec958_controls[idx], ak4114);
sound/i2c/other/ak4114.c
465
ak4114->kctls[idx] = NULL;
sound/i2c/other/ak4114.c
474
err = snd_ctl_add(ak4114->card, kctl);
sound/i2c/other/ak4114.c
477
ak4114->kctls[idx] = kctl;
sound/i2c/other/ak4114.c
479
snd_ak4114_proc_init(ak4114);
sound/i2c/other/ak4114.c
481
schedule_delayed_work(&ak4114->work, HZ / 10);
sound/i2c/other/ak4114.c
487
static void ak4114_notify(struct ak4114 *ak4114,
sound/i2c/other/ak4114.c
491
if (!ak4114->kctls[0])
sound/i2c/other/ak4114.c
495
snd_ctl_notify(ak4114->card, SNDRV_CTL_EVENT_MASK_VALUE,
sound/i2c/other/ak4114.c
496
&ak4114->kctls[0]->id);
sound/i2c/other/ak4114.c
498
snd_ctl_notify(ak4114->card, SNDRV_CTL_EVENT_MASK_VALUE,
sound/i2c/other/ak4114.c
499
&ak4114->kctls[1]->id);
sound/i2c/other/ak4114.c
50
struct ak4114 *chip = device->device_data;
sound/i2c/other/ak4114.c
501
snd_ctl_notify(ak4114->card, SNDRV_CTL_EVENT_MASK_VALUE,
sound/i2c/other/ak4114.c
502
&ak4114->kctls[2]->id);
sound/i2c/other/ak4114.c
504
snd_ctl_notify(ak4114->card, SNDRV_CTL_EVENT_MASK_VALUE,
sound/i2c/other/ak4114.c
505
&ak4114->kctls[3]->id);
sound/i2c/other/ak4114.c
509
snd_ctl_notify(ak4114->card, SNDRV_CTL_EVENT_MASK_VALUE,
sound/i2c/other/ak4114.c
510
&ak4114->kctls[4]->id);
sound/i2c/other/ak4114.c
513
snd_ctl_notify(ak4114->card, SNDRV_CTL_EVENT_MASK_VALUE,
sound/i2c/other/ak4114.c
514
&ak4114->kctls[9]->id);
sound/i2c/other/ak4114.c
516
snd_ctl_notify(ak4114->card, SNDRV_CTL_EVENT_MASK_VALUE,
sound/i2c/other/ak4114.c
517
&ak4114->kctls[10]->id);
sound/i2c/other/ak4114.c
520
snd_ctl_notify(ak4114->card, SNDRV_CTL_EVENT_MASK_VALUE,
sound/i2c/other/ak4114.c
521
&ak4114->kctls[11]->id);
sound/i2c/other/ak4114.c
523
snd_ctl_notify(ak4114->card, SNDRV_CTL_EVENT_MASK_VALUE,
sound/i2c/other/ak4114.c
524
&ak4114->kctls[12]->id);
sound/i2c/other/ak4114.c
526
snd_ctl_notify(ak4114->card, SNDRV_CTL_EVENT_MASK_VALUE,
sound/i2c/other/ak4114.c
527
&ak4114->kctls[13]->id);
sound/i2c/other/ak4114.c
529
snd_ctl_notify(ak4114->card, SNDRV_CTL_EVENT_MASK_VALUE,
sound/i2c/other/ak4114.c
530
&ak4114->kctls[14]->id);
sound/i2c/other/ak4114.c
533
int snd_ak4114_external_rate(struct ak4114 *ak4114)
sound/i2c/other/ak4114.c
537
rcs1 = reg_read(ak4114, AK4114_REG_RCS1);
sound/i2c/other/ak4114.c
542
int snd_ak4114_check_rate_and_errors(struct ak4114 *ak4114, unsigned int flags)
sound/i2c/other/ak4114.c
544
struct snd_pcm_runtime *runtime = ak4114->capture_substream ? ak4114->capture_substream->runtime : NULL;
sound/i2c/other/ak4114.c
550
rcs1 = reg_read(ak4114, AK4114_REG_RCS1);
sound/i2c/other/ak4114.c
553
rcs0 = reg_read(ak4114, AK4114_REG_RCS0);
sound/i2c/other/ak4114.c
554
scoped_guard(spinlock_irqsave, &ak4114->lock) {
sound/i2c/other/ak4114.c
556
ak4114->errors[AK4114_PARITY_ERRORS]++;
sound/i2c/other/ak4114.c
558
ak4114->errors[AK4114_V_BIT_ERRORS]++;
sound/i2c/other/ak4114.c
560
ak4114->errors[AK4114_CCRC_ERRORS]++;
sound/i2c/other/ak4114.c
562
ak4114->errors[AK4114_QCRC_ERRORS]++;
sound/i2c/other/ak4114.c
563
c0 = (ak4114->rcs0 & (AK4114_QINT | AK4114_CINT | AK4114_PEM | AK4114_AUDION | AK4114_AUTO | AK4114_UNLCK)) ^
sound/i2c/other/ak4114.c
565
c1 = (ak4114->rcs1 & 0xf0) ^ (rcs1 & 0xf0);
sound/i2c/other/ak4114.c
566
ak4114->rcs0 = rcs0 & ~(AK4114_QINT | AK4114_CINT);
sound/i2c/other/ak4114.c
567
ak4114->rcs1 = rcs1;
sound/i2c/other/ak4114.c
570
ak4114_notify(ak4114, rcs0, rcs1, c0, c1);
sound/i2c/other/ak4114.c
571
if (ak4114->change_callback && (c0 | c1) != 0)
sound/i2c/other/ak4114.c
572
ak4114->change_callback(ak4114, c0, c1);
sound/i2c/other/ak4114.c
578
snd_pcm_stream_lock_irqsave(ak4114->capture_substream, _flags);
sound/i2c/other/ak4114.c
579
if (snd_pcm_running(ak4114->capture_substream)) {
sound/i2c/other/ak4114.c
58
void *private_data, struct ak4114 **r_ak4114)
sound/i2c/other/ak4114.c
580
snd_pcm_stop(ak4114->capture_substream, SNDRV_PCM_STATE_DRAINING);
sound/i2c/other/ak4114.c
583
snd_pcm_stream_unlock_irqrestore(ak4114->capture_substream, _flags);
sound/i2c/other/ak4114.c
591
struct ak4114 *chip = container_of(work, struct ak4114, work.work);
sound/i2c/other/ak4114.c
60
struct ak4114 *chip;
sound/i2c/other/ak4114.c
600
void snd_ak4114_suspend(struct ak4114 *chip)
sound/i2c/other/ak4114.c
607
void snd_ak4114_resume(struct ak4114 *chip)
sound/pci/ice1712/juli.c
176
rate = snd_ak4114_external_rate(spec->ak4114);
sound/pci/ice1712/juli.c
24
struct ak4114 *ak4114;
sound/pci/ice1712/juli.c
254
snd_ak4114_reinit(spec->ak4114);
sound/pci/ice1712/juli.c
441
return snd_ak4114_build(spec->ak4114, NULL,
sound/pci/ice1712/juli.c
457
snd_ak4114_resume(spec->ak4114);
sound/pci/ice1712/juli.c
467
snd_ak4114_suspend(spec->ak4114);
sound/pci/ice1712/juli.c
530
static void juli_ak4114_change(struct ak4114 *ak4114, unsigned char c0,
sound/pci/ice1712/juli.c
533
struct snd_ice1712 *ice = ak4114->change_callback_private;
sound/pci/ice1712/juli.c
537
rate = snd_ak4114_external_rate(ak4114);
sound/pci/ice1712/juli.c
572
ice, &spec->ak4114);
sound/pci/ice1712/juli.c
576
spec->ak4114->change_callback = juli_ak4114_change;
sound/pci/ice1712/juli.c
577
spec->ak4114->change_callback_private = ice;
sound/pci/ice1712/juli.c
579
spec->ak4114->check_flags = 0;
sound/pci/ice1712/prodigy192.c
56
struct ak4114 *ak4114;
sound/pci/ice1712/prodigy192.c
608
ice, &spec->ak4114);
sound/pci/ice1712/prodigy192.c
613
spec->ak4114->check_flags = AK4114_CHECK_NO_RATE;
sound/pci/ice1712/prodigy192.c
649
if (spec->ak4114) {
sound/pci/ice1712/prodigy192.c
658
err = snd_ak4114_build(spec->ak4114,
sound/pci/ice1712/revo.c
24
struct ak4114 *ak4114;
sound/pci/ice1712/revo.c
482
ice, &spec->ak4114);
sound/pci/ice1712/revo.c
487
spec->ak4114->check_flags = AK4114_CHECK_NO_RATE;
sound/pci/ice1712/revo.c
598
err = snd_ak4114_build(spec->ak4114, NULL,