Lines Matching defs:component

41 static int wm8958_dsp2_fw(struct snd_soc_component *component, const char *name,
44 struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
57 dev_err(component->dev, "%s: firmware too short (%zd bytes)\n",
64 dev_err(component->dev, "%s: firmware has bad file magic %08x\n",
73 dev_err(component->dev, "%s: unsupported firmware version %d\n",
78 dev_err(component->dev, "%s: unsupported target device %d\n",
83 dev_err(component->dev, "%s: unsupported target core %d\n",
90 dev_info(component->dev, "%s timestamp %llx\n", name, data64);
92 snd_soc_component_write(component, 0x102, 0x2);
93 snd_soc_component_write(component, 0x900, 0x2);
100 dev_err(component->dev, "%s short data block of %zd\n",
107 dev_err(component->dev, "%zd byte block longer than file\n",
112 dev_err(component->dev, "Zero length block\n");
127 dev_info(component->dev, "%s: %s\n", name, str);
130 dev_err(component->dev, "Out of memory\n");
140 dev_dbg(component->dev, "%s: %zd bytes of %x@%x\n", name,
156 dev_warn(component->dev, "%s: unknown block type %d\n",
169 dev_dbg(component->dev, "%s: download done\n", name);
172 dev_info(component->dev, "%s: got firmware\n", name);
181 snd_soc_component_write(component, 0x900, 0x0);
182 snd_soc_component_write(component, 0x102, 0x0);
188 static void wm8958_dsp_start_mbc(struct snd_soc_component *component, int path)
190 struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
195 if (snd_soc_component_read(component, WM8958_DSP2_PROGRAM) & WM8958_DSP2_ENA)
200 wm8958_dsp2_fw(component, "MBC", wm8994->mbc, false);
202 snd_soc_component_update_bits(component, WM8958_DSP2_PROGRAM,
211 snd_soc_component_write(component, i + WM8958_MBC_BAND_1_K_1,
215 snd_soc_component_write(component,
221 snd_soc_component_write(component, WM8958_DSP2_EXECCONTROL,
225 snd_soc_component_update_bits(component, WM8958_DSP2_CONFIG,
232 static void wm8958_dsp_start_vss(struct snd_soc_component *component, int path)
234 struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
239 wm8958_dsp2_fw(component, "MBC+VSS", wm8994->mbc_vss, false);
241 snd_soc_component_update_bits(component, WM8958_DSP2_PROGRAM,
250 snd_soc_component_write(component, i + 0x2800,
259 snd_soc_component_write(component, i + 0x2600, cfg->regs[i]);
267 snd_soc_component_write(component, i + 0x2400, cfg->regs[i]);
271 snd_soc_component_write(component, WM8958_DSP2_EXECCONTROL,
285 snd_soc_component_write(component, 0x2201, ena);
288 snd_soc_component_update_bits(component, WM8958_DSP2_CONFIG,
293 static void wm8958_dsp_start_enh_eq(struct snd_soc_component *component, int path)
295 struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
299 wm8958_dsp2_fw(component, "ENH_EQ", wm8994->enh_eq, false);
301 snd_soc_component_update_bits(component, WM8958_DSP2_PROGRAM,
310 snd_soc_component_write(component, i + 0x2200,
315 snd_soc_component_write(component, WM8958_DSP2_EXECCONTROL,
319 snd_soc_component_update_bits(component, WM8958_DSP2_CONFIG,
324 static void wm8958_dsp_apply(struct snd_soc_component *component, int path, int start)
326 struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
327 int pwr_reg = snd_soc_component_read(component, WM8994_POWER_MANAGEMENT_5);
355 reg = snd_soc_component_read(component, WM8958_DSP2_PROGRAM);
357 dev_dbg(component->dev, "DSP path %d %d startup: %d, power: %x, DSP: %x\n",
366 if (!(snd_soc_component_read(component, WM8994_AIF1_CLOCKING_1)
368 !(snd_soc_component_read(component, WM8994_AIF2_CLOCKING_1)
373 snd_soc_component_update_bits(component, WM8994_CLOCKING_1,
379 wm8958_dsp_start_enh_eq(component, path);
382 wm8958_dsp_start_vss(component, path);
384 wm8958_dsp_start_mbc(component, path);
388 dev_dbg(component->dev, "DSP running in path %d\n", path);
396 snd_soc_component_update_bits(component, WM8958_DSP2_CONFIG,
398 snd_soc_component_write(component, WM8958_DSP2_EXECCONTROL,
400 snd_soc_component_update_bits(component, WM8958_DSP2_PROGRAM,
402 snd_soc_component_update_bits(component, WM8994_CLOCKING_1,
407 dev_dbg(component->dev, "DSP stopped\n");
414 struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm);
415 struct wm8994 *control = dev_get_drvdata(component->dev->parent);
425 wm8958_dsp_apply(component, i, 1);
430 wm8958_dsp_apply(component, i, 0);
456 struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
457 struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
463 reg = snd_soc_component_read(component, WM8994_CLOCKING_1);
478 struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
479 struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
500 struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
501 struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
512 struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
513 struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
522 dev_dbg(component->dev, "DSP2 active on %d already\n", mbc);
531 wm8958_dsp_apply(component, mbc, wm8994->mbc_ena[mbc]);
546 struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
547 struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
553 reg = snd_soc_component_read(component, WM8994_CLOCKING_1);
568 struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
569 struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
579 struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
580 struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
586 reg = snd_soc_component_read(component, WM8994_CLOCKING_1);
601 struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
602 struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
623 struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
624 struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
635 struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
636 struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
648 dev_dbg(component->dev, "DSP2 active on %d already\n", vss);
657 wm8958_dsp_apply(component, vss, wm8994->vss_ena[vss]);
684 struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
685 struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
699 struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
700 struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
719 dev_dbg(component->dev, "DSP2 active on %d already\n", hpf);
731 wm8958_dsp_apply(component, hpf % 3, ucontrol->value.integer.value[0]);
746 struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
747 struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
753 reg = snd_soc_component_read(component, WM8994_CLOCKING_1);
768 struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
769 struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
790 struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
791 struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
802 struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
803 struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
815 dev_dbg(component->dev, "DSP2 active on %d already\n", eq);
825 wm8958_dsp_apply(component, eq, ucontrol->value.integer.value[0]);
863 struct snd_soc_component *component = context;
864 struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
866 if (fw && (wm8958_dsp2_fw(component, "ENH_EQ", fw, true) == 0)) {
875 struct snd_soc_component *component = context;
876 struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
878 if (fw && (wm8958_dsp2_fw(component, "MBC+VSS", fw, true) == 0)) {
887 struct snd_soc_component *component = context;
888 struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
890 if (fw && (wm8958_dsp2_fw(component, "MBC", fw, true) == 0)) {
897 void wm8958_dsp2_init(struct snd_soc_component *component)
899 struct wm8994_priv *wm8994 = snd_soc_component_get_drvdata(component);
906 snd_soc_add_component_controls(component, wm8958_mbc_snd_controls,
908 snd_soc_add_component_controls(component, wm8958_vss_snd_controls,
910 snd_soc_add_component_controls(component, wm8958_enh_eq_snd_controls,
916 "wm8958_mbc.wfw", component->dev, GFP_KERNEL,
917 component, wm8958_mbc_loaded);
919 "wm8958_mbc_vss.wfw", component->dev, GFP_KERNEL,
920 component, wm8958_mbc_vss_loaded);
922 "wm8958_enh_eq.wfw", component->dev, GFP_KERNEL,
923 component, wm8958_enh_eq_loaded);
944 ret = snd_soc_add_component_controls(wm8994->hubs.component,
947 dev_err(wm8994->hubs.component->dev,
970 ret = snd_soc_add_component_controls(wm8994->hubs.component,
973 dev_err(wm8994->hubs.component->dev,
997 ret = snd_soc_add_component_controls(wm8994->hubs.component,
1000 dev_err(wm8994->hubs.component->dev,
1025 ret = snd_soc_add_component_controls(wm8994->hubs.component,
1028 dev_err(wm8994->hubs.component->dev,