• Home
  • Raw
  • Download

Lines Matching +full:sc7280 +full:- +full:herobrine

1 // SPDX-License-Identifier: GPL-2.0-only
3 // Copyright (c) 2020-2021, The Linux Foundation. All rights reserved.
5 // ALSA SoC Machine driver for sc7280
41 struct snd_soc_component *component = jack->private_data; in sc7280_jack_free()
59 struct snd_soc_card *card = rtd->card; in sc7280_headset_init()
63 struct snd_soc_component *component = codec_dai->component; in sc7280_headset_init()
67 if (!pdata->jack_setup) { in sc7280_headset_init()
74 &pdata->hs_jack, in sc7280_headset_init()
79 dev_err(card->dev, "Unable to add Headset Jack\n"); in sc7280_headset_init()
83 jack = pdata->hs_jack.jack; in sc7280_headset_init()
90 jack->private_data = component; in sc7280_headset_init()
91 jack->private_free = sc7280_jack_free; in sc7280_headset_init()
92 pdata->jack_setup = true; in sc7280_headset_init()
94 switch (cpu_dai->id) { in sc7280_headset_init()
100 rval = snd_soc_component_set_jack(component, &pdata->hs_jack, NULL); in sc7280_headset_init()
101 if (rval != 0 && rval != -ENOTSUPP) { in sc7280_headset_init()
102 dev_err(card->dev, "Failed to set jack: %d\n", rval); in sc7280_headset_init()
116 struct snd_soc_card *card = rtd->card; in sc7280_hdmi_init()
119 struct snd_soc_component *component = codec_dai->component; in sc7280_hdmi_init()
124 &pdata->hdmi_jack); in sc7280_hdmi_init()
127 dev_err(card->dev, "Unable to add HDMI Jack\n"); in sc7280_hdmi_init()
131 jack = pdata->hdmi_jack.jack; in sc7280_hdmi_init()
132 jack->private_data = component; in sc7280_hdmi_init()
133 jack->private_free = sc7280_jack_free; in sc7280_hdmi_init()
135 return snd_soc_component_set_jack(component, &pdata->hdmi_jack, NULL); in sc7280_hdmi_init()
142 struct snd_soc_card *card = rtd->card; in sc7280_rt5682_init()
146 if (++data->pri_mi2s_clk_count == 1) { in sc7280_rt5682_init()
160 dev_err(rtd->dev, "can't set codec pll: %d\n", ret); in sc7280_rt5682_init()
169 dev_err(rtd->dev, "snd_soc_dai_set_sysclk err = %d\n", in sc7280_rt5682_init()
181 switch (cpu_dai->id) { in sc7280_init()
196 dev_err(rtd->dev, "%s: invalid dai id 0x%x\n", __func__, cpu_dai->id); in sc7280_init()
199 return -EINVAL; in sc7280_init()
205 struct snd_pcm_runtime *runtime = substream->runtime; in sc7280_snd_hw_params()
206 struct snd_soc_pcm_runtime *rtd = substream->private_data; in sc7280_snd_hw_params()
209 struct sc7280_snd_data *pdata = snd_soc_card_get_drvdata(rtd->card); in sc7280_snd_hw_params()
213 if (!rtd->dai_link->no_pcm) { in sc7280_snd_hw_params()
218 switch (cpu_dai->id) { in sc7280_snd_hw_params()
226 sruntime = snd_soc_dai_get_stream(codec_dai, substream->stream); in sc7280_snd_hw_params()
227 if (sruntime != ERR_PTR(-ENOTSUPP)) in sc7280_snd_hw_params()
228 pdata->sruntime[cpu_dai->id] = sruntime; in sc7280_snd_hw_params()
238 struct snd_soc_pcm_runtime *rtd = substream->private_data; in sc7280_snd_swr_prepare()
240 struct sc7280_snd_data *data = snd_soc_card_get_drvdata(rtd->card); in sc7280_snd_swr_prepare()
241 struct sdw_stream_runtime *sruntime = data->sruntime[cpu_dai->id]; in sc7280_snd_swr_prepare()
247 if (data->stream_prepared[cpu_dai->id]) { in sc7280_snd_swr_prepare()
250 data->stream_prepared[cpu_dai->id] = false; in sc7280_snd_swr_prepare()
262 data->stream_prepared[cpu_dai->id] = true; in sc7280_snd_swr_prepare()
269 struct snd_soc_pcm_runtime *rtd = substream->private_data; in sc7280_snd_prepare()
272 switch (cpu_dai->id) { in sc7280_snd_prepare()
288 struct snd_soc_pcm_runtime *rtd = substream->private_data; in sc7280_snd_hw_free()
289 struct sc7280_snd_data *data = snd_soc_card_get_drvdata(rtd->card); in sc7280_snd_hw_free()
291 struct sdw_stream_runtime *sruntime = data->sruntime[cpu_dai->id]; in sc7280_snd_hw_free()
293 switch (cpu_dai->id) { in sc7280_snd_hw_free()
299 if (sruntime && data->stream_prepared[cpu_dai->id]) { in sc7280_snd_hw_free()
302 data->stream_prepared[cpu_dai->id] = false; in sc7280_snd_hw_free()
313 struct snd_soc_pcm_runtime *rtd = substream->private_data; in sc7280_snd_shutdown()
314 struct snd_soc_card *card = rtd->card; in sc7280_snd_shutdown()
318 switch (cpu_dai->id) { in sc7280_snd_shutdown()
320 if (--data->pri_mi2s_clk_count == 0) { in sc7280_snd_shutdown()
340 struct snd_soc_pcm_runtime *rtd = substream->private_data; in sc7280_snd_startup()
345 switch (cpu_dai->id) { in sc7280_snd_startup()
389 rate->min = rate->max = 48000; in sc7280_snd_be_hw_params_fixup()
390 channels->min = channels->max = 2; in sc7280_snd_be_hw_params_fixup()
400 struct device *dev = &pdev->dev; in sc7280_snd_platform_probe()
406 return -ENOMEM; in sc7280_snd_platform_probe()
408 card = &data->card; in sc7280_snd_platform_probe()
411 card->owner = THIS_MODULE; in sc7280_snd_platform_probe()
412 card->driver_name = "SC7280"; in sc7280_snd_platform_probe()
413 card->dev = dev; in sc7280_snd_platform_probe()
415 card->dapm_widgets = sc7280_snd_widgets; in sc7280_snd_platform_probe()
416 card->num_dapm_widgets = ARRAY_SIZE(sc7280_snd_widgets); in sc7280_snd_platform_probe()
417 card->controls = sc7280_snd_controls; in sc7280_snd_platform_probe()
418 card->num_controls = ARRAY_SIZE(sc7280_snd_controls); in sc7280_snd_platform_probe()
425 link->init = sc7280_init; in sc7280_snd_platform_probe()
426 link->ops = &sc7280_ops; in sc7280_snd_platform_probe()
427 if (link->no_pcm == 1) in sc7280_snd_platform_probe()
428 link->be_hw_params_fixup = sc7280_snd_be_hw_params_fixup; in sc7280_snd_platform_probe()
435 { .compatible = "google,sc7280-herobrine" },
443 .name = "msm-snd-sc7280",
450 MODULE_DESCRIPTION("sc7280 ASoC Machine Driver");