ASoC: wcd: modify tasha version check macros

TASHA_IS_1_1 macro checks only for version number.
This macro returns true for tavil codec. So modify
tasha macros to check for codec and version.

CRs-Fixed: 1066331
Change-Id: I5240e0ee888187a8185974ea288ce2cad62bd776
Signed-off-by: Yeleswarapu Nagaradhesh <nagaradh@codeaurora.org>
This commit is contained in:
Yeleswarapu Nagaradhesh 2016-07-31 15:10:55 -07:00
parent 9b82a4c589
commit 971aeb6add
3 changed files with 48 additions and 42 deletions

View file

@ -53,12 +53,18 @@
#define TASHA_VERSION_1_0 0
#define TASHA_VERSION_1_1 1
#define TASHA_VERSION_2_0 2
#define TASHA_IS_1_0(ver) \
((ver == TASHA_VERSION_1_0) ? 1 : 0)
#define TASHA_IS_1_1(ver) \
((ver == TASHA_VERSION_1_1) ? 1 : 0)
#define TASHA_IS_2_0(ver) \
((ver == TASHA_VERSION_2_0) ? 1 : 0)
#define TASHA_IS_1_0(wcd) \
((wcd->type == WCD9335 || wcd->type == WCD9326) ? \
((wcd->version == TASHA_VERSION_1_0) ? 1 : 0) : 0)
#define TASHA_IS_1_1(wcd) \
((wcd->type == WCD9335 || wcd->type == WCD9326) ? \
((wcd->version == TASHA_VERSION_1_1) ? 1 : 0) : 0)
#define TASHA_IS_2_0(wcd) \
((wcd->type == WCD9335 || wcd->type == WCD9326) ? \
((wcd->version == TASHA_VERSION_2_0) ? 1 : 0) : 0)
#define IS_CODEC_TYPE(wcd, wcdtype) \
((wcd->type == wcdtype) ? true : false)

View file

