Lines Matching refs:hcp
303 struct hdmi_codec_priv *hcp = snd_soc_component_get_drvdata(component); in hdmi_eld_ctl_get() local
305 memcpy(ucontrol->value.bytes.data, hcp->eld, sizeof(hcp->eld)); in hdmi_eld_ctl_get()
327 static void hdmi_codec_eld_chmap(struct hdmi_codec_priv *hcp) in hdmi_codec_eld_chmap() argument
332 spk_alloc = drm_eld_get_spk_alloc(hcp->eld); in hdmi_codec_eld_chmap()
336 if ((spk_mask & ~(FL | FR)) && hcp->chmap_info->max_channels > 2) in hdmi_codec_eld_chmap()
337 hcp->chmap_info->chmap = hdmi_codec_8ch_chmaps; in hdmi_codec_eld_chmap()
339 hcp->chmap_info->chmap = hdmi_codec_stereo_chmaps; in hdmi_codec_eld_chmap()
342 static int hdmi_codec_get_ch_alloc_table_idx(struct hdmi_codec_priv *hcp, in hdmi_codec_get_ch_alloc_table_idx() argument
350 spk_alloc = drm_eld_get_spk_alloc(hcp->eld); in hdmi_codec_get_ch_alloc_table_idx()
372 struct hdmi_codec_priv *hcp = info->private_data; in hdmi_codec_chmap_ctl_get() local
374 map = info->chmap[hcp->chmap_idx].map; in hdmi_codec_chmap_ctl_get()
377 if (hcp->chmap_idx == HDMI_CODEC_CHMAP_IDX_UNKNOWN) in hdmi_codec_chmap_ctl_get()
398 struct hdmi_codec_priv *hcp = snd_soc_component_get_drvdata(component); in hdmi_codec_iec958_default_get() local
400 memcpy(ucontrol->value.iec958.status, hcp->iec_status, in hdmi_codec_iec958_default_get()
401 sizeof(hcp->iec_status)); in hdmi_codec_iec958_default_get()
410 struct hdmi_codec_priv *hcp = snd_soc_component_get_drvdata(component); in hdmi_codec_iec958_default_put() local
412 memcpy(hcp->iec_status, ucontrol->value.iec958.status, in hdmi_codec_iec958_default_put()
413 sizeof(hcp->iec_status)); in hdmi_codec_iec958_default_put()
430 struct hdmi_codec_priv *hcp = snd_soc_dai_get_drvdata(dai); in hdmi_codec_startup() local
432 bool has_capture = !hcp->hcd.no_i2s_capture; in hdmi_codec_startup()
433 bool has_playback = !hcp->hcd.no_i2s_playback; in hdmi_codec_startup()
439 mutex_lock(&hcp->lock); in hdmi_codec_startup()
440 if (hcp->busy) { in hdmi_codec_startup()
442 mutex_unlock(&hcp->lock); in hdmi_codec_startup()
446 if (hcp->hcd.ops->audio_startup) { in hdmi_codec_startup()
447 ret = hcp->hcd.ops->audio_startup(dai->dev->parent, hcp->hcd.data); in hdmi_codec_startup()
452 if (tx && hcp->hcd.ops->get_eld) { in hdmi_codec_startup()
453 ret = hcp->hcd.ops->get_eld(dai->dev->parent, hcp->hcd.data, in hdmi_codec_startup()
454 hcp->eld, sizeof(hcp->eld)); in hdmi_codec_startup()
458 ret = snd_pcm_hw_constraint_eld(substream->runtime, hcp->eld); in hdmi_codec_startup()
463 hdmi_codec_eld_chmap(hcp); in hdmi_codec_startup()
466 hcp->busy = true; in hdmi_codec_startup()
469 mutex_unlock(&hcp->lock); in hdmi_codec_startup()
476 struct hdmi_codec_priv *hcp = snd_soc_dai_get_drvdata(dai); in hdmi_codec_shutdown() local
478 bool has_capture = !hcp->hcd.no_i2s_capture; in hdmi_codec_shutdown()
479 bool has_playback = !hcp->hcd.no_i2s_playback; in hdmi_codec_shutdown()
484 hcp->chmap_idx = HDMI_CODEC_CHMAP_IDX_UNKNOWN; in hdmi_codec_shutdown()
485 hcp->hcd.ops->audio_shutdown(dai->dev->parent, hcp->hcd.data); in hdmi_codec_shutdown()
487 mutex_lock(&hcp->lock); in hdmi_codec_shutdown()
488 hcp->busy = false; in hdmi_codec_shutdown()
489 mutex_unlock(&hcp->lock); in hdmi_codec_shutdown()
498 struct hdmi_codec_priv *hcp = snd_soc_dai_get_drvdata(dai); in hdmi_codec_fill_codec_params() local
501 bool pcm_audio = !(hcp->iec_status[0] & IEC958_AES0_NONAUDIO); in hdmi_codec_fill_codec_params()
505 idx = hdmi_codec_get_ch_alloc_table_idx(hcp, channels); in hdmi_codec_fill_codec_params()
510 hcp->chmap_idx = HDMI_CODEC_CHMAP_IDX_UNKNOWN; in hdmi_codec_fill_codec_params()
536 hcp->chmap_idx = ca_id; in hdmi_codec_fill_codec_params()
538 hcp->chmap_idx = HDMI_CODEC_CHMAP_IDX_UNKNOWN; in hdmi_codec_fill_codec_params()
547 struct hdmi_codec_priv *hcp = snd_soc_dai_get_drvdata(dai); in hdmi_codec_hw_params() local
559 if (!hcp->hcd.ops->hw_params) in hdmi_codec_hw_params()
574 memcpy(hp.iec.status, hcp->iec_status, sizeof(hp.iec.status)); in hdmi_codec_hw_params()
584 return hcp->hcd.ops->hw_params(dai->dev->parent, hcp->hcd.data, in hdmi_codec_hw_params()
591 struct hdmi_codec_priv *hcp = snd_soc_dai_get_drvdata(dai); in hdmi_codec_prepare() local
600 if (!hcp->hcd.ops->prepare) in hdmi_codec_prepare()
610 memcpy(hp.iec.status, hcp->iec_status, sizeof(hp.iec.status)); in hdmi_codec_prepare()
620 return hcp->hcd.ops->prepare(dai->dev->parent, hcp->hcd.data, in hdmi_codec_prepare()
693 struct hdmi_codec_priv *hcp = snd_soc_dai_get_drvdata(dai); in hdmi_codec_mute() local
701 if (hcp->hcd.ops->mute_stream && in hdmi_codec_mute()
703 !hcp->hcd.ops->no_capture_mute)) in hdmi_codec_mute()
704 return hcp->hcd.ops->mute_stream(dai->dev->parent, in hdmi_codec_mute()
705 hcp->hcd.data, in hdmi_codec_mute()
779 struct hdmi_codec_priv *hcp = snd_soc_dai_get_drvdata(dai); in hdmi_codec_pcm_new() local
785 &hcp->chmap_info); in hdmi_codec_pcm_new()
790 hcp->chmap_info->private_data = hcp; in hdmi_codec_pcm_new()
791 hcp->chmap_info->kctl->get = hdmi_codec_chmap_ctl_get; in hdmi_codec_pcm_new()
794 hcp->chmap_info->chmap = hdmi_codec_stereo_chmaps; in hdmi_codec_pcm_new()
795 hcp->chmap_idx = HDMI_CODEC_CHMAP_IDX_UNKNOWN; in hdmi_codec_pcm_new()
851 static void hdmi_codec_jack_report(struct hdmi_codec_priv *hcp, in hdmi_codec_jack_report() argument
854 if (jack_status != hcp->jack_status) { in hdmi_codec_jack_report()
855 if (hcp->jack) in hdmi_codec_jack_report()
856 snd_soc_jack_report(hcp->jack, jack_status, SND_JACK_LINEOUT); in hdmi_codec_jack_report()
857 hcp->jack_status = jack_status; in hdmi_codec_jack_report()
863 struct hdmi_codec_priv *hcp = dev_get_drvdata(dev); in plugged_cb() local
866 if (hcp->hcd.ops->get_eld) { in plugged_cb()
867 hcp->hcd.ops->get_eld(dev->parent, hcp->hcd.data, in plugged_cb()
868 hcp->eld, sizeof(hcp->eld)); in plugged_cb()
870 hdmi_codec_jack_report(hcp, SND_JACK_LINEOUT); in plugged_cb()
872 hdmi_codec_jack_report(hcp, 0); in plugged_cb()
873 memset(hcp->eld, 0, sizeof(hcp->eld)); in plugged_cb()
881 struct hdmi_codec_priv *hcp = snd_soc_component_get_drvdata(component); in hdmi_codec_set_jack() local
883 if (hcp->hcd.ops->hook_plugged_cb) { in hdmi_codec_set_jack()
884 hcp->jack = jack; in hdmi_codec_set_jack()
890 snd_soc_jack_report(jack, hcp->jack_status, SND_JACK_LINEOUT); in hdmi_codec_set_jack()
980 struct hdmi_codec_priv *hcp = snd_soc_component_get_drvdata(component); in hdmi_of_xlate_dai_id() local
983 if (hcp->hcd.ops->get_dai_id) in hdmi_of_xlate_dai_id()
984 ret = hcp->hcd.ops->get_dai_id(component, endpoint); in hdmi_of_xlate_dai_id()
991 struct hdmi_codec_priv *hcp = snd_soc_component_get_drvdata(component); in hdmi_probe() local
994 if (hcp->hcd.ops->hook_plugged_cb) { in hdmi_probe()
995 ret = hcp->hcd.ops->hook_plugged_cb(component->dev->parent, in hdmi_probe()
996 hcp->hcd.data, in hdmi_probe()
1006 struct hdmi_codec_priv *hcp = snd_soc_component_get_drvdata(component); in hdmi_remove() local
1008 if (hcp->hcd.ops->hook_plugged_cb) in hdmi_remove()
1009 hcp->hcd.ops->hook_plugged_cb(component->dev->parent, in hdmi_remove()
1010 hcp->hcd.data, NULL, NULL); in hdmi_remove()
1030 struct hdmi_codec_priv *hcp; in hdmi_codec_probe() local
1047 hcp = devm_kzalloc(dev, sizeof(*hcp), GFP_KERNEL); in hdmi_codec_probe()
1048 if (!hcp) in hdmi_codec_probe()
1051 hcp->hcd = *hcd; in hdmi_codec_probe()
1052 mutex_init(&hcp->lock); in hdmi_codec_probe()
1054 ret = snd_pcm_create_iec958_consumer_default(hcp->iec_status, in hdmi_codec_probe()
1055 sizeof(hcp->iec_status)); in hdmi_codec_probe()
1085 dev_set_drvdata(dev, hcp); in hdmi_codec_probe()