Lines Matching full:mix
3 // mix.c
10 * [SRC3 / SRC6] -> |CTU n0| -> [MIX n0| ->
11 * [SRC4 / SRC9] -> |CTU n1| -> [MIX n1| ->
12 * [SRC0 / SRC1] -> |CTU n2| -> [MIX n2| ->
13 * [SRC2 / SRC5] -> |CTU n3| -> [MIX n3| ->
20 * MIX Volume
21 * amixer set "MIX",0 100% // DAI0 Volume
22 * amixer set "MIX",1 100% // DAI1 Volume
25 * amixer set "MIX Ramp Up Rate" "0.125 dB/1 step"
26 * amixer set "MIX Ramp Down Rate" "4 dB/1 step"
27 * amixer set "MIX Ramp" on
29 * amixer set "MIX",0 80% // DAI0 Volume Down
30 * amixer set "MIX",1 100% // DAI1 Volume Up
36 #define MIX_NAME "mix"
61 #define rsnd_mix_get(priv, id) ((struct rsnd_mix *)(priv->mix) + id)
66 ((pos) = (struct rsnd_mix *)(priv)->mix + i); \
81 #define rsnd_mix_get_vol(mix, X) \ argument
82 rsnd_flags_has(mix, HAS_VOL##X) ? \
83 (VOL_MAX - rsnd_kctrl_vals(mix->volume##X)) : 0
89 struct rsnd_mix *mix = rsnd_mod_to_mix(mod); in rsnd_mix_volume_parameter() local
90 u32 volA = rsnd_mix_get_vol(mix, A); in rsnd_mix_volume_parameter()
91 u32 volB = rsnd_mix_get_vol(mix, B); in rsnd_mix_volume_parameter()
92 u32 volC = rsnd_mix_get_vol(mix, C); in rsnd_mix_volume_parameter()
93 u32 volD = rsnd_mix_get_vol(mix, D); in rsnd_mix_volume_parameter()
95 dev_dbg(dev, "MIX A/B/C/D = %02x/%02x/%02x/%02x\n", in rsnd_mix_volume_parameter()
107 struct rsnd_mix *mix = rsnd_mod_to_mix(mod); in rsnd_mix_volume_init() local
115 rsnd_mod_write(mod, MIX_MIXMR, rsnd_kctrl_vals(mix->ren)); in rsnd_mix_volume_init()
116 rsnd_mod_write(mod, MIX_MVPDR, rsnd_kctrl_vals(mix->rup) << 8 | in rsnd_mix_volume_init()
117 rsnd_kctrl_vals(mix->rdw)); in rsnd_mix_volume_init()
128 /* Disable MIX dB setting */ in rsnd_mix_volume_update()
134 /* Enable MIX dB setting */ in rsnd_mix_volume_update()
181 struct rsnd_mix *mix = rsnd_mod_to_mix(mod); in rsnd_mix_pcm_new() local
189 volume = &mix->volumeA; in rsnd_mix_pcm_new()
190 rsnd_flags_set(mix, HAS_VOLA); in rsnd_mix_pcm_new()
194 volume = &mix->volumeB; in rsnd_mix_pcm_new()
195 rsnd_flags_set(mix, HAS_VOLB); in rsnd_mix_pcm_new()
199 volume = &mix->volumeC; in rsnd_mix_pcm_new()
200 rsnd_flags_set(mix, HAS_VOLC); in rsnd_mix_pcm_new()
204 volume = &mix->volumeD; in rsnd_mix_pcm_new()
205 rsnd_flags_set(mix, HAS_VOLD); in rsnd_mix_pcm_new()
214 "MIX Playback Volume", in rsnd_mix_pcm_new()
222 if (rsnd_flags_has(mix, ONCE_KCTRL_INITIALIZED)) in rsnd_mix_pcm_new()
227 "MIX Ramp Switch", in rsnd_mix_pcm_new()
230 &mix->ren, 1); in rsnd_mix_pcm_new()
235 "MIX Ramp Up Rate", in rsnd_mix_pcm_new()
238 &mix->rup, in rsnd_mix_pcm_new()
245 "MIX Ramp Down Rate", in rsnd_mix_pcm_new()
248 &mix->rdw, in rsnd_mix_pcm_new()
252 rsnd_flags_set(mix, ONCE_KCTRL_INITIALIZED); in rsnd_mix_pcm_new()
293 struct rsnd_mix *mix; in rsnd_mix_probe() local
308 mix = devm_kcalloc(dev, nr, sizeof(*mix), GFP_KERNEL); in rsnd_mix_probe()
309 if (!mix) { in rsnd_mix_probe()
315 priv->mix = mix; in rsnd_mix_probe()
320 mix = rsnd_mix_get(priv, i); in rsnd_mix_probe()
332 ret = rsnd_mod_init(priv, rsnd_mod_get(mix), &rsnd_mix_ops, in rsnd_mix_probe()
350 struct rsnd_mix *mix; in rsnd_mix_remove() local
353 for_each_rsnd_mix(mix, priv, i) { in rsnd_mix_remove()
354 rsnd_mod_quit(rsnd_mod_get(mix)); in rsnd_mix_remove()