Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4f4c73da authored by Banajit Goswami's avatar Banajit Goswami
Browse files

ASoC: msm-hdmi-codec-rx: update check for HDMI core state



HDMI Tx core driver API "hdmi_cable_status" returns 0
if cable is not connected and returns "1" if cable is
connected. Audio session should only be started when
HDMI cable status is "1". Update HDMI codec driver to
have this status correctly conveyed to HDMI audio
sessions on startup to notify the active audio session
not to proceed with HDMI audio settings any further.

Change-Id: Iabe450c28ac2ff5463a1f7d6dbb6c31b5ff1d80c
Signed-off-by: default avatarBanajit Goswami <bgoswami@codeaurora.org>
parent 62a8ead9
Loading
Loading
Loading
Loading
+17 −3
Original line number Diff line number Diff line
@@ -86,6 +86,7 @@ static int msm_hdmi_audio_codec_rx_dai_startup(
		struct snd_pcm_substream *substream,
		struct snd_soc_dai *dai)
{
	int ret = 0;
	struct msm_hdmi_audio_codec_rx_data *codec_data =
			dev_get_drvdata(dai->codec->dev);

@@ -94,10 +95,17 @@ static int msm_hdmi_audio_codec_rx_dai_startup(
		codec_data->hdmi_core_pdev, 1);
	if (IS_ERR_VALUE(msm_hdmi_audio_codec_return_value)) {
		dev_err(dai->dev,
			"%s() HDMI core is not ready\n", __func__);
			"%s() HDMI core is not ready (ret val = %d)\n",
			__func__, msm_hdmi_audio_codec_return_value);
		ret = msm_hdmi_audio_codec_return_value;
	} else if (!msm_hdmi_audio_codec_return_value) {
		dev_err(dai->dev,
			"%s() HDMI cable is not connected (ret val = %d)\n",
			__func__, msm_hdmi_audio_codec_return_value);
		ret = -EAGAIN;
	}

	return msm_hdmi_audio_codec_return_value;
	return ret;
}

static int msm_hdmi_audio_codec_rx_dai_hw_params(
@@ -116,8 +124,14 @@ static int msm_hdmi_audio_codec_rx_dai_hw_params(

	if (IS_ERR_VALUE(msm_hdmi_audio_codec_return_value)) {
		dev_err(dai->dev,
			"%s() HDMI core is not ready\n", __func__);
			"%s() HDMI core is not ready (ret val = %d)\n",
			__func__, msm_hdmi_audio_codec_return_value);
		return msm_hdmi_audio_codec_return_value;
	} else if (!msm_hdmi_audio_codec_return_value) {
		dev_err(dai->dev,
			"%s() HDMI cable is not connected (ret val = %d)\n",
			__func__, msm_hdmi_audio_codec_return_value);
		return -EAGAIN;
	}

	/*refer to HDMI spec CEA-861-E: Table 28 Audio InfoFrame Data Byte 4*/