4f54856b4e
Split intel generic SoundWire machine driver private data into two structures. One structure is generic one which can be used by other platform machine driver and the other one is intel specific one. Move generic machine driver private data to soc_sdw_utils.h. Define a void pointer in generic machine driver private data structure and assign the vendor specific structure in mc_probe() call. Link: https://github.com/thesofproject/linux/pull/5068 Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com> Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://patch.msgid.link/20240801091446.10457-15-Vijendar.Mukunda@amd.com Signed-off-by: Mark Brown <broonie@kernel.org>
42 lines
1.1 KiB
C
42 lines
1.1 KiB
C
// SPDX-License-Identifier: GPL-2.0-only
|
|
// Copyright (c) 2020 Intel Corporation
|
|
|
|
/*
|
|
* sof_sdw_hdmi - Helpers to handle HDMI from generic machine driver
|
|
*/
|
|
|
|
#include <linux/device.h>
|
|
#include <linux/errno.h>
|
|
#include <linux/kernel.h>
|
|
#include <linux/list.h>
|
|
#include <sound/soc.h>
|
|
#include <sound/soc-acpi.h>
|
|
#include <sound/jack.h>
|
|
#include "sof_sdw_common.h"
|
|
#include "hda_dsp_common.h"
|
|
|
|
int sof_sdw_hdmi_init(struct snd_soc_pcm_runtime *rtd)
|
|
{
|
|
struct asoc_sdw_mc_private *ctx = snd_soc_card_get_drvdata(rtd->card);
|
|
struct intel_mc_ctx *intel_ctx = (struct intel_mc_ctx *)ctx->private;
|
|
struct snd_soc_dai *dai = snd_soc_rtd_to_codec(rtd, 0);
|
|
|
|
intel_ctx->hdmi.hdmi_comp = dai->component;
|
|
|
|
return 0;
|
|
}
|
|
|
|
int sof_sdw_hdmi_card_late_probe(struct snd_soc_card *card)
|
|
{
|
|
struct asoc_sdw_mc_private *ctx = snd_soc_card_get_drvdata(card);
|
|
struct intel_mc_ctx *intel_ctx = (struct intel_mc_ctx *)ctx->private;
|
|
|
|
if (!intel_ctx->hdmi.idisp_codec)
|
|
return 0;
|
|
|
|
if (!intel_ctx->hdmi.hdmi_comp)
|
|
return -EINVAL;
|
|
|
|
return hda_dsp_hdmi_build_controls(card, intel_ctx->hdmi.hdmi_comp);
|
|
}
|