@ -1114,7 +1114,7 @@ static void tasha_cdc_sido_ccl_enable(struct tasha_priv *tasha, bool ccl_flag)
if (!codec)
return;
if (!TASHA_IS_2_0(tasha->wcd9xxx->version)) {
if (!TASHA_IS_2_0(tasha->wcd9xxx)) {
dev_dbg(codec->dev, "%s: tasha version < 2p0, return\n",
__func__);
return;
@ -1139,7 +1139,7 @@ static void tasha_cdc_sido_ccl_enable(struct tasha_priv *tasha, bool ccl_flag)
static bool tasha_cdc_is_svs_enabled(struct tasha_priv *tasha)
{
if (TASHA_IS_2_0(tasha->wcd9xxx->version) &&
if (TASHA_IS_2_0(tasha->wcd9xxx) &&
svs_scaling_enabled)
return true;
@ -1269,7 +1269,7 @@ int tasha_enable_efuse_sensing(struct snd_soc_codec *codec)
tasha_cdc_mclk_enable(codec, true, false);
if (!TASHA_IS_2_0(priv->wcd9xxx->version))
if (!TASHA_IS_2_0(priv->wcd9xxx))
snd_soc_update_bits(codec, WCD9335_CHIP_TIER_CTRL_EFUSE_CTL,
0x1E, 0x02);
snd_soc_update_bits(codec, WCD9335_CHIP_TIER_CTRL_EFUSE_CTL,
@ -1282,7 +1282,7 @@ int tasha_enable_efuse_sensing(struct snd_soc_codec *codec)
if (!(snd_soc_read(codec, WCD9335_CHIP_TIER_CTRL_EFUSE_STATUS) & 0x01))
WARN(1, "%s: Efuse sense is not complete\n", __func__);
if (TASHA_IS_2_0(priv->wcd9xxx->version)) {
if (TASHA_IS_2_0(priv->wcd9xxx)) {
if (!(snd_soc_read(codec,
WCD9335_CHIP_TIER_CTRL_EFUSE_VAL_OUT0) & 0x40))
snd_soc_update_bits(codec, WCD9335_HPH_R_ATEST,
@ -1502,7 +1502,7 @@ static void tasha_mbhc_hph_l_pull_up_control(struct snd_soc_codec *codec,
dev_dbg(codec->dev, "%s: HS pull up current:%d\n",
__func__, pull_up_cur);
if (TASHA_IS_2_0(tasha->wcd9xxx->version))
if (TASHA_IS_2_0(tasha->wcd9xxx))
snd_soc_update_bits(codec, WCD9335_MBHC_PLUG_DETECT_CTL,
0xC0, pull_up_cur << 6);
else
@ -1980,7 +1980,7 @@ static void tasha_wcd_mbhc_calc_impedance(struct wcd_mbhc *mbhc, uint32_t *zl,
};
s16 *d1 = NULL;
if (!TASHA_IS_2_0(wcd9xxx->version)) {
if (!TASHA_IS_2_0(wcd9xxx)) {
dev_dbg(codec->dev, "%s: Z-det is not supported for this codec version\n",
__func__);
*zl = 0;
@ -2168,13 +2168,13 @@ static void tasha_mbhc_hph_pull_down_ctrl(struct snd_soc_codec *codec,
if (enable) {
snd_soc_update_bits(codec, WCD9335_HPH_PA_CTL2,
0x40, 0x40);
if (TASHA_IS_2_0(tasha->wcd9xxx->version))
if (TASHA_IS_2_0(tasha->wcd9xxx))
snd_soc_update_bits(codec, WCD9335_HPH_PA_CTL2,
0x10, 0x10);
} else {
snd_soc_update_bits(codec, WCD9335_HPH_PA_CTL2,
0x40, 0x00);
if (TASHA_IS_2_0(tasha->wcd9xxx->version))
if (TASHA_IS_2_0(tasha->wcd9xxx))
snd_soc_update_bits(codec, WCD9335_HPH_PA_CTL2,
0x10, 0x00);
}
@ -3667,7 +3667,7 @@ static int tasha_codec_enable_rx_bias(struct snd_soc_dapm_widget *w,
case SND_SOC_DAPM_PRE_PMU:
tasha->rx_bias_count++;
if (tasha->rx_bias_count == 1) {
if (TASHA_IS_2_0(tasha->wcd9xxx->version))
if (TASHA_IS_2_0(tasha->wcd9xxx))
tasha_codec_init_flyback(codec);
snd_soc_update_bits(codec, WCD9335_ANA_RX_SUPPLIES,
0x01, 0x01);
@ -3933,7 +3933,7 @@ static void tasha_codec_hph_post_pa_config(struct tasha_priv *tasha,
{
u8 scale_val = 0;
if (!TASHA_IS_2_0(tasha->wcd9xxx->version))
if (!TASHA_IS_2_0(tasha->wcd9xxx))
return;
switch (event) {
@ -4418,7 +4418,7 @@ static void tasha_codec_hph_mode_config(struct snd_soc_codec *codec,
{
struct tasha_priv *tasha = snd_soc_codec_get_drvdata(codec);
if (!TASHA_IS_2_0(tasha->wcd9xxx->version))
if (!TASHA_IS_2_0(tasha->wcd9xxx))
return;
switch (mode) {
@ -4482,14 +4482,14 @@ static int tasha_codec_hphr_dac_event(struct snd_soc_dapm_widget *w,
/* 1000us required as per HW requirement */
usleep_range(1000, 1100);
if ((hph_mode == CLS_H_LP) &&
(TASHA_IS_1_1(wcd9xxx->version))) {
(TASHA_IS_1_1(wcd9xxx))) {
snd_soc_update_bits(codec, WCD9335_HPH_L_DAC_CTL,
0x03, 0x03);
}
break;
case SND_SOC_DAPM_PRE_PMD:
if ((hph_mode == CLS_H_LP) &&
(TASHA_IS_1_1(wcd9xxx->version))) {
(TASHA_IS_1_1(wcd9xxx))) {
snd_soc_update_bits(codec, WCD9335_HPH_L_DAC_CTL,
0x03, 0x00);
}
@ -4572,14 +4572,14 @@ static int tasha_codec_hphl_dac_event(struct snd_soc_dapm_widget *w,
/* 1000us required as per HW requirement */
usleep_range(1000, 1100);
if ((hph_mode == CLS_H_LP) &&
(TASHA_IS_1_1(wcd9xxx->version))) {
(TASHA_IS_1_1(wcd9xxx))) {
snd_soc_update_bits(codec, WCD9335_HPH_L_DAC_CTL,
0x03, 0x03);
}
break;
case SND_SOC_DAPM_PRE_PMD:
if ((hph_mode == CLS_H_LP) &&
(TASHA_IS_1_1(wcd9xxx->version))) {
(TASHA_IS_1_1(wcd9xxx))) {
snd_soc_update_bits(codec, WCD9335_HPH_L_DAC_CTL,
0x03, 0x00);
}
@ -4804,7 +4804,7 @@ static void tasha_codec_hd2_control(struct snd_soc_codec *codec,
u16 hd2_scale_reg;
u16 hd2_enable_reg = 0;
if (!TASHA_IS_2_0(tasha->wcd9xxx->version))
if (!TASHA_IS_2_0(tasha->wcd9xxx))
return;
if (prim_int_reg == WCD9335_CDC_RX1_RX_PATH_CTL) {
@ -8003,7 +8003,7 @@ static void wcd_vbat_adc_out_config(struct wcd_vbat *vbat,
if (!vbat->adc_config) {
tasha_cdc_mclk_enable(codec, true, false);
if (TASHA_IS_2_0(wcd9xxx->version))
if (TASHA_IS_2_0(wcd9xxx))
wcd_vbat_adc_out_config_2_0(vbat, codec);
else
wcd_vbat_adc_out_config_1_x(vbat, codec);
@ -10948,7 +10948,7 @@ static int tasha_set_channel_map(struct snd_soc_dai *dai,
/* Reserve TX12/TX13 for MAD data channel */
dai_data = &tasha->dai[AIF4_MAD_TX];
if (dai_data) {
if (TASHA_IS_2_0(tasha->wcd9xxx->version))
if (TASHA_IS_2_0(tasha->wcd9xxx))
list_add_tail(&core->tx_chs[TASHA_TX13].list,
&dai_data->wcd9xxx_ch_list);
else
@ -11899,9 +11899,9 @@ static ssize_t tasha_codec_version_read(struct snd_info_entry *entry,
wcd9xxx = tasha->wcd9xxx;
if (wcd9xxx->codec_type->id_major == TASHA_MAJOR) {
if (TASHA_IS_1_0(wcd9xxx->version))
if (TASHA_IS_1_0(wcd9xxx))
len = snprintf(buffer, sizeof(buffer), "WCD9335_1_0\n");
else if (TASHA_IS_1_1(wcd9xxx->version))
else if (TASHA_IS_1_1(wcd9xxx))
len = snprintf(buffer, sizeof(buffer), "WCD9335_1_1\n");
else
snprintf(buffer, sizeof(buffer), "VER_UNDEFINED\n");
@ -12243,7 +12243,7 @@ static void tasha_update_reg_reset_values(struct snd_soc_codec *codec)
u32 i;
struct wcd9xxx *tasha_core = dev_get_drvdata(codec->dev->parent);
if (TASHA_IS_1_1(tasha_core->version)) {
if (TASHA_IS_1_1(tasha_core)) {
for (i = 0; i < ARRAY_SIZE(tasha_reg_update_reset_val_1_1);
i++)
snd_soc_write(codec,
@ -12263,27 +12263,27 @@ static void tasha_codec_init_reg(struct snd_soc_codec *codec)
tasha_codec_reg_init_common_val[i].mask,
tasha_codec_reg_init_common_val[i].val);
if (TASHA_IS_1_1(wcd9xxx->version) ||
TASHA_IS_1_0(wcd9xxx->version))
if (TASHA_IS_1_1(wcd9xxx) ||
TASHA_IS_1_0(wcd9xxx))
for (i = 0; i < ARRAY_SIZE(tasha_codec_reg_init_1_x_val); i++)
snd_soc_update_bits(codec,
tasha_codec_reg_init_1_x_val[i].reg,
tasha_codec_reg_init_1_x_val[i].mask,
tasha_codec_reg_init_1_x_val[i].val);
if (TASHA_IS_1_1(wcd9xxx->version)) {
if (TASHA_IS_1_1(wcd9xxx)) {
for (i = 0; i < ARRAY_SIZE(tasha_codec_reg_init_val_1_1); i++)
snd_soc_update_bits(codec,
tasha_codec_reg_init_val_1_1[i].reg,
tasha_codec_reg_init_val_1_1[i].mask,
tasha_codec_reg_init_val_1_1[i].val);
} else if (TASHA_IS_1_0(wcd9xxx->version)) {
} else if (TASHA_IS_1_0(wcd9xxx)) {
for (i = 0; i < ARRAY_SIZE(tasha_codec_reg_init_val_1_0); i++)
snd_soc_update_bits(codec,
tasha_codec_reg_init_val_1_0[i].reg,
tasha_codec_reg_init_val_1_0[i].mask,
tasha_codec_reg_init_val_1_0[i].val);
} else if (TASHA_IS_2_0(wcd9xxx->version)) {
} else if (TASHA_IS_2_0(wcd9xxx)) {
for (i = 0; i < ARRAY_SIZE(tasha_codec_reg_init_val_2_0); i++)
snd_soc_update_bits(codec,
tasha_codec_reg_init_val_2_0[i].reg,
@ -12770,7 +12770,7 @@ static int tasha_codec_cpe_fll_enable(struct snd_soc_codec *codec,
}
}
if (TASHA_IS_1_0(wcd9xxx->version)) {
if (TASHA_IS_1_0(wcd9xxx)) {
tasha_cdc_mclk_enable(codec, true, false);
clk_sel_reg_val = 0x02;
}
@ -12809,7 +12809,7 @@ static int tasha_codec_cpe_fll_enable(struct snd_soc_codec *codec,
snd_soc_update_bits(codec, WCD9335_CPE_FLL_USER_CTL_0,
0x01, 0x00);
if (TASHA_IS_1_0(wcd9xxx->version))
if (TASHA_IS_1_0(wcd9xxx))
tasha_cdc_mclk_enable(codec, false, false);
/*
@ -12938,7 +12938,7 @@ static int tasha_cpe_err_irq_control(struct snd_soc_codec *codec,
struct tasha_priv *tasha = snd_soc_codec_get_drvdata(codec);
u8 irq_bits;
if (TASHA_IS_2_0(tasha->wcd9xxx->version))
if (TASHA_IS_2_0(tasha->wcd9xxx))
irq_bits = 0xFF;
else
irq_bits = 0x3F;
@ -13251,7 +13251,7 @@ static int tasha_codec_probe(struct snd_soc_codec *codec)
}
/* Initialize MBHC module */
if (TASHA_IS_2_0(tasha->wcd9xxx->version)) {
if (TASHA_IS_2_0(tasha->wcd9xxx)) {
wcd_mbhc_registers[WCD_MBHC_FSM_STATUS].reg =
WCD9335_MBHC_FSM_STATUS;
wcd_mbhc_registers[WCD_MBHC_FSM_STATUS].mask = 0x01;
@ -13636,7 +13636,7 @@ static int tasha_swrm_clock(void *handle, bool enable)
if (enable) {
tasha->swr_clk_users++;
if (tasha->swr_clk_users == 1) {
if (TASHA_IS_2_0(tasha->wcd9xxx->version))
if (TASHA_IS_2_0(tasha->wcd9xxx))
regmap_update_bits(
tasha->wcd9xxx->regmap,
WCD9335_TEST_DEBUG_NPL_DLY_TEST_1,
@ -13653,7 +13653,7 @@ static int tasha_swrm_clock(void *handle, bool enable)
WCD9335_CDC_CLK_RST_CTRL_SWR_CONTROL,
0x01, 0x00);
__tasha_cdc_mclk_enable(tasha, false);
if (TASHA_IS_2_0(tasha->wcd9xxx->version))
if (TASHA_IS_2_0(tasha->wcd9xxx))
regmap_update_bits(
tasha->wcd9xxx->regmap,
WCD9335_TEST_DEBUG_NPL_DLY_TEST_1,

View file

@ -386,7 +386,7 @@ static void wcd_clsh_flyback_ctrl(struct snd_soc_codec *codec,
(1 << 6), (enable << 6));
/* 100usec delay is needed as per HW requirement */
usleep_range(100, 110);
if (enable && (TASHA_IS_1_1(wcd9xxx->version))) {
if (enable && (TASHA_IS_1_1(wcd9xxx))) {
wcd_clsh_set_flyback_mode(codec, CLS_H_HIFI);
snd_soc_update_bits(codec, WCD9XXX_FLYBACK_EN,
0x60, 0x40);
@ -427,7 +427,7 @@ static void wcd_clsh_set_gain_path(struct snd_soc_codec *codec,
u8 val = 0;
struct wcd9xxx *wcd9xxx = dev_get_drvdata(codec->dev->parent);
if (!TASHA_IS_2_0(wcd9xxx->version))
if (!TASHA_IS_2_0(wcd9xxx))
return;
switch (mode) {
@ -484,7 +484,7 @@ static void wcd_clsh_set_hph_mode(struct snd_soc_codec *codec,
};
snd_soc_update_bits(codec, WCD9XXX_A_ANA_HPH, 0x0C, val);
if (TASHA_IS_2_0(wcd9xxx->version)) {
if (TASHA_IS_2_0(wcd9xxx)) {
snd_soc_update_bits(codec, WCD9XXX_CLASSH_CTRL_VCL_2,
0x30, (res_val << 4));
if (mode != CLS_H_LP)
@ -515,7 +515,7 @@ static void wcd_clsh_set_flyback_current(struct snd_soc_codec *codec, int mode)
{
struct wcd9xxx *wcd9xxx = dev_get_drvdata(codec->dev->parent);
if (!TASHA_IS_2_0(wcd9xxx->version))
if (!TASHA_IS_2_0(wcd9xxx))
return;
snd_soc_update_bits(codec, WCD9XXX_RX_BIAS_FLYB_BUFF, 0x0F, 0x0A);