44 lines · c
1// SPDX-License-Identifier: GPL-2.0-only2// Copyright (c) 2020 Intel Corporation3 4/*5 * sof_sdw_hdmi - Helpers to handle HDMI from generic machine driver6 */7 8#include <linux/acpi.h>9#include <linux/device.h>10#include <linux/errno.h>11#include <linux/kernel.h>12#include <linux/list.h>13#include <linux/soundwire/sdw_intel.h>14#include <sound/soc.h>15#include <sound/soc-acpi.h>16#include <sound/jack.h>17#include "sof_sdw_common.h"18#include "hda_dsp_common.h"19 20int sof_sdw_hdmi_init(struct snd_soc_pcm_runtime *rtd)21{22 struct asoc_sdw_mc_private *ctx = snd_soc_card_get_drvdata(rtd->card);23 struct intel_mc_ctx *intel_ctx = (struct intel_mc_ctx *)ctx->private;24 struct snd_soc_dai *dai = snd_soc_rtd_to_codec(rtd, 0);25 26 intel_ctx->hdmi.hdmi_comp = dai->component;27 28 return 0;29}30 31int sof_sdw_hdmi_card_late_probe(struct snd_soc_card *card)32{33 struct asoc_sdw_mc_private *ctx = snd_soc_card_get_drvdata(card);34 struct intel_mc_ctx *intel_ctx = (struct intel_mc_ctx *)ctx->private;35 36 if (!intel_ctx->hdmi.idisp_codec)37 return 0;38 39 if (!intel_ctx->hdmi.hdmi_comp)40 return -EINVAL;41 42 return hda_dsp_hdmi_build_controls(card, intel_ctx->hdmi.hdmi_comp);43}44