audio-lnx: Add latest snapshot for audio drivers.
Propagate the changes based on latest snapshot for audio kernel source tree at below cutoff of kernel msm-4.9 - (aed56b2df75 - "drm/msm/sde: update te vsync enable sequence change") Change-Id: I7ed5102146986b81e5cb9ca55432360b3549b60c Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
This commit is contained in:

zatwierdzone przez
Gerrit - the friendly Code Review server

rodzic
8c87858751
commit
38070be30b
@@ -56,7 +56,6 @@
|
||||
|
||||
static int msm_ext_spk_control = 1;
|
||||
static struct wcd_mbhc_config *wcd_mbhc_cfg_ptr;
|
||||
bool codec_reg_done;
|
||||
|
||||
struct msm_asoc_wcd93xx_codec {
|
||||
void* (*get_afe_config_fn)(struct snd_soc_codec *codec,
|
||||
@@ -604,23 +603,23 @@ static int msm_vi_feed_tx_ch_put(struct snd_kcontrol *kcontrol,
|
||||
|
||||
static void *def_ext_mbhc_cal(void)
|
||||
{
|
||||
void *tavil_wcd_cal;
|
||||
void *wcd_mbhc_cal;
|
||||
struct wcd_mbhc_btn_detect_cfg *btn_cfg;
|
||||
u16 *btn_high;
|
||||
|
||||
tavil_wcd_cal = kzalloc(WCD_MBHC_CAL_SIZE(WCD_MBHC_DEF_BUTTONS,
|
||||
wcd_mbhc_cal = kzalloc(WCD_MBHC_CAL_SIZE(WCD_MBHC_DEF_BUTTONS,
|
||||
WCD9XXX_MBHC_DEF_RLOADS), GFP_KERNEL);
|
||||
if (!tavil_wcd_cal)
|
||||
if (!wcd_mbhc_cal)
|
||||
return NULL;
|
||||
|
||||
#define S(X, Y) ((WCD_MBHC_CAL_PLUG_TYPE_PTR(tavil_wcd_cal)->X) = (Y))
|
||||
#define S(X, Y) ((WCD_MBHC_CAL_PLUG_TYPE_PTR(wcd_mbhc_cal)->X) = (Y))
|
||||
S(v_hs_max, 1600);
|
||||
#undef S
|
||||
#define S(X, Y) ((WCD_MBHC_CAL_BTN_DET_PTR(tavil_wcd_cal)->X) = (Y))
|
||||
#define S(X, Y) ((WCD_MBHC_CAL_BTN_DET_PTR(wcd_mbhc_cal)->X) = (Y))
|
||||
S(num_btn, WCD_MBHC_DEF_BUTTONS);
|
||||
#undef S
|
||||
|
||||
btn_cfg = WCD_MBHC_CAL_BTN_DET_PTR(tavil_wcd_cal);
|
||||
btn_cfg = WCD_MBHC_CAL_BTN_DET_PTR(wcd_mbhc_cal);
|
||||
btn_high = ((void *)&btn_cfg->_v_btn_low) +
|
||||
(sizeof(btn_cfg->_v_btn_low[0]) * btn_cfg->num_btn);
|
||||
|
||||
@@ -633,7 +632,7 @@ static void *def_ext_mbhc_cal(void)
|
||||
btn_high[6] = 500;
|
||||
btn_high[7] = 500;
|
||||
|
||||
return tavil_wcd_cal;
|
||||
return wcd_mbhc_cal;
|
||||
}
|
||||
|
||||
static inline int param_is_mask(int p)
|
||||
@@ -1479,6 +1478,79 @@ static struct snd_soc_dapm_route wcd_audio_paths[] = {
|
||||
{"MIC BIAS4", NULL, "MCLK"},
|
||||
};
|
||||
|
||||
int msm_snd_card_tasha_late_probe(struct snd_soc_card *card)
|
||||
{
|
||||
const char *be_dl_name = LPASS_BE_SLIMBUS_0_RX;
|
||||
struct snd_soc_pcm_runtime *rtd;
|
||||
int ret = 0;
|
||||
void *mbhc_calibration;
|
||||
|
||||
rtd = snd_soc_get_pcm_runtime(card, be_dl_name);
|
||||
if (!rtd) {
|
||||
dev_err(card->dev,
|
||||
"%s: snd_soc_get_pcm_runtime for %s failed!\n",
|
||||
__func__, be_dl_name);
|
||||
ret = -EINVAL;
|
||||
goto err_pcm_runtime;
|
||||
}
|
||||
|
||||
mbhc_calibration = def_ext_mbhc_cal();
|
||||
if (!mbhc_calibration) {
|
||||
ret = -ENOMEM;
|
||||
goto err_mbhc_cal;
|
||||
}
|
||||
wcd_mbhc_cfg_ptr->calibration = mbhc_calibration;
|
||||
ret = tasha_mbhc_hs_detect(rtd->codec, wcd_mbhc_cfg_ptr);
|
||||
if (ret) {
|
||||
dev_err(card->dev, "%s: mbhc hs detect failed, err:%d\n",
|
||||
__func__, ret);
|
||||
goto err_hs_detect;
|
||||
}
|
||||
return 0;
|
||||
|
||||
err_hs_detect:
|
||||
kfree(mbhc_calibration);
|
||||
err_mbhc_cal:
|
||||
err_pcm_runtime:
|
||||
return ret;
|
||||
}
|
||||
|
||||
int msm_snd_card_tavil_late_probe(struct snd_soc_card *card)
|
||||
{
|
||||
const char *be_dl_name = LPASS_BE_SLIMBUS_0_RX;
|
||||
struct snd_soc_pcm_runtime *rtd;
|
||||
int ret = 0;
|
||||
void *mbhc_calibration;
|
||||
|
||||
rtd = snd_soc_get_pcm_runtime(card, be_dl_name);
|
||||
if (!rtd) {
|
||||
dev_err(card->dev,
|
||||
"%s: snd_soc_get_pcm_runtime for %s failed!\n",
|
||||
__func__, be_dl_name);
|
||||
ret = -EINVAL;
|
||||
goto err;
|
||||
}
|
||||
|
||||
mbhc_calibration = def_ext_mbhc_cal();
|
||||
if (!mbhc_calibration) {
|
||||
ret = -ENOMEM;
|
||||
goto err;
|
||||
}
|
||||
wcd_mbhc_cfg_ptr->calibration = mbhc_calibration;
|
||||
ret = tavil_mbhc_hs_detect(rtd->codec, wcd_mbhc_cfg_ptr);
|
||||
if (ret) {
|
||||
dev_err(card->dev, "%s: mbhc hs detect failed, err:%d\n",
|
||||
__func__, ret);
|
||||
goto err_free_mbhc_cal;
|
||||
}
|
||||
return 0;
|
||||
|
||||
err_free_mbhc_cal:
|
||||
kfree(mbhc_calibration);
|
||||
err:
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* msm_audrx_init - Audio init function of sound card instantiate.
|
||||
*
|
||||
@@ -1699,7 +1771,6 @@ int msm_audrx_init(struct snd_soc_pcm_runtime *rtd)
|
||||
if (!entry) {
|
||||
pr_debug("%s: Cannot create codecs module entry\n",
|
||||
__func__);
|
||||
pdata->codec_root = NULL;
|
||||
goto done;
|
||||
}
|
||||
pdata->codec_root = entry;
|
||||
@@ -1722,50 +1793,17 @@ int msm_audrx_init(struct snd_soc_pcm_runtime *rtd)
|
||||
if (!entry) {
|
||||
pr_debug("%s: Cannot create codecs module entry\n",
|
||||
__func__);
|
||||
ret = 0;
|
||||
goto err_snd_module;
|
||||
goto done;
|
||||
}
|
||||
pdata->codec_root = entry;
|
||||
tasha_codec_info_create_codec_entry(pdata->codec_root, codec);
|
||||
tasha_mbhc_zdet_gpio_ctrl(msm_config_hph_en0_gpio, rtd->codec);
|
||||
}
|
||||
|
||||
wcd_mbhc_cfg_ptr->calibration = def_ext_mbhc_cal();
|
||||
if (!strcmp(dev_name(codec_dai->dev), "tavil_codec")) {
|
||||
if (wcd_mbhc_cfg_ptr->calibration) {
|
||||
pdata->codec = codec;
|
||||
ret = tavil_mbhc_hs_detect(codec, wcd_mbhc_cfg_ptr);
|
||||
if (ret < 0)
|
||||
pr_err("%s: Failed to intialise mbhc %d\n",
|
||||
__func__, ret);
|
||||
} else {
|
||||
pr_err("%s: wcd_mbhc_cfg calibration is NULL\n",
|
||||
__func__);
|
||||
ret = -ENOMEM;
|
||||
goto err_mbhc_cal;
|
||||
}
|
||||
} else {
|
||||
if (wcd_mbhc_cfg_ptr->calibration) {
|
||||
pdata->codec = codec;
|
||||
ret = tasha_mbhc_hs_detect(codec, wcd_mbhc_cfg_ptr);
|
||||
if (ret < 0)
|
||||
pr_err("%s: Failed to intialise mbhc %d\n",
|
||||
__func__, ret);
|
||||
} else {
|
||||
pr_err("%s: wcd_mbhc_cfg calibration is NULL\n",
|
||||
__func__);
|
||||
ret = -ENOMEM;
|
||||
goto err_mbhc_cal;
|
||||
}
|
||||
|
||||
}
|
||||
codec_reg_done = true;
|
||||
done:
|
||||
msm_set_codec_reg_done(true);
|
||||
return 0;
|
||||
|
||||
err_snd_module:
|
||||
err_afe_cfg:
|
||||
err_mbhc_cal:
|
||||
return ret;
|
||||
}
|
||||
EXPORT_SYMBOL(msm_audrx_init);
|
||||
|
Reference in New Issue
Block a user