mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-08 12:58:12 -04:00
asoc: kona: add mixer control to set channel number for speaker protection
Add mixer control to set channel number for speaker protection. Change-Id: I67527119a65758c77dbf9b1d26cc51f956702b5e Signed-off-by: Meng Wang <mengw@codeaurora.org>
This commit is contained in:
parent
e039f16fa4
commit
d1db67cb05
1 changed files with 22 additions and 1 deletions
23
asoc/kona.c
23
asoc/kona.c
|
|
@ -378,6 +378,8 @@ static struct dev_config afe_loopback_tx_cfg[] = {
|
|||
[AFE_LOOPBACK_TX_IDX] = {SAMPLING_RATE_48KHZ, SNDRV_PCM_FORMAT_S16_LE, 1},
|
||||
};
|
||||
|
||||
static int msm_vi_feed_tx_ch = 2;
|
||||
static const char *const vi_feed_ch_text[] = {"One", "Two"};
|
||||
static char const *bit_format_text[] = {"S16_LE", "S24_LE", "S24_3LE",
|
||||
"S32_LE"};
|
||||
static char const *ch_text[] = {"Two", "Three", "Four", "Five",
|
||||
|
|
@ -436,6 +438,7 @@ static SOC_ENUM_SINGLE_EXT_DECL(usb_rx_format, bit_format_text);
|
|||
static SOC_ENUM_SINGLE_EXT_DECL(usb_tx_format, bit_format_text);
|
||||
static SOC_ENUM_SINGLE_EXT_DECL(usb_rx_chs, usb_ch_text);
|
||||
static SOC_ENUM_SINGLE_EXT_DECL(usb_tx_chs, usb_ch_text);
|
||||
static SOC_ENUM_SINGLE_EXT_DECL(vi_feed_tx_chs, vi_feed_ch_text);
|
||||
static SOC_ENUM_SINGLE_EXT_DECL(proxy_rx_chs, ch_text);
|
||||
static SOC_ENUM_SINGLE_EXT_DECL(tdm_rx_sample_rate, tdm_sample_rate_text);
|
||||
static SOC_ENUM_SINGLE_EXT_DECL(tdm_tx_sample_rate, tdm_sample_rate_text);
|
||||
|
|
@ -545,7 +548,6 @@ static struct snd_soc_card snd_soc_card_kona_msm;
|
|||
static int dmic_0_1_gpio_cnt;
|
||||
static int dmic_2_3_gpio_cnt;
|
||||
static int dmic_4_5_gpio_cnt;
|
||||
static int msm_vi_feed_tx_ch = 2;
|
||||
|
||||
static void *def_wcd_mbhc_cal(void);
|
||||
|
||||
|
|
@ -980,6 +982,23 @@ static int usb_audio_tx_ch_put(struct snd_kcontrol *kcontrol,
|
|||
return 1;
|
||||
}
|
||||
|
||||
static int msm_vi_feed_tx_ch_get(struct snd_kcontrol *kcontrol,
|
||||
struct snd_ctl_elem_value *ucontrol)
|
||||
{
|
||||
ucontrol->value.integer.value[0] = msm_vi_feed_tx_ch - 1;
|
||||
pr_debug("%s: msm_vi_feed_tx_ch = %ld\n", __func__,
|
||||
ucontrol->value.integer.value[0]);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int msm_vi_feed_tx_ch_put(struct snd_kcontrol *kcontrol,
|
||||
struct snd_ctl_elem_value *ucontrol)
|
||||
{
|
||||
msm_vi_feed_tx_ch = ucontrol->value.integer.value[0] + 1;
|
||||
pr_debug("%s: msm_vi_feed_tx_ch = %d\n", __func__, msm_vi_feed_tx_ch);
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int ext_disp_get_port_idx(struct snd_kcontrol *kcontrol)
|
||||
{
|
||||
int idx = 0;
|
||||
|
|
@ -3332,6 +3351,8 @@ static const struct snd_kcontrol_new msm_common_snd_controls[] = {
|
|||
msm_bt_sample_rate_tx_put),
|
||||
SOC_ENUM_EXT("AFE_LOOPBACK_TX Channels", afe_loopback_tx_chs,
|
||||
afe_loopback_tx_ch_get, afe_loopback_tx_ch_put),
|
||||
SOC_ENUM_EXT("VI_FEED_TX Channels", vi_feed_tx_chs,
|
||||
msm_vi_feed_tx_ch_get, msm_vi_feed_tx_ch_put),
|
||||
};
|
||||
|
||||
static const struct snd_kcontrol_new msm_snd_controls[] = {
|
||||
|
|
|
|||
Loading…
Reference in a new issue