Loading asoc/bengal.c +45 −9 Original line number Diff line number Diff line Loading @@ -59,10 +59,12 @@ #define WCD9XXX_MBHC_DEF_RLOADS 5 #define WCD9XXX_MBHC_DEF_BUTTONS 8 #define ROULEUR_MBHC_DEF_BUTTONS 5 #define CODEC_EXT_CLK_RATE 9600000 #define ADSP_STATE_READY_TIMEOUT_MS 3000 #define DEV_NAME_STR_LEN 32 #define WCD_MBHC_HS_V_MAX 1600 #define ROULEUR_MBHC_HS_V_MAX 1700 #define TDM_CHANNEL_MAX 8 #define DEV_NAME_STR_LEN 32 Loading Loading @@ -555,6 +557,7 @@ static int dmic_0_1_gpio_cnt; static int dmic_2_3_gpio_cnt; static void *def_wcd_mbhc_cal(void); static void *def_rouleur_mbhc_cal(void); /* * Need to report LINEIN Loading Loading @@ -4344,6 +4347,34 @@ static void *def_wcd_mbhc_cal(void) return wcd_mbhc_cal; } static void *def_rouleur_mbhc_cal(void) { void *wcd_mbhc_cal; struct wcd_mbhc_btn_detect_cfg *btn_cfg; u16 *btn_high; wcd_mbhc_cal = kzalloc(WCD_MBHC_CAL_SIZE(ROULEUR_MBHC_DEF_BUTTONS, WCD9XXX_MBHC_DEF_RLOADS), GFP_KERNEL); if (!wcd_mbhc_cal) return NULL; WCD_MBHC_CAL_PLUG_TYPE_PTR(wcd_mbhc_cal)->v_hs_max = ROULEUR_MBHC_HS_V_MAX; WCD_MBHC_CAL_BTN_DET_PTR(wcd_mbhc_cal)->num_btn = ROULEUR_MBHC_DEF_BUTTONS; 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); btn_high[0] = 75; btn_high[1] = 150; btn_high[2] = 237; btn_high[3] = 500; btn_high[4] = 500; return wcd_mbhc_cal; } /* Digital audio interface glue - connects codec <---> CPU */ static struct snd_soc_dai_link msm_common_dai_links[] = { /* FrontEnd DAI Links */ Loading Loading @@ -6116,16 +6147,21 @@ static int msm_aux_codec_init(struct snd_soc_component *component) } mbhc_cfg_cal: if (data != NULL) { if (!strncmp(data, "wcd937x", sizeof("wcd937x"))) { mbhc_calibration = def_wcd_mbhc_cal(); if (!mbhc_calibration) return -ENOMEM; wcd_mbhc_cfg.calibration = mbhc_calibration; if (data != NULL) { if (!strncmp(data, "wcd937x", sizeof("wcd937x"))) ret = wcd937x_mbhc_hs_detect(component, &wcd_mbhc_cfg); else if (!strncmp( data, "rouleur", sizeof("rouleur"))) } else if (!strncmp( data, "rouleur", sizeof("rouleur"))) { mbhc_calibration = def_rouleur_mbhc_cal(); if (!mbhc_calibration) return -ENOMEM; wcd_mbhc_cfg.calibration = mbhc_calibration; ret = rouleur_mbhc_hs_detect(component, &wcd_mbhc_cfg); } } if (ret) { dev_err(component->dev, "%s: mbhc hs detect failed, err:%d\n", Loading Loading
asoc/bengal.c +45 −9 Original line number Diff line number Diff line Loading @@ -59,10 +59,12 @@ #define WCD9XXX_MBHC_DEF_RLOADS 5 #define WCD9XXX_MBHC_DEF_BUTTONS 8 #define ROULEUR_MBHC_DEF_BUTTONS 5 #define CODEC_EXT_CLK_RATE 9600000 #define ADSP_STATE_READY_TIMEOUT_MS 3000 #define DEV_NAME_STR_LEN 32 #define WCD_MBHC_HS_V_MAX 1600 #define ROULEUR_MBHC_HS_V_MAX 1700 #define TDM_CHANNEL_MAX 8 #define DEV_NAME_STR_LEN 32 Loading Loading @@ -555,6 +557,7 @@ static int dmic_0_1_gpio_cnt; static int dmic_2_3_gpio_cnt; static void *def_wcd_mbhc_cal(void); static void *def_rouleur_mbhc_cal(void); /* * Need to report LINEIN Loading Loading @@ -4344,6 +4347,34 @@ static void *def_wcd_mbhc_cal(void) return wcd_mbhc_cal; } static void *def_rouleur_mbhc_cal(void) { void *wcd_mbhc_cal; struct wcd_mbhc_btn_detect_cfg *btn_cfg; u16 *btn_high; wcd_mbhc_cal = kzalloc(WCD_MBHC_CAL_SIZE(ROULEUR_MBHC_DEF_BUTTONS, WCD9XXX_MBHC_DEF_RLOADS), GFP_KERNEL); if (!wcd_mbhc_cal) return NULL; WCD_MBHC_CAL_PLUG_TYPE_PTR(wcd_mbhc_cal)->v_hs_max = ROULEUR_MBHC_HS_V_MAX; WCD_MBHC_CAL_BTN_DET_PTR(wcd_mbhc_cal)->num_btn = ROULEUR_MBHC_DEF_BUTTONS; 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); btn_high[0] = 75; btn_high[1] = 150; btn_high[2] = 237; btn_high[3] = 500; btn_high[4] = 500; return wcd_mbhc_cal; } /* Digital audio interface glue - connects codec <---> CPU */ static struct snd_soc_dai_link msm_common_dai_links[] = { /* FrontEnd DAI Links */ Loading Loading @@ -6116,16 +6147,21 @@ static int msm_aux_codec_init(struct snd_soc_component *component) } mbhc_cfg_cal: if (data != NULL) { if (!strncmp(data, "wcd937x", sizeof("wcd937x"))) { mbhc_calibration = def_wcd_mbhc_cal(); if (!mbhc_calibration) return -ENOMEM; wcd_mbhc_cfg.calibration = mbhc_calibration; if (data != NULL) { if (!strncmp(data, "wcd937x", sizeof("wcd937x"))) ret = wcd937x_mbhc_hs_detect(component, &wcd_mbhc_cfg); else if (!strncmp( data, "rouleur", sizeof("rouleur"))) } else if (!strncmp( data, "rouleur", sizeof("rouleur"))) { mbhc_calibration = def_rouleur_mbhc_cal(); if (!mbhc_calibration) return -ENOMEM; wcd_mbhc_cfg.calibration = mbhc_calibration; ret = rouleur_mbhc_hs_detect(component, &wcd_mbhc_cfg); } } if (ret) { dev_err(component->dev, "%s: mbhc hs detect failed, err:%d\n", Loading