From 60ff01ad259c56ddbba1803d3bab2e7abdbf2bc2 Mon Sep 17 00:00:00 2001 From: tako0910 Date: Fri, 27 Sep 2013 12:47:58 +0900 Subject: [PATCH] Revert "Update sound by m7wlj CM source" This reverts commit 83489fd19c4bead55c6ff8bb22fba84dc34cfc5a. --- sound/soc/msm/apq8064_M7.c | 219 +++---------------------------------- 1 file changed, 16 insertions(+), 203 deletions(-) diff --git a/sound/soc/msm/apq8064_M7.c b/sound/soc/msm/apq8064_M7.c index 29a08828a..529d14c37 100644 --- a/sound/soc/msm/apq8064_M7.c +++ b/sound/soc/msm/apq8064_M7.c @@ -57,10 +57,7 @@ #define TOP_SPK_AMP_POS 0x4 #define TOP_SPK_AMP_NEG 0x8 #define TOP_SPK_AMP 0x10 -#define HS_AMP_POS 0x20 -#define HS_AMP_NEG 0x40 -#define RCV_AMP_POS 0x80 -#define RCV_AMP_NEG 0x100 + #define GPIO_AUX_PCM_DOUT 43 #define GPIO_AUX_PCM_DIN 44 @@ -81,20 +78,10 @@ #define TABLA_MBHC_DEF_BUTTONS 8 #define TABLA_MBHC_DEF_RLOADS 5 #define HAC_PAMP_GPIO 6 - -#ifdef CONFIG_MACH_M7_WLJ -#define RCV_PAMP_PMGPIO 24 -#else #define RCV_PAMP_GPIO 67 -#endif - -#ifdef CONFIG_MACH_M7_WLJ -#define RCV_SPK_SEL_PMGPIO 5 -#else #define RCV_SPK_SEL_PMGPIO 24 -#endif - static int msm_hac_control; +static int msm_rcv_control; static int aux_pcm_open = 0; enum { SLIM_1_RX_1 = 145, @@ -116,8 +103,6 @@ enum { static int msm_spk_control; static int msm_ext_bottom_spk_pamp; static int msm_ext_top_spk_pamp; -static int msm_hs_pamp; -static int msm_rcv_pamp; static int msm_slim_0_rx_ch = 1; static int msm_slim_0_tx_ch = 1; static struct clk *mi2s_rx_osr_clk; @@ -186,7 +171,6 @@ static void param_set_mask(struct snd_pcm_hw_params *p, int n, unsigned bit) } } - static struct mutex cdc_mclk_mutex; static struct mutex aux_pcm_mutex; @@ -218,9 +202,8 @@ static int msm8960_mi2s_hw_params(struct snd_pcm_substream *substream, int rate = params_rate(params); int bit_clk_set = 0; - if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { - bit_clk_set = 18432000/(rate * 2 * 24); + bit_clk_set = 12288000/(rate * 2 * 24); clk_set_rate(mi2s_rx_bit_clk, bit_clk_set); } return 1; @@ -294,8 +277,7 @@ static int msm8960_mi2s_startup(struct snd_pcm_substream *substream) configure_mi2s_rx_gpio(); mi2s_rx_osr_clk = clk_get(cpu_dai->dev, "osr_clk"); if (mi2s_rx_osr_clk) { - - clk_set_rate(mi2s_rx_osr_clk, 18432000); + clk_set_rate(mi2s_rx_osr_clk, 12288000); clk_prepare_enable(mi2s_rx_osr_clk); } mi2s_rx_bit_clk = clk_get(cpu_dai->dev, "bit_clk"); @@ -345,7 +327,7 @@ static int msm8960_i2s_hw_params(struct snd_pcm_substream *substream, int bit_clk_set = 0; if (substream->stream == SNDRV_PCM_STREAM_CAPTURE) { - bit_clk_set = 12288000/(rate * 2 * 16); + bit_clk_set = 12288000/(rate * 2 * 24); pr_info("%s, bit clock is %d\n", __func__, bit_clk_set); clk_set_rate(pri_i2s_rx_bit_clk, bit_clk_set); } @@ -479,63 +461,7 @@ static struct snd_soc_ops msm8960_i2s_be_ops = { static void msm_ext_spk_power_amp_on(u32 spk) { - if (spk & (RCV_AMP_POS | RCV_AMP_NEG)) { - if ((msm_rcv_pamp & RCV_AMP_POS) && - (msm_rcv_pamp & RCV_AMP_NEG)) { - - pr_debug("%s() HS Ampl already " - "turned on. spk = 0x%08x\n", __func__, spk); - return; - } - - msm_rcv_pamp |= spk; - - if ((msm_rcv_pamp & RCV_AMP_POS) && - (msm_rcv_pamp & RCV_AMP_NEG)) { - - - pr_info("rcv amp on++"); -#ifdef CONFIG_MACH_M7_WLJ - gpio_direction_output(PM8921_GPIO_PM_TO_SYS(RCV_PAMP_PMGPIO), 1); -#else - gpio_direction_output(RCV_PAMP_GPIO, 1); -#endif - gpio_direction_output(PM8921_GPIO_PM_TO_SYS(RCV_SPK_SEL_PMGPIO), 1); - pr_info("rcv amp on--"); - - pr_debug("%s: slepping 4 ms after turning on external " - " Bottom Speaker Ampl\n", __func__); - usleep_range(4000, 4000); - } - } else if (spk & (HS_AMP_POS | HS_AMP_NEG)) { - - if ((msm_hs_pamp & HS_AMP_POS) && - (msm_hs_pamp & HS_AMP_NEG)) { - - pr_debug("%s() HS Ampl already " - "turned on. spk = 0x%08x\n", __func__, spk); - return; - } - - msm_hs_pamp |= spk; - - if ((msm_hs_pamp & HS_AMP_POS) && - (msm_hs_pamp & HS_AMP_NEG)) { - - pr_info("hs amp on++"); - if(query_tpa6185()) { - gpio_direction_output(PM8921_GPIO_PM_TO_SYS(10), 1); - set_handset_amp(1); - } - - if(query_rt5501()) - set_rt5501_amp(1); - pr_info("hs amp on--"); - pr_debug("%s: slepping 4 ms after turning on external " - " Bottom Speaker Ampl\n", __func__); - usleep_range(4000, 4000); - } - } else if (spk & (BOTTOM_SPK_AMP_POS | BOTTOM_SPK_AMP_NEG)) { + if (spk & (BOTTOM_SPK_AMP_POS | BOTTOM_SPK_AMP_NEG)) { if ((msm_ext_bottom_spk_pamp & BOTTOM_SPK_AMP_POS) && (msm_ext_bottom_spk_pamp & BOTTOM_SPK_AMP_NEG)) { @@ -549,7 +475,7 @@ static void msm_ext_spk_power_amp_on(u32 spk) if ((msm_ext_bottom_spk_pamp & BOTTOM_SPK_AMP_POS) && (msm_ext_bottom_spk_pamp & BOTTOM_SPK_AMP_NEG)) { -#if 0 + pr_info("hs amp on++"); if(query_tpa6185()) { @@ -560,7 +486,6 @@ static void msm_ext_spk_power_amp_on(u32 spk) if(query_rt5501()) set_rt5501_amp(1); pr_info("hs amp on--"); -#endif pr_debug("%s: slepping 4 ms after turning on external " " Bottom Speaker Ampl\n", __func__); usleep_range(4000, 4000); @@ -600,28 +525,9 @@ static void msm_ext_spk_power_amp_on(u32 spk) static void msm_ext_spk_power_amp_off(u32 spk) { - if (spk & (RCV_AMP_POS | RCV_AMP_NEG)) { - if (!msm_rcv_pamp) - return; + if (spk & (BOTTOM_SPK_AMP_POS | BOTTOM_SPK_AMP_NEG)) { - - pr_info("rcv amp off ++"); -#ifdef CONFIG_MACH_M7_WLJ - gpio_direction_output(PM8921_GPIO_PM_TO_SYS(RCV_PAMP_PMGPIO), 0); -#else - gpio_direction_output(RCV_PAMP_GPIO, 0); -#endif - gpio_direction_output(PM8921_GPIO_PM_TO_SYS(RCV_SPK_SEL_PMGPIO), 0); - pr_info("rcv amp off --"); - - msm_rcv_pamp = 0; - - pr_debug("%s: sleeping 4 ms after turning off external Bottom" - " Speaker Ampl\n", __func__); - - usleep_range(4000, 4000); - } else if (spk & (HS_AMP_POS | HS_AMP_NEG)) { - if (!msm_hs_pamp) + if (!msm_ext_bottom_spk_pamp) return; @@ -635,28 +541,6 @@ static void msm_ext_spk_power_amp_off(u32 spk) set_rt5501_amp(0); pr_info("hs amp off --"); - msm_hs_pamp = 0; - - pr_debug("%s: sleeping 4 ms after turning off external Bottom" - " Speaker Ampl\n", __func__); - - usleep_range(4000, 4000); - } else if (spk & (BOTTOM_SPK_AMP_POS | BOTTOM_SPK_AMP_NEG)) { - - if (!msm_ext_bottom_spk_pamp) - return; -#if 0 - - pr_info("hs amp off ++"); - if(query_tpa6185()) { - set_handset_amp(0); - gpio_direction_output(PM8921_GPIO_PM_TO_SYS(10), 0); - } - - if(query_rt5501()) - set_rt5501_amp(0); - pr_info("hs amp off --"); -#endif msm_ext_bottom_spk_pamp = 0; pr_debug("%s: sleeping 4 ms after turning off external Bottom" @@ -731,7 +615,7 @@ static int msm_set_hac(struct snd_kcontrol *kcontrol, } return 1; } -#if 0 + static int msm_get_rcv_amp(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { @@ -771,7 +655,6 @@ static int msm_set_rcv_amp(struct snd_kcontrol *kcontrol, } return 1; } -#endif static void msm_ext_control(struct snd_soc_codec *codec) { @@ -783,19 +666,11 @@ static void msm_ext_control(struct snd_soc_codec *codec) snd_soc_dapm_enable_pin(dapm, "Ext Spk Bottom Neg"); snd_soc_dapm_enable_pin(dapm, "Ext Spk Top Pos"); snd_soc_dapm_enable_pin(dapm, "Ext Spk Top Neg"); - snd_soc_dapm_enable_pin(dapm, "Ext Hs Pos"); - snd_soc_dapm_enable_pin(dapm, "Ext Hs Neg"); - snd_soc_dapm_enable_pin(dapm, "Ext Rcv Pos"); - snd_soc_dapm_enable_pin(dapm, "Ext Rcv Neg"); } else { snd_soc_dapm_disable_pin(dapm, "Ext Spk Bottom Pos"); snd_soc_dapm_disable_pin(dapm, "Ext Spk Bottom Neg"); snd_soc_dapm_disable_pin(dapm, "Ext Spk Top Pos"); snd_soc_dapm_disable_pin(dapm, "Ext Spk Top Neg"); - snd_soc_dapm_disable_pin(dapm, "Ext Hs Pos"); - snd_soc_dapm_disable_pin(dapm, "Ext Hs Neg"); - snd_soc_dapm_disable_pin(dapm, "Ext Rcv Pos"); - snd_soc_dapm_disable_pin(dapm, "Ext Rcv Neg"); } snd_soc_dapm_sync(dapm); @@ -824,7 +699,7 @@ static int msm_set_spk(struct snd_kcontrol *kcontrol, static int msm_spkramp_event(struct snd_soc_dapm_widget *w, struct snd_kcontrol *k, int event) { - pr_info("%s() wname %s %x\n", __func__, w->name,SND_SOC_DAPM_EVENT_ON(event)); + pr_debug("%s() %x\n", __func__, SND_SOC_DAPM_EVENT_ON(event)); if (SND_SOC_DAPM_EVENT_ON(event)) { if (!strncmp(w->name, "Ext Spk Bottom Pos", 18)) @@ -835,14 +710,6 @@ static int msm_spkramp_event(struct snd_soc_dapm_widget *w, msm_ext_spk_power_amp_on(TOP_SPK_AMP_POS); else if (!strncmp(w->name, "Ext Spk Top Neg", 15)) msm_ext_spk_power_amp_on(TOP_SPK_AMP_NEG); - else if (!strncmp(w->name, "Ext Hs Pos", 10)) - msm_ext_spk_power_amp_on(HS_AMP_POS); - else if (!strncmp(w->name, "Ext Hs Neg", 10)) - msm_ext_spk_power_amp_on(HS_AMP_NEG); - else if (!strncmp(w->name, "Ext Rcv Pos", 11)) - msm_ext_spk_power_amp_on(RCV_AMP_POS); - else if (!strncmp(w->name, "Ext Rcv Neg", 11)) - msm_ext_spk_power_amp_on(RCV_AMP_NEG); else if (!strncmp(w->name, "Ext Spk Top", 12)) msm_ext_spk_power_amp_on(TOP_SPK_AMP); else { @@ -860,14 +727,6 @@ static int msm_spkramp_event(struct snd_soc_dapm_widget *w, msm_ext_spk_power_amp_off(TOP_SPK_AMP_POS); else if (!strncmp(w->name, "Ext Spk Top Neg", 15)) msm_ext_spk_power_amp_off(TOP_SPK_AMP_NEG); - else if (!strncmp(w->name, "Ext Hs Pos", 10)) - msm_ext_spk_power_amp_off(HS_AMP_POS); - else if (!strncmp(w->name, "Ext Hs Neg", 10)) - msm_ext_spk_power_amp_off(HS_AMP_NEG); - else if (!strncmp(w->name, "Ext Rcv Pos", 11)) - msm_ext_spk_power_amp_off(RCV_AMP_POS); - else if (!strncmp(w->name, "Ext Rcv Neg", 11)) - msm_ext_spk_power_amp_off(RCV_AMP_NEG); else if (!strncmp(w->name, "Ext Spk Top", 12)) msm_ext_spk_power_amp_off(TOP_SPK_AMP); else { @@ -966,21 +825,6 @@ static int msm_mclk_event(struct snd_soc_dapm_widget *w, return 0; } -static const struct snd_kcontrol_new extspk_switch_controls = - SOC_DAPM_SINGLE("Switch", 0, 0, 1, 0); - -static const struct snd_kcontrol_new earamp_switch_controls = - SOC_DAPM_SINGLE("Switch", 0, 0, 1, 0); - -static const struct snd_kcontrol_new spkamp_switch_controls = - SOC_DAPM_SINGLE("Switch", 0, 0, 1, 0); - -static const struct snd_kcontrol_new hsamp_switch_controls = - SOC_DAPM_SINGLE("Switch", 0, 0, 1, 0); - -static const struct snd_kcontrol_new rcvamp_switch_controls = - SOC_DAPM_SINGLE("Switch", 0, 0, 1, 0); - static const struct snd_soc_dapm_widget apq8064_dapm_widgets[] = { SND_SOC_DAPM_SUPPLY("MCLK", SND_SOC_NOPM, 0, 0, @@ -993,11 +837,6 @@ static const struct snd_soc_dapm_widget apq8064_dapm_widgets[] = { SND_SOC_DAPM_SPK("Ext Spk Top Neg", msm_spkramp_event), SND_SOC_DAPM_SPK("Ext Spk Top", msm_spkramp_event), - SND_SOC_DAPM_SPK("Ext Hs Pos", msm_spkramp_event), - SND_SOC_DAPM_SPK("Ext Hs Neg", msm_spkramp_event), - - SND_SOC_DAPM_SPK("Ext Rcv Pos", msm_spkramp_event), - SND_SOC_DAPM_SPK("Ext Rcv Neg", msm_spkramp_event), SND_SOC_DAPM_MIC("Analog mic7", NULL), @@ -1013,11 +852,6 @@ static const struct snd_soc_dapm_widget apq8064_dapm_widgets[] = { SND_SOC_DAPM_MIC("Digital Mic5", NULL), SND_SOC_DAPM_MIC("Digital Mic6", NULL), SND_SOC_DAPM_MIXER("Lineout Mixer", SND_SOC_NOPM, 0, 0, NULL, 0), - SND_SOC_DAPM_MIXER("SPK AMP EN", SND_SOC_NOPM, 0, 0, &spkamp_switch_controls, 1), - SND_SOC_DAPM_MIXER("HAC AMP EN", SND_SOC_NOPM, 0, 0, &earamp_switch_controls, 1), - SND_SOC_DAPM_MIXER("DOCK AMP EN", SND_SOC_NOPM, 0, 0, &extspk_switch_controls, 1), - SND_SOC_DAPM_MIXER("HS AMP EN", SND_SOC_NOPM, 0, 0, &hsamp_switch_controls, 1), - SND_SOC_DAPM_MIXER("RCV AMP EN", SND_SOC_NOPM, 0, 0, &rcvamp_switch_controls, 1), }; static const struct snd_soc_dapm_route apq8064_common_audio_map[] = { @@ -1035,19 +869,6 @@ static const struct snd_soc_dapm_route apq8064_common_audio_map[] = { {"Ext Spk Top Neg", NULL, "LINEOUT4"}, {"Ext Spk Top", NULL, "LINEOUT5"}, - - - {"Ext Hs Pos", NULL, "HS AMP EN"}, - {"Ext Hs Neg", NULL, "HS AMP EN"}, - {"HS AMP EN", "Switch", "Lineout Mixer"}, - - - {"Ext Rcv Pos", NULL, "RCV AMP EN"}, - {"Ext Rcv Neg", NULL, "RCV AMP EN"}, - {"RCV AMP EN", "Switch", "Lineout Mixer"}, - - {"Lineout Mixer", NULL, "LINEOUT3"}, - {"Lineout Mixer", NULL, "LINEOUT1"}, {"AMIC1", NULL, "MIC BIAS1 External"}, {"MIC BIAS1 External", NULL, "Analog mic7"}, @@ -1248,10 +1069,8 @@ static const struct snd_kcontrol_new tabla_msm_controls[] = { msm_slim_3_rx_ch_get, msm_slim_3_rx_ch_put), SOC_ENUM_EXT("HAC AMP EN", msm_enum[0], msm_get_hac, msm_set_hac), -#if 0 SOC_ENUM_EXT("RCV AMP EN", msm_enum[0], msm_get_rcv_amp, msm_set_rcv_amp), -#endif }; @@ -1559,10 +1378,6 @@ static int msm_audrx_init(struct snd_soc_pcm_runtime *rtd) snd_soc_dapm_enable_pin(dapm, "Ext Spk Bottom Neg"); snd_soc_dapm_enable_pin(dapm, "Ext Spk Top Pos"); snd_soc_dapm_enable_pin(dapm, "Ext Spk Top Neg"); - snd_soc_dapm_enable_pin(dapm, "Ext Hs Pos"); - snd_soc_dapm_enable_pin(dapm, "Ext Hs Neg"); - snd_soc_dapm_enable_pin(dapm, "Ext Rcv Pos"); - snd_soc_dapm_enable_pin(dapm, "Ext Rcv Neg"); snd_soc_dapm_sync(dapm); @@ -1711,6 +1526,7 @@ static int msm_hdmi_be_hw_params_fixup(struct snd_soc_pcm_runtime *rtd, pr_debug("%s channels->min %u channels->max %u ()\n", __func__, channels->min, channels->max); + param_set_mask(params, SNDRV_PCM_HW_PARAM_FORMAT, SNDRV_PCM_FORMAT_S16_LE); @@ -1812,9 +1628,8 @@ static int msm_auxpcm_be_params_fixup(struct snd_soc_pcm_runtime *rtd, struct snd_interval *channels = hw_param_interval(params, SNDRV_PCM_HW_PARAM_CHANNELS); - #ifdef CONFIG_BT_WBS_BRCM - rate->min = rate->max = 16000; + rate->min = rate->max = 16000; #else rate->min = rate->max = 8000; #endif @@ -1830,6 +1645,7 @@ static int msm_proxy_be_hw_params_fixup(struct snd_soc_pcm_runtime *rtd, SNDRV_PCM_HW_PARAM_RATE); pr_debug("%s()\n", __func__); + param_set_mask(params, SNDRV_PCM_HW_PARAM_FORMAT, SNDRV_PCM_FORMAT_S16_LE); @@ -2567,8 +2383,7 @@ static int __init msm_audio_init(void) GPIO_CFG(42, 0, GPIO_CFG_INPUT, GPIO_CFG_PULL_DOWN, GPIO_CFG_2MA), }; - if (!(cpu_is_apq8064() || cpu_is_apq8064ab()) || - (socinfo_get_id() == 130)) { + if (!cpu_is_apq8064()) { pr_err("%s: Not the right machine type\n", __func__); return -ENODEV; } @@ -2622,8 +2437,7 @@ module_init(msm_audio_init); static void __exit msm_audio_exit(void) { - if (!(cpu_is_apq8064() || cpu_is_apq8064ab()) || - (socinfo_get_id() == 130)) { + if (!cpu_is_apq8064() || (socinfo_get_id() == 130)) { pr_err("%s: Not the right machine type\n", __func__); return ; } @@ -2637,4 +2451,3 @@ module_exit(msm_audio_exit); MODULE_DESCRIPTION("ALSA SoC msm"); MODULE_LICENSE("GPL v2"); -