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

Commit 82cd1e42 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "asoc: add support for Slimbus 9 port"

parents 58ff6ed4 3ef3d81d
Loading
Loading
Loading
Loading
+48 −0
Original line number Diff line number Diff line
@@ -2176,6 +2176,8 @@ static int msm_dai_q6_slim_bus_hw_params(struct snd_pcm_hw_params *params,
	case SLIMBUS_7_TX:
	case SLIMBUS_8_RX:
	case SLIMBUS_8_TX:
	case SLIMBUS_9_RX:
	case SLIMBUS_9_TX:
		dai_data->port_config.slim_sch.slimbus_dev_id =
			AFE_SLIMBUS_DEVICE_2;
		break;
@@ -2350,6 +2352,7 @@ static int msm_dai_q6_hw_params(struct snd_pcm_substream *substream,
	case SLIMBUS_6_RX:
	case SLIMBUS_7_RX:
	case SLIMBUS_8_RX:
	case SLIMBUS_9_RX:
	case SLIMBUS_0_TX:
	case SLIMBUS_1_TX:
	case SLIMBUS_2_TX:
@@ -2359,6 +2362,7 @@ static int msm_dai_q6_hw_params(struct snd_pcm_substream *substream,
	case SLIMBUS_6_TX:
	case SLIMBUS_7_TX:
	case SLIMBUS_8_TX:
	case SLIMBUS_9_TX:
		rc = msm_dai_q6_slim_bus_hw_params(params, dai,
				substream->stream);
		break;
@@ -2475,6 +2479,7 @@ static int msm_dai_q6_set_channel_map(struct snd_soc_dai *dai,
	case SLIMBUS_6_RX:
	case SLIMBUS_7_RX:
	case SLIMBUS_8_RX:
	case SLIMBUS_9_RX:
		/*
		 * channel number to be between 128 and 255.
		 * For RX port use channel numbers
@@ -2512,6 +2517,7 @@ static int msm_dai_q6_set_channel_map(struct snd_soc_dai *dai,
	case SLIMBUS_6_TX:
	case SLIMBUS_7_TX:
	case SLIMBUS_8_TX:
	case SLIMBUS_9_TX:
		/*
		 * channel number to be between 128 and 255.
		 * For TX port use channel numbers
@@ -4023,6 +4029,22 @@ static struct snd_soc_dai_driver msm_dai_q6_slimbus_rx_dai[] = {
		.probe = msm_dai_q6_dai_probe,
		.remove = msm_dai_q6_dai_remove,
	},
	{
		.playback = {
			.stream_name = "Slimbus9 Playback",
			.aif_name = "SLIMBUS_9_RX",
			.rates = SNDRV_PCM_RATE_8000_384000,
			.formats = DAI_FORMATS_S16_S24_S32_LE,
			.channels_min = 1,
			.channels_max = 8,
			.rate_min = 8000,
			.rate_max = 384000,
		},
		.ops = &msm_dai_q6_ops,
		.id = SLIMBUS_9_RX,
		.probe = msm_dai_q6_dai_probe,
		.remove = msm_dai_q6_dai_remove,
	},
};

static struct snd_soc_dai_driver msm_dai_q6_slimbus_tx_dai[] = {
@@ -4202,6 +4224,26 @@ static struct snd_soc_dai_driver msm_dai_q6_slimbus_tx_dai[] = {
		.probe = msm_dai_q6_dai_probe,
		.remove = msm_dai_q6_dai_remove,
	},
	{
		.capture = {
			.stream_name = "Slimbus9 Capture",
			.aif_name = "SLIMBUS_9_TX",
			.rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 |
			SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_96000 |
			SNDRV_PCM_RATE_192000,
			.formats = SNDRV_PCM_FMTBIT_S16_LE |
				   SNDRV_PCM_FMTBIT_S24_LE |
				   SNDRV_PCM_FMTBIT_S32_LE,
			.channels_min = 1,
			.channels_max = 8,
			.rate_min = 8000,
			.rate_max = 192000,
		},
		.ops = &msm_dai_q6_ops,
		.id = SLIMBUS_9_TX,
		.probe = msm_dai_q6_dai_probe,
		.remove = msm_dai_q6_dai_remove,
	},
};

static int msm_dai_q6_mi2s_format_put(struct snd_kcontrol *kcontrol,
@@ -5484,6 +5526,9 @@ static int msm_dai_q6_dev_probe(struct platform_device *pdev)
	case SLIMBUS_8_RX:
		strlcpy(stream_name, "Slimbus8 Playback", sizeof(stream_name));
		goto register_slim_playback;
	case SLIMBUS_9_RX:
		strlcpy(stream_name, "Slimbus9 Playback", sizeof(stream_name));
		goto register_slim_playback;
register_slim_playback:
		rc = -ENODEV;
		len = strnlen(stream_name, 80);
@@ -5529,6 +5574,9 @@ static int msm_dai_q6_dev_probe(struct platform_device *pdev)
	case SLIMBUS_8_TX:
		strlcpy(stream_name, "Slimbus8 Capture", sizeof(stream_name));
		goto register_slim_capture;
	case SLIMBUS_9_TX:
		strlcpy(stream_name, "Slimbus9 Capture", sizeof(stream_name));
		goto register_slim_capture;
register_slim_capture:
		rc = -ENODEV;
		len = strnlen(stream_name, 80);
+155 −1
Original line number Diff line number Diff line
@@ -639,6 +639,8 @@ struct msm_pcm_routing_bdai_data msm_bedais[MSM_BACKEND_DAI_MAX] = {
	  LPASS_BE_SEC_SPDIF_RX},
	{ AFE_PORT_ID_SECONDARY_SPDIF_TX, 0, {0}, {0}, 0, 0, 0, 0,
	  LPASS_BE_SEC_SPDIF_TX},
	{ SLIMBUS_9_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_9_RX},
	{ SLIMBUS_9_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_9_TX},
};
/* Track ASM playback & capture sessions of DAI
@@ -6562,6 +6564,76 @@ static const struct snd_kcontrol_new slimbus_7_rx_mixer_controls[] = {
	msm_routing_put_audio_mixer),
};
static const struct snd_kcontrol_new slimbus_9_rx_mixer_controls[] = {
	SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
	MSM_BACKEND_DAI_SLIMBUS_9_RX,
	MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
	msm_routing_put_audio_mixer),
	SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
	MSM_BACKEND_DAI_SLIMBUS_9_RX,
	MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
	msm_routing_put_audio_mixer),
	SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
	MSM_BACKEND_DAI_SLIMBUS_9_RX,
	MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
	msm_routing_put_audio_mixer),
	SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
	MSM_BACKEND_DAI_SLIMBUS_9_RX,
	MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
	msm_routing_put_audio_mixer),
	SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
	MSM_BACKEND_DAI_SLIMBUS_9_RX,
	MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
	msm_routing_put_audio_mixer),
	SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
	MSM_BACKEND_DAI_SLIMBUS_9_RX,
	MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
	msm_routing_put_audio_mixer),
	SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
	MSM_BACKEND_DAI_SLIMBUS_9_RX,
	MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
	msm_routing_put_audio_mixer),
	SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
	MSM_BACKEND_DAI_SLIMBUS_9_RX,
	MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
	msm_routing_put_audio_mixer),
	SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
	MSM_BACKEND_DAI_SLIMBUS_9_RX,
	MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
	msm_routing_put_audio_mixer),
	SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
	MSM_BACKEND_DAI_SLIMBUS_9_RX,
	MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
	msm_routing_put_audio_mixer),
	SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
	MSM_BACKEND_DAI_SLIMBUS_9_RX,
	MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
	msm_routing_put_audio_mixer),
	SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
	MSM_BACKEND_DAI_SLIMBUS_9_RX,
	MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
	msm_routing_put_audio_mixer),
	SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
	MSM_BACKEND_DAI_SLIMBUS_9_RX,
	MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
	msm_routing_put_audio_mixer),
	SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
	MSM_BACKEND_DAI_SLIMBUS_9_RX,
	MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
	msm_routing_put_audio_mixer),
	SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
	MSM_BACKEND_DAI_SLIMBUS_9_RX,
	MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
	msm_routing_put_audio_mixer),
	SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
	MSM_BACKEND_DAI_SLIMBUS_9_RX,
	MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
	msm_routing_put_audio_mixer),
	SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
	MSM_BACKEND_DAI_SLIMBUS_9_RX,
	MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
	msm_routing_put_audio_mixer),
};
static const struct snd_kcontrol_new usb_audio_rx_mixer_controls[] = {
	SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
	MSM_BACKEND_DAI_USB_RX,
@@ -9470,6 +9542,10 @@ static const struct snd_kcontrol_new mmul1_mixer_controls[] = {
		MSM_BACKEND_DAI_SEC_SPDIF_TX,
		MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
		msm_routing_put_audio_mixer),
	SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
		MSM_BACKEND_DAI_SLIMBUS_9_TX,
		MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
		msm_routing_put_audio_mixer),
};
static const struct snd_kcontrol_new mmul2_mixer_controls[] = {
@@ -9661,6 +9737,10 @@ static const struct snd_kcontrol_new mmul2_mixer_controls[] = {
	MSM_BACKEND_DAI_SEC_SPDIF_TX,
	MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
	msm_routing_put_audio_mixer),
	SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
	MSM_BACKEND_DAI_SLIMBUS_9_TX,
	MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
	msm_routing_put_audio_mixer),
};
static const struct snd_kcontrol_new mmul3_mixer_controls[] = {
@@ -10250,6 +10330,10 @@ static const struct snd_kcontrol_new mmul5_mixer_controls[] = {
	MSM_BACKEND_DAI_SEC_SPDIF_TX,
	MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
	msm_routing_put_audio_mixer),
	SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
	MSM_BACKEND_DAI_SLIMBUS_9_TX,
	MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
	msm_routing_put_audio_mixer),
};
static const struct snd_kcontrol_new mmul6_mixer_controls[] = {
@@ -10636,6 +10720,10 @@ static const struct snd_kcontrol_new mmul8_mixer_controls[] = {
	MSM_BACKEND_DAI_SEC_SPDIF_TX,
	MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
	msm_routing_put_audio_mixer),
	SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
	MSM_BACKEND_DAI_SLIMBUS_9_TX,
	MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
	msm_routing_put_audio_mixer),
};
static const struct snd_kcontrol_new mmul16_mixer_controls[] = {
@@ -10837,6 +10925,10 @@ static const struct snd_kcontrol_new mmul16_mixer_controls[] = {
	MSM_BACKEND_DAI_SEC_SPDIF_TX,
	MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
	msm_routing_put_audio_mixer),
	SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
	MSM_BACKEND_DAI_SLIMBUS_9_TX,
	MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
	msm_routing_put_audio_mixer),
};
static const struct snd_kcontrol_new mmul9_mixer_controls[] = {
@@ -11137,6 +11229,10 @@ static const struct snd_kcontrol_new mmul10_mixer_controls[] = {
	MSM_BACKEND_DAI_SEC_SPDIF_TX,
	MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
	msm_routing_put_audio_mixer),
	SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
	MSM_BACKEND_DAI_SLIMBUS_9_TX,
	MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
	msm_routing_put_audio_mixer),
};
static const struct snd_kcontrol_new mmul17_mixer_controls[] = {
	SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
@@ -11784,6 +11880,10 @@ static const struct snd_kcontrol_new mmul27_mixer_controls[] = {
	MSM_BACKEND_DAI_SEC_SPDIF_TX,
	MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
	msm_routing_put_audio_mixer),
	SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
	MSM_BACKEND_DAI_SLIMBUS_9_TX,
	MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
	msm_routing_put_audio_mixer),
};
static const struct snd_kcontrol_new mmul28_mixer_controls[] = {
@@ -13507,6 +13607,10 @@ static const struct snd_kcontrol_new int0_mi2s_rx_port_mixer_controls[] = {
	MSM_BACKEND_DAI_INT0_MI2S_RX,
	MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
	msm_routing_put_port_mixer),
	SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
	MSM_BACKEND_DAI_INT0_MI2S_RX,
	MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
	msm_routing_put_port_mixer),
};
static const struct snd_kcontrol_new int4_mi2s_rx_port_mixer_controls[] = {
@@ -13550,6 +13654,10 @@ static const struct snd_kcontrol_new int4_mi2s_rx_port_mixer_controls[] = {
	MSM_BACKEND_DAI_INT4_MI2S_RX,
	MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
	msm_routing_put_port_mixer),
	SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
	MSM_BACKEND_DAI_INT4_MI2S_RX,
	MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
	msm_routing_put_port_mixer),
};
static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_port_mixer_controls[] = {
@@ -13576,6 +13684,10 @@ static const struct snd_kcontrol_new rx_cdc_dma_rx_0_port_mixer_controls[] = {
	MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
	MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
	msm_routing_put_port_mixer),
	SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
	MSM_BACKEND_DAI_INT4_MI2S_RX,
	MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
	msm_routing_put_port_mixer),
};
static const struct snd_kcontrol_new sbus_0_rx_port_mixer_controls[] = {
@@ -13667,6 +13779,10 @@ static const struct snd_kcontrol_new sbus_0_rx_port_mixer_controls[] = {
	MSM_BACKEND_DAI_SLIMBUS_0_RX,
	MSM_BACKEND_DAI_QUINARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
	msm_routing_put_port_mixer),
	SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
	MSM_BACKEND_DAI_SLIMBUS_0_RX,
	MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
	msm_routing_put_port_mixer),
};
static const struct snd_kcontrol_new aux_pcm_rx_port_mixer_controls[] = {
@@ -13859,6 +13975,10 @@ static const struct snd_kcontrol_new sbus_6_rx_port_mixer_controls[] = {
	MSM_BACKEND_DAI_SLIMBUS_6_RX,
	MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
	msm_routing_put_port_mixer),
	SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
	MSM_BACKEND_DAI_SLIMBUS_6_RX,
	MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
	msm_routing_put_port_mixer),
};
static const struct snd_kcontrol_new bt_sco_rx_port_mixer_controls[] = {
@@ -18697,6 +18817,8 @@ static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
	SND_SOC_DAPM_AIF_OUT("SLIMBUS_8_RX", "Slimbus8 Playback", 0, 0, 0, 0),
	SND_SOC_DAPM_AIF_IN("SLIMBUS_8_TX", "Slimbus8 Capture", 0, 0, 0, 0),
	SND_SOC_DAPM_AIF_OUT("SLIMBUS_9_RX", "Slimbus9 Playback", 0, 0, 0, 0),
	SND_SOC_DAPM_AIF_IN("SLIMBUS_9_TX", "Slimbus9 Capture", 0, 0, 0, 0),
	SND_SOC_DAPM_AIF_OUT("USB_AUDIO_RX", "USB Audio Playback", 0, 0, 0, 0),
	SND_SOC_DAPM_AIF_IN("USB_AUDIO_TX", "USB Audio Capture", 0, 0, 0, 0),
@@ -18757,6 +18879,8 @@ static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
	slimbus_5_rx_mixer_controls, ARRAY_SIZE(slimbus_5_rx_mixer_controls)),
	SND_SOC_DAPM_MIXER("SLIMBUS_7_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
	slimbus_7_rx_mixer_controls, ARRAY_SIZE(slimbus_7_rx_mixer_controls)),
	SND_SOC_DAPM_MIXER("SLIMBUS_9_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
	slimbus_9_rx_mixer_controls, ARRAY_SIZE(slimbus_9_rx_mixer_controls)),
	SND_SOC_DAPM_MIXER("HDMI Mixer", SND_SOC_NOPM, 0, 0,
	hdmi_mixer_controls, ARRAY_SIZE(hdmi_mixer_controls)),
	SND_SOC_DAPM_MIXER("DISPLAY_PORT Mixer", SND_SOC_NOPM, 0, 0,
@@ -19751,6 +19875,25 @@ static const struct snd_soc_dapm_route intercon[] = {
	{"SLIMBUS_7_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
	{"SLIMBUS_7_RX", NULL, "SLIMBUS_7_RX Audio Mixer"},
	{"SLIMBUS_9_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
	{"SLIMBUS_9_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
	{"SLIMBUS_9_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
	{"SLIMBUS_9_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
	{"SLIMBUS_9_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
	{"SLIMBUS_9_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
	{"SLIMBUS_9_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
	{"SLIMBUS_9_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
	{"SLIMBUS_9_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
	{"SLIMBUS_9_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
	{"SLIMBUS_9_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
	{"SLIMBUS_9_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
	{"SLIMBUS_9_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
	{"SLIMBUS_9_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
	{"SLIMBUS_9_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
	{"SLIMBUS_9_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
	{"SLIMBUS_9_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
	{"SLIMBUS_9_RX", NULL, "SLIMBUS_9_RX Audio Mixer"},
	{"USB_AUDIO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
	{"USB_AUDIO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
	{"USB_AUDIO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
@@ -19780,8 +19923,10 @@ static const struct snd_soc_dapm_route intercon[] = {
	{"MultiMedia1 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
	{"MultiMedia1 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
	{"MultiMedia1 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
	{"MultiMedia1 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
	{"MultiMedia8 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
	{"MultiMedia8 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
	{"MultiMedia8 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
	{"MultiMedia4 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
	{"MultiMedia17 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
	{"MultiMedia18 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
@@ -19815,7 +19960,9 @@ static const struct snd_soc_dapm_route intercon[] = {
	{"MultiMedia16 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
	{"MultiMedia5 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
	{"MultiMedia5 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
	{"MultiMedia5 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
	{"MultiMedia10 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
	{"MultiMedia10 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
	{"MultiMedia18 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
	{"MultiMedia18 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
@@ -20895,6 +21042,7 @@ static const struct snd_soc_dapm_route intercon[] = {
	{"MultiMedia27 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
	{"MultiMedia27 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
	{"MultiMedia27 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
	{"MultiMedia27 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
	{"MultiMedia27 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
	{"MultiMedia27 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
	{"MultiMedia27 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
@@ -22246,6 +22394,7 @@ static const struct snd_soc_dapm_route intercon[] = {
	{"INT0_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
	{"INT0_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
	{"INT0_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
	{"INT0_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
	{"INT0_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
	{"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Port Mixer"},
@@ -22257,6 +22406,7 @@ static const struct snd_soc_dapm_route intercon[] = {
	{"INT4_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
	{"INT4_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
	{"INT4_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
	{"INT4_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
	{"INT4_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
	{"INT4_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
	{"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Port Mixer"},
@@ -22273,6 +22423,7 @@ static const struct snd_soc_dapm_route intercon[] = {
	{"SLIMBUS_0_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
	{"SLIMBUS_0_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
	{"SLIMBUS_0_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
	{"SLIMBUS_0_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
	{"SLIMBUS_0_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
	{"SLIMBUS_0_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
	{"SLIMBUS_0_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
@@ -22417,6 +22568,7 @@ static const struct snd_soc_dapm_route intercon[] = {
	{"SLIMBUS_6_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
	{"SLIMBUS_6_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
	{"SLIMBUS_6_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
	{"SLIMBUS_6_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
	{"SLIMBUS_6_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
	{"SLIMBUS_6_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
	{"SLIMBUS_6_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
@@ -22507,6 +22659,7 @@ static const struct snd_soc_dapm_route intercon[] = {
	{"BE_OUT", NULL, "SLIMBUS_6_RX"},
	{"BE_OUT", NULL, "SLIMBUS_7_RX"},
	{"BE_OUT", NULL, "SLIMBUS_8_RX"},
	{"BE_OUT", NULL, "SLIMBUS_9_RX"},
	{"BE_OUT", NULL, "USB_AUDIO_RX"},
	{"BE_OUT", NULL, "HDMI"},
	{"BE_OUT", NULL, "DISPLAY_PORT"},
@@ -22594,6 +22747,7 @@ static const struct snd_soc_dapm_route intercon[] = {
	{"SLIMBUS_6_TX", NULL, "BE_IN" },
	{"SLIMBUS_7_TX", NULL, "BE_IN" },
	{"SLIMBUS_8_TX", NULL, "BE_IN" },
	{"SLIMBUS_9_TX", NULL, "BE_IN" },
	{"USB_AUDIO_TX", NULL, "BE_IN" },
	{"INT_BT_SCO_TX", NULL, "BE_IN"},
	{"INT_FM_TX", NULL, "BE_IN"},
+4 −0
Original line number Diff line number Diff line
@@ -170,6 +170,8 @@
#define LPASS_BE_SLIMBUS_7_TX "SLIMBUS_7_TX"
#define LPASS_BE_SLIMBUS_8_RX "SLIMBUS_8_RX"
#define LPASS_BE_SLIMBUS_8_TX "SLIMBUS_8_TX"
#define LPASS_BE_SLIMBUS_9_RX "SLIMBUS_9_RX"
#define LPASS_BE_SLIMBUS_9_TX "SLIMBUS_9_TX"

#define LPASS_BE_USB_AUDIO_RX "USB_AUDIO_RX"
#define LPASS_BE_USB_AUDIO_TX "USB_AUDIO_TX"
@@ -453,6 +455,8 @@ enum {
	MSM_BACKEND_DAI_PRI_SPDIF_TX,
	MSM_BACKEND_DAI_SEC_SPDIF_RX,
	MSM_BACKEND_DAI_SEC_SPDIF_TX,
	MSM_BACKEND_DAI_SLIMBUS_9_RX,
	MSM_BACKEND_DAI_SLIMBUS_9_TX,
	MSM_BACKEND_DAI_MAX,
};

+10 −0
Original line number Diff line number Diff line
@@ -839,6 +839,8 @@ int afe_sizeof_cfg_cmd(u16 port_id)
	case SLIMBUS_7_TX:
	case SLIMBUS_8_RX:
	case SLIMBUS_8_TX:
	case SLIMBUS_9_RX:
	case SLIMBUS_9_TX:
		ret_size = SIZEOF_CFG_CMD(afe_param_id_slimbus_cfg);
		break;
	case VOICE_PLAYBACK_TX:
@@ -4041,6 +4043,8 @@ static int __afe_port_start(u16 port_id, union afe_port_config *afe_config,
	case SLIMBUS_7_TX:
	case SLIMBUS_8_RX:
	case SLIMBUS_8_TX:
	case SLIMBUS_9_RX:
	case SLIMBUS_9_TX:
		cfg_type = AFE_PARAM_ID_SLIMBUS_CONFIG;
		break;
	case AFE_PORT_ID_USB_RX:
@@ -4288,6 +4292,8 @@ int afe_get_port_index(u16 port_id)
	case SLIMBUS_7_TX: return IDX_SLIMBUS_7_TX;
	case SLIMBUS_8_RX: return IDX_SLIMBUS_8_RX;
	case SLIMBUS_8_TX: return IDX_SLIMBUS_8_TX;
	case SLIMBUS_9_RX: return IDX_SLIMBUS_9_RX;
	case SLIMBUS_9_TX: return IDX_SLIMBUS_9_TX;
	case AFE_PORT_ID_USB_RX: return IDX_AFE_PORT_ID_USB_RX;
	case AFE_PORT_ID_USB_TX: return IDX_AFE_PORT_ID_USB_TX;
	case AFE_PORT_ID_PRIMARY_MI2S_RX:
@@ -4685,6 +4691,8 @@ int afe_open(u16 port_id,
	case SLIMBUS_7_TX:
	case SLIMBUS_8_RX:
	case SLIMBUS_8_TX:
	case SLIMBUS_9_RX:
	case SLIMBUS_9_TX:
		cfg_type = AFE_PARAM_ID_SLIMBUS_CONFIG;
		break;
	case AFE_PORT_ID_USB_RX:
@@ -6557,6 +6565,8 @@ int afe_validate_port(u16 port_id)
	case SLIMBUS_7_TX:
	case SLIMBUS_8_RX:
	case SLIMBUS_8_TX:
	case SLIMBUS_9_RX:
	case SLIMBUS_9_TX:
	case AFE_PORT_ID_USB_RX:
	case AFE_PORT_ID_USB_TX:
	case AFE_PORT_ID_PRIMARY_MI2S_RX:
+6 −0
Original line number Diff line number Diff line
@@ -79,6 +79,8 @@ int q6audio_get_port_index(u16 port_id)
	case SLIMBUS_7_TX: return IDX_SLIMBUS_7_TX;
	case SLIMBUS_8_RX: return IDX_SLIMBUS_8_RX;
	case SLIMBUS_8_TX: return IDX_SLIMBUS_8_TX;
	case SLIMBUS_9_RX: return IDX_SLIMBUS_9_RX;
	case SLIMBUS_9_TX: return IDX_SLIMBUS_9_TX;
	case INT_BT_SCO_RX: return IDX_INT_BT_SCO_RX;
	case INT_BT_SCO_TX: return IDX_INT_BT_SCO_TX;
	case INT_BT_A2DP_RX: return IDX_INT_BT_A2DP_RX;
@@ -415,6 +417,8 @@ int q6audio_get_port_id(u16 port_id)
	case SLIMBUS_7_TX: return AFE_PORT_ID_SLIMBUS_MULTI_CHAN_7_TX;
	case SLIMBUS_8_RX: return AFE_PORT_ID_SLIMBUS_MULTI_CHAN_8_RX;
	case SLIMBUS_8_TX: return AFE_PORT_ID_SLIMBUS_MULTI_CHAN_8_TX;
	case SLIMBUS_9_RX: return AFE_PORT_ID_SLIMBUS_MULTI_CHAN_9_RX;
	case SLIMBUS_9_TX: return AFE_PORT_ID_SLIMBUS_MULTI_CHAN_9_TX;
	case INT_BT_SCO_RX: return AFE_PORT_ID_INTERNAL_BT_SCO_RX;
	case INT_BT_SCO_TX: return AFE_PORT_ID_INTERNAL_BT_SCO_TX;
	case INT_BT_A2DP_RX: return AFE_PORT_ID_INTERNAL_BT_A2DP_RX;
@@ -925,6 +929,8 @@ int q6audio_validate_port(u16 port_id)
	case SLIMBUS_7_TX:
	case SLIMBUS_8_RX:
	case SLIMBUS_8_TX:
	case SLIMBUS_9_RX:
	case SLIMBUS_9_TX:
	case INT_BT_SCO_RX:
	case INT_BT_SCO_TX:
	case INT_BT_A2DP_RX:
Loading