Loading asoc/kona.c +73 −12 Original line number Diff line number Diff line Loading @@ -33,6 +33,8 @@ #include "codecs/wsa881x.h" #include "codecs/wsa883x/wsa883x.h" #include "codecs/wcd938x/wcd938x.h" #include "codecs/wcd937x/wcd937x-mbhc.h" #include "codecs/wcd937x/wcd937x.h" #include "codecs/bolero/bolero-cdc.h" #include <dt-bindings/sound/audio-codec-port-types.h> #include "codecs/bolero/wsa-macro.h" Loading Loading @@ -861,6 +863,23 @@ static SOC_ENUM_SINGLE_EXT_DECL(rx_cdc85_dma_rx_3_sample_rate, static SOC_ENUM_SINGLE_EXT_DECL(rx_cdc85_dma_rx_5_sample_rate, cdc_dma_sample_rate_text); /* WCD937x */ static SOC_ENUM_SINGLE_EXT_DECL(rx_cdc_dma_rx_0_format, bit_format_text); static SOC_ENUM_SINGLE_EXT_DECL(rx_cdc_dma_rx_1_format, bit_format_text); static SOC_ENUM_SINGLE_EXT_DECL(rx_cdc_dma_rx_2_format, bit_format_text); static SOC_ENUM_SINGLE_EXT_DECL(rx_cdc_dma_rx_3_format, bit_format_text); static SOC_ENUM_SINGLE_EXT_DECL(rx_cdc_dma_rx_5_format, bit_format_text); static SOC_ENUM_SINGLE_EXT_DECL(rx_cdc_dma_rx_0_sample_rate, cdc_dma_sample_rate_text); static SOC_ENUM_SINGLE_EXT_DECL(rx_cdc_dma_rx_1_sample_rate, cdc_dma_sample_rate_text); static SOC_ENUM_SINGLE_EXT_DECL(rx_cdc_dma_rx_2_sample_rate, cdc_dma_sample_rate_text); static SOC_ENUM_SINGLE_EXT_DECL(rx_cdc_dma_rx_3_sample_rate, cdc_dma_sample_rate_text); static SOC_ENUM_SINGLE_EXT_DECL(rx_cdc_dma_rx_5_sample_rate, cdc_dma_sample_rate_text); static SOC_ENUM_SINGLE_EXT_DECL(ext_disp_rx_chs, ch_text); static SOC_ENUM_SINGLE_EXT_DECL(ext_disp_rx_format, ext_disp_bit_format_text); static SOC_ENUM_SINGLE_EXT_DECL(ext_disp_rx_sample_rate, Loading Loading @@ -3686,6 +3705,39 @@ static const struct snd_kcontrol_new msm_int_wcd9385_snd_controls[] = { cdc_dma_rx_sample_rate_put), }; static const struct snd_kcontrol_new msm_int_wcd937x_snd_controls[] = { SOC_ENUM_EXT("RX_CDC_DMA_RX_0 Format", rx_cdc_dma_rx_0_format, cdc_dma_rx_format_get, cdc_dma_rx_format_put), SOC_ENUM_EXT("RX_CDC_DMA_RX_1 Format", rx_cdc_dma_rx_1_format, cdc_dma_rx_format_get, cdc_dma_rx_format_put), SOC_ENUM_EXT("RX_CDC_DMA_RX_2 Format", rx_cdc_dma_rx_2_format, cdc_dma_rx_format_get, cdc_dma_rx_format_put), SOC_ENUM_EXT("RX_CDC_DMA_RX_3 Format", rx_cdc_dma_rx_3_format, cdc_dma_rx_format_get, cdc_dma_rx_format_put), SOC_ENUM_EXT("RX_CDC_DMA_RX_5 Format", rx_cdc_dma_rx_5_format, cdc_dma_rx_format_get, cdc_dma_rx_format_put), SOC_ENUM_EXT("RX_CDC_DMA_RX_0 SampleRate", rx_cdc_dma_rx_0_sample_rate, cdc_dma_rx_sample_rate_get, cdc_dma_rx_sample_rate_put), SOC_ENUM_EXT("RX_CDC_DMA_RX_1 SampleRate", rx_cdc_dma_rx_1_sample_rate, cdc_dma_rx_sample_rate_get, cdc_dma_rx_sample_rate_put), SOC_ENUM_EXT("RX_CDC_DMA_RX_2 SampleRate", rx_cdc_dma_rx_2_sample_rate, cdc_dma_rx_sample_rate_get, cdc_dma_rx_sample_rate_put), SOC_ENUM_EXT("RX_CDC_DMA_RX_3 SampleRate", rx_cdc_dma_rx_3_sample_rate, cdc_dma_rx_sample_rate_get, cdc_dma_rx_sample_rate_put), SOC_ENUM_EXT("RX_CDC_DMA_RX_5 SampleRate", rx_cdc_dma_rx_5_sample_rate, cdc_dma_rx_sample_rate_get, cdc_dma_rx_sample_rate_put), }; static const struct snd_kcontrol_new msm_common_snd_controls[] = { SOC_ENUM_EXT("USB_AUDIO_RX SampleRate", usb_rx_sample_rate, usb_audio_rx_sample_rate_get, Loading Loading @@ -7320,8 +7372,13 @@ static int msm_aux_codec_init(struct snd_soc_component *component) } pdata->codec_root = entry; } if (!strncmp(component->driver->name, "wcd937x", 7)) { wcd937x_info_create_codec_entry(pdata->codec_root, component); ret = snd_soc_add_component_controls(component, msm_int_wcd937x_snd_controls, ARRAY_SIZE(msm_int_wcd937x_snd_controls)); } else { wcd938x_info_create_codec_entry(pdata->codec_root, component); codec_variant = wcd938x_get_codec_variant(component); dev_dbg(component->dev, "%s: variant %d\n", __func__, codec_variant); if (codec_variant == WCD9380) Loading @@ -7332,6 +7389,7 @@ static int msm_aux_codec_init(struct snd_soc_component *component) ret = snd_soc_add_component_controls(component, msm_int_wcd9385_snd_controls, ARRAY_SIZE(msm_int_wcd9385_snd_controls)); } if (ret < 0) { dev_err(component->dev, "%s: add codec specific snd controls failed: %d\n", Loading @@ -7344,6 +7402,9 @@ static int msm_aux_codec_init(struct snd_soc_component *component) if (!mbhc_calibration) return -ENOMEM; wcd_mbhc_cfg.calibration = mbhc_calibration; if (!strncmp(component->driver->name, "wcd937x", 7)) ret = wcd937x_mbhc_hs_detect(component, &wcd_mbhc_cfg); else ret = wcd938x_mbhc_hs_detect(component, &wcd_mbhc_cfg); if (ret) { dev_err(component->dev, "%s: mbhc hs detect failed, err:%d\n", Loading Loading
asoc/kona.c +73 −12 Original line number Diff line number Diff line Loading @@ -33,6 +33,8 @@ #include "codecs/wsa881x.h" #include "codecs/wsa883x/wsa883x.h" #include "codecs/wcd938x/wcd938x.h" #include "codecs/wcd937x/wcd937x-mbhc.h" #include "codecs/wcd937x/wcd937x.h" #include "codecs/bolero/bolero-cdc.h" #include <dt-bindings/sound/audio-codec-port-types.h> #include "codecs/bolero/wsa-macro.h" Loading Loading @@ -861,6 +863,23 @@ static SOC_ENUM_SINGLE_EXT_DECL(rx_cdc85_dma_rx_3_sample_rate, static SOC_ENUM_SINGLE_EXT_DECL(rx_cdc85_dma_rx_5_sample_rate, cdc_dma_sample_rate_text); /* WCD937x */ static SOC_ENUM_SINGLE_EXT_DECL(rx_cdc_dma_rx_0_format, bit_format_text); static SOC_ENUM_SINGLE_EXT_DECL(rx_cdc_dma_rx_1_format, bit_format_text); static SOC_ENUM_SINGLE_EXT_DECL(rx_cdc_dma_rx_2_format, bit_format_text); static SOC_ENUM_SINGLE_EXT_DECL(rx_cdc_dma_rx_3_format, bit_format_text); static SOC_ENUM_SINGLE_EXT_DECL(rx_cdc_dma_rx_5_format, bit_format_text); static SOC_ENUM_SINGLE_EXT_DECL(rx_cdc_dma_rx_0_sample_rate, cdc_dma_sample_rate_text); static SOC_ENUM_SINGLE_EXT_DECL(rx_cdc_dma_rx_1_sample_rate, cdc_dma_sample_rate_text); static SOC_ENUM_SINGLE_EXT_DECL(rx_cdc_dma_rx_2_sample_rate, cdc_dma_sample_rate_text); static SOC_ENUM_SINGLE_EXT_DECL(rx_cdc_dma_rx_3_sample_rate, cdc_dma_sample_rate_text); static SOC_ENUM_SINGLE_EXT_DECL(rx_cdc_dma_rx_5_sample_rate, cdc_dma_sample_rate_text); static SOC_ENUM_SINGLE_EXT_DECL(ext_disp_rx_chs, ch_text); static SOC_ENUM_SINGLE_EXT_DECL(ext_disp_rx_format, ext_disp_bit_format_text); static SOC_ENUM_SINGLE_EXT_DECL(ext_disp_rx_sample_rate, Loading Loading @@ -3686,6 +3705,39 @@ static const struct snd_kcontrol_new msm_int_wcd9385_snd_controls[] = { cdc_dma_rx_sample_rate_put), }; static const struct snd_kcontrol_new msm_int_wcd937x_snd_controls[] = { SOC_ENUM_EXT("RX_CDC_DMA_RX_0 Format", rx_cdc_dma_rx_0_format, cdc_dma_rx_format_get, cdc_dma_rx_format_put), SOC_ENUM_EXT("RX_CDC_DMA_RX_1 Format", rx_cdc_dma_rx_1_format, cdc_dma_rx_format_get, cdc_dma_rx_format_put), SOC_ENUM_EXT("RX_CDC_DMA_RX_2 Format", rx_cdc_dma_rx_2_format, cdc_dma_rx_format_get, cdc_dma_rx_format_put), SOC_ENUM_EXT("RX_CDC_DMA_RX_3 Format", rx_cdc_dma_rx_3_format, cdc_dma_rx_format_get, cdc_dma_rx_format_put), SOC_ENUM_EXT("RX_CDC_DMA_RX_5 Format", rx_cdc_dma_rx_5_format, cdc_dma_rx_format_get, cdc_dma_rx_format_put), SOC_ENUM_EXT("RX_CDC_DMA_RX_0 SampleRate", rx_cdc_dma_rx_0_sample_rate, cdc_dma_rx_sample_rate_get, cdc_dma_rx_sample_rate_put), SOC_ENUM_EXT("RX_CDC_DMA_RX_1 SampleRate", rx_cdc_dma_rx_1_sample_rate, cdc_dma_rx_sample_rate_get, cdc_dma_rx_sample_rate_put), SOC_ENUM_EXT("RX_CDC_DMA_RX_2 SampleRate", rx_cdc_dma_rx_2_sample_rate, cdc_dma_rx_sample_rate_get, cdc_dma_rx_sample_rate_put), SOC_ENUM_EXT("RX_CDC_DMA_RX_3 SampleRate", rx_cdc_dma_rx_3_sample_rate, cdc_dma_rx_sample_rate_get, cdc_dma_rx_sample_rate_put), SOC_ENUM_EXT("RX_CDC_DMA_RX_5 SampleRate", rx_cdc_dma_rx_5_sample_rate, cdc_dma_rx_sample_rate_get, cdc_dma_rx_sample_rate_put), }; static const struct snd_kcontrol_new msm_common_snd_controls[] = { SOC_ENUM_EXT("USB_AUDIO_RX SampleRate", usb_rx_sample_rate, usb_audio_rx_sample_rate_get, Loading Loading @@ -7320,8 +7372,13 @@ static int msm_aux_codec_init(struct snd_soc_component *component) } pdata->codec_root = entry; } if (!strncmp(component->driver->name, "wcd937x", 7)) { wcd937x_info_create_codec_entry(pdata->codec_root, component); ret = snd_soc_add_component_controls(component, msm_int_wcd937x_snd_controls, ARRAY_SIZE(msm_int_wcd937x_snd_controls)); } else { wcd938x_info_create_codec_entry(pdata->codec_root, component); codec_variant = wcd938x_get_codec_variant(component); dev_dbg(component->dev, "%s: variant %d\n", __func__, codec_variant); if (codec_variant == WCD9380) Loading @@ -7332,6 +7389,7 @@ static int msm_aux_codec_init(struct snd_soc_component *component) ret = snd_soc_add_component_controls(component, msm_int_wcd9385_snd_controls, ARRAY_SIZE(msm_int_wcd9385_snd_controls)); } if (ret < 0) { dev_err(component->dev, "%s: add codec specific snd controls failed: %d\n", Loading @@ -7344,6 +7402,9 @@ static int msm_aux_codec_init(struct snd_soc_component *component) if (!mbhc_calibration) return -ENOMEM; wcd_mbhc_cfg.calibration = mbhc_calibration; if (!strncmp(component->driver->name, "wcd937x", 7)) ret = wcd937x_mbhc_hs_detect(component, &wcd_mbhc_cfg); else ret = wcd938x_mbhc_hs_detect(component, &wcd_mbhc_cfg); if (ret) { dev_err(component->dev, "%s: mbhc hs detect failed, err:%d\n", Loading