Merge "asoc: add support for assigning SLIMbus device ID dynamically"

This commit is contained in:
Linux Build Service Account 2019-03-12 02:58:38 -07:00 • committed by Gerrit - the friendly Code Review server
commit 8766446f90

View file

@ -2241,22 +2241,6 @@ static int msm_dai_q6_slim_bus_hw_params(struct snd_pcm_hw_params *params,
dai_data->port_config.slim_sch.sample_rate = dai_data->rate;
dai_data->port_config.slim_sch.num_channels = dai_data->channels;
switch (dai->id) {
case SLIMBUS_7_RX:
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;
default:
dai_data->port_config.slim_sch.slimbus_dev_id =
AFE_SLIMBUS_DEVICE_1;
break;
}
dev_dbg(dai->dev, "%s:slimbus_dev_id[%hu] bit_wd[%hu] format[%hu]\n"
"num_channel %hu shared_ch_mapping[0] %hu\n"
"slave_port_mapping[1] %hu slave_port_mapping[2] %hu\n"
@ -3509,6 +3493,31 @@ static const struct snd_kcontrol_new avd_drift_config_controls[] = {
.get = msm_dai_q6_slim_rx_drift_get,
},
};
static inline void msm_dai_q6_set_slim_dev_id(struct snd_soc_dai *dai)
{
int rc = 0;
int slim_dev_id = 0;
const char *q6_slim_dev_id = "qcom,msm-dai-q6-slim-dev-id";
struct msm_dai_q6_dai_data *dai_data = dev_get_drvdata(dai->dev);
dai_data->port_config.slim_sch.slimbus_dev_id = AFE_SLIMBUS_DEVICE_1;
rc = of_property_read_u32(dai->dev->of_node, q6_slim_dev_id,
&slim_dev_id);
if (rc) {
dev_dbg(dai->dev,
"%s: missing %s in dt node\n", __func__, q6_slim_dev_id);
return;
}
dev_dbg(dai->dev, "%s: slim_dev_id = %d\n", __func__, slim_dev_id);
if (slim_dev_id >= AFE_SLIMBUS_DEVICE_1 &&
slim_dev_id <= AFE_SLIMBUS_DEVICE_2)
dai_data->port_config.slim_sch.slimbus_dev_id = slim_dev_id;
}
static int msm_dai_q6_dai_probe(struct snd_soc_dai *dai)
{
struct msm_dai_q6_dai_data *dai_data;
@ -3532,6 +3541,9 @@ static int msm_dai_q6_dai_probe(struct snd_soc_dai *dai)
msm_dai_q6_set_dai_id(dai);
if ((dai->id >= SLIMBUS_0_RX) && (dai->id <= SLIMBUS_9_TX))
msm_dai_q6_set_slim_dev_id(dai);
switch (dai->id) {
case SLIMBUS_4_TX:
rc = snd_ctl_add(dai->component->card->snd_card,