Nokia X2 sound

Материал из Toshiba AC100 wiki
Версия от 17:28, 15 июня 2015; Zombah (обсуждение | вклад) (→‎Links: add audio hal description link)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

Patches

  1. Nokia specific changes to sound/soc/msm folder https://github.com/cm-nokia-x2/android_kernel_nokia_msm8610/commit/843a557336ed0942aeecef7d73778861929c6601
  2. Nokia specific changes to default msm8610 files in arch/arm/boot/dts folder https://github.com/cm-nokia-x2/android_kernel_nokia_msm8610/commit/b2fdfce5c5e1adf9f2ff8d107f36b952651aff64
  3. Nokia clock/gpio patch https://github.com/cm-nokia-x2/android_kernel_nokia_msm8610/commit/3070d917e6a0bfb67ccb33d09784710731acce02

Links

http://stackoverflow.com/questions/21024851/redirecting-audio-creating-alternate-sound-paths-in-android
http://forum.xda-developers.com/android/software-hacking/reference-qualcomm-audio-codec-iir-t3093000/
http://source.android.com/devices/audio/implement.html#tuning


Diff

  1. Diff stat of sound/soc/msm between kernel kk vs stock
git diff --stat cm-11.0-wip-bisect origin/jellybean-wip sound/soc/msm/ 
 sound/soc/msm/apq8074.c                         |    7 +-
 sound/soc/msm/msm-dai-fe.c                      |   40 +-
 sound/soc/msm/msm8226.c                         |  153 +-------
 sound/soc/msm/msm8974.c                         |   86 +---
 sound/soc/msm/msm8x10.c                         |  274 ++++++++++---
 sound/soc/msm/qdsp6v2/Makefile                  |    8 +-
 sound/soc/msm/qdsp6v2/audio_acdb.c              |   53 ++-
 sound/soc/msm/qdsp6v2/audio_acdb.h              |    1 +
 sound/soc/msm/qdsp6v2/audio_ocmem.c             |    6 +-
 sound/soc/msm/qdsp6v2/msm-audio-effects-q6-v2.c |  721 ----------------------------------
 sound/soc/msm/qdsp6v2/msm-audio-effects-q6-v2.h |   33 --
 sound/soc/msm/qdsp6v2/msm-compr-q6-v2.c         |  163 +++++---
 sound/soc/msm/qdsp6v2/msm-compress-q6-v2.c      | 2097 -------------------------------------------------------------------------------------------------
 sound/soc/msm/qdsp6v2/msm-dai-q6-hdmi-v2.c      |   13 -
 sound/soc/msm/qdsp6v2/msm-dai-q6-v2.c           |   42 +-
 sound/soc/msm/qdsp6v2/msm-dolby-dap-config.c    |   11 +-
 sound/soc/msm/qdsp6v2/msm-dolby-dap-config.h    |    2 +-
 sound/soc/msm/qdsp6v2/msm-pcm-afe-v2.c          |    4 +-
 sound/soc/msm/qdsp6v2/msm-pcm-loopback-v2.c     |  445 ---------------------
 sound/soc/msm/qdsp6v2/msm-pcm-q6-v2.c           |  177 ++-------
 sound/soc/msm/qdsp6v2/msm-pcm-routing-v2.c      |  218 +++-------
 sound/soc/msm/qdsp6v2/msm-pcm-routing-v2.h      |   17 +-
 sound/soc/msm/qdsp6v2/msm-pcm-voip-v2.c         |   83 ++--
 sound/soc/msm/qdsp6v2/q6adm.c                   |   26 +-
 sound/soc/msm/qdsp6v2/q6afe.c                   |  109 ++++-
 sound/soc/msm/qdsp6v2/q6asm.c                   |  891 ++++++++---------------------------------
 sound/soc/msm/qdsp6v2/q6audio-v2.c              |    6 +
 sound/soc/msm/qdsp6v2/q6voice.c                 |   29 +-
 sound/soc/msm/qdsp6v2/rtac.c                    |  180 +--------
 29 files changed, 813 insertions(+), 5082 deletions(-)

Dts

  1. Nokia dts tree
msm8610-ara.dts
 /include/ "msm8610-v2.dtsi"
           /include/ "msm8610.dtsi"
                      /include/ "msm8610-camera.dtsi"
                      /include/ "msm-iommu-v0.dtsi"
                      /include/ "msm8610-ion.dtsi"
                      /include/ "msm8610-gpu.dtsi"
                      /include/ "msm-gdsc.dtsi"
                      /include/ "msm8610-coresight.dtsi"
                      /include/ "msm8610-smp2p.dtsi"
                      /include/ "msm8610-bus.dtsi"
                      /include/ "msm8610-mdss.dtsi"
                      /include/ "msm-rdbg.dtsi"
           /include/ "msm8610-v2-pm.dtsi"
 /include/ "msm8610-ara.dtsi"
 /include/ "msm8610-camera-sensor-ara.dtsi"
 /include/ "c4_touch.dtsi"
 /include/ "sms_dtv.dtsi"
  1. Sound stuff in dts
    1. msm8610-ara.dtsi
sound {
        qcom,audio-routing =
            "RX_BIAS", "MCLK",
            "INT_LDO_H", "MCLK",
            "MIC BIAS External", "Handset Mic",
            "MIC BIAS External", "Headset Mic",
            "MIC BIAS External", "Secondary Mic",
            "AMIC1", "MIC BIAS External",
            "AMIC2", "MIC BIAS External",
            "AMIC3", "MIC BIAS External";
    };
&i2c_cdc  {
        msm8x10_wcd_codec@0d{
                compatible = "qcom,msm8x10-wcd-i2c";
                reg = <0x0d>;

                interrupt-parent = <&wcd9xxx_intc>;
                interrupts = <0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
                              17 18 19 20 21 22 23>;

                cdc-vdda-cp-supply = <&pm8110_s4>;
                qcom,cdc-vdda-cp-voltage = <1800000 2150000>;
                qcom,cdc-vdda-cp-current = <650000>;

                cdc-vdda-h-supply = <&pm8110_l6>;
                qcom,cdc-vdda-h-voltage = <1800000 1800000>;
                qcom,cdc-vdda-h-current = <25000>;

                cdc-vdd-px-supply = <&pm8110_l6>;
                qcom,cdc-vdd-px-voltage = <1800000 1800000>;
                qcom,cdc-vdd-px-current = <10000>;

                cdc-vdd-1p2v-supply = <&pm8110_l4>;
                qcom,cdc-vdd-1p2v-voltage = <1200000 1200000>;
                qcom,cdc-vdd-1p2v-current = <5000>;

                cdc-vdd-mic-bias-supply = <&pm8110_l20>;
                qcom,cdc-vdd-mic-bias-voltage = <3075000 3075000>;
                qcom,cdc-vdd-mic-bias-current = <25000>;

                qcom,cdc-micbias-ldoh-v = <0x3>;
                qcom,cdc-micbias-cfilt-sel = <0x0>;
                qcom,cdc-micbias-cfilt-mv = <2700>;
                qcom,cdc-mclk-clk-rate = <12288000>;

                qcom,cdc-static-supplies = "cdc-vdda-h",
                                           "cdc-vdd-px",
                                           "cdc-vdd-1p2v";

                qcom,cdc-on-demand-supplies = "cdc-vdda-cp",
                                              "cdc-vdd-mic-bias";
        };
        msm8x10_wcd_codec@77{
                compatible = "qcom,msm8x10-wcd-i2c";
                reg = <0x77>;
        };

        msm8x10_wcd_codec@66{
                compatible = "qcom,msm8x10-wcd-i2c";
                reg = <0x66>;
        };

        msm8x10_wcd_codec@55{
                compatible = "qcom,msm8x10-wcd-i2c";
                reg = <0x55>;
        };
};
    1. msm8610.dtsi
sound {
                compatible = "qcom,msm8x10-audio-codec";
                qcom,model = "msm8x10-snd-card";
                qcom,vibrator-amp-gpio = <&msmgpio 101 0x0>;
        };

        qti,msm-pcm {
                compatible = "qti,msm-pcm-dsp";
                qti,msm-pcm-dsp-id = <0>;
        };

        qti,msm-pcm-low-latency {
                compatible = "qti,msm-pcm-dsp";
                qti,msm-pcm-dsp-id = <1>;
                qti,msm-pcm-low-latency;
                qti,latency-level = "ultra";
        };

        qcom,msm-pcm-routing {
                compatible = "qcom,msm-pcm-routing";
        };

        qcom,msm-pcm-lpa {
                compatible = "qcom,msm-pcm-lpa";
        };

        qcom,msm-compr-dsp {
                compatible = "qcom,msm-compr-dsp";
        };

        qcom,msm-compress-dsp {
                compatible = "qcom,msm-compress-dsp";
        };

        qcom,msm-voip-dsp {
                compatible = "qcom,msm-voip-dsp";
        };

        qcom,msm-pcm-voice {
                compatible = "qcom,msm-pcm-voice";
        };

        qcom,msm-stub-codec {
                compatible = "qcom,msm-stub-codec";
        };

        qcom,msm-dai-fe {
                compatible = "qcom,msm-dai-fe";
        };

        qcom,msm-pcm-afe {
                compatible = "qcom,msm-pcm-afe";
        };

        qcom,msm-dai-mi2s {
                compatible = "qcom,msm-dai-mi2s";
                qcom,msm-dai-q6-mi2s-prim {
                        compatible = "qcom,msm-dai-q6-mi2s";
                        qcom,msm-dai-q6-mi2s-dev-id = <0>;
                        qcom,msm-mi2s-rx-lines = <0>;
                        qcom,msm-mi2s-tx-lines = <3>;
                };

                qcom,msm-dai-q6-mi2s-sec {
                        compatible = "qcom,msm-dai-q6-mi2s";
                        qcom,msm-dai-q6-mi2s-dev-id = <1>;
                        qcom,msm-mi2s-rx-lines = <3>;
                        qcom,msm-mi2s-tx-lines = <0>;
                };
        };
        qcom,msm-dai-q6 {
                compatible = "qcom,msm-dai-q6";
                qcom,msm-dai-q6-bt-sco-rx {
                        compatible = "qcom,msm-dai-q6-dev";
                        qcom,msm-dai-q6-dev-id = <12288>;
                };

                qcom,msm-dai-q6-bt-sco-tx {
                        compatible = "qcom,msm-dai-q6-dev";
                        qcom,msm-dai-q6-dev-id = <12289>;
                };

                qcom,msm-dai-q6-int-fm-rx {
                        compatible = "qcom,msm-dai-q6-dev";
                        qcom,msm-dai-q6-dev-id = <12292>;
                };

                qcom,msm-dai-q6-int-fm-tx {
                        compatible = "qcom,msm-dai-q6-dev";
                        qcom,msm-dai-q6-dev-id = <12293>;
                };

                qcom,msm-dai-q6-be-afe-pcm-rx {
                        compatible = "qcom,msm-dai-q6-dev";
                        qcom,msm-dai-q6-dev-id = <224>;
                };

                qcom,msm-dai-q6-be-afe-pcm-tx {
                        compatible = "qcom,msm-dai-q6-dev";
                        qcom,msm-dai-q6-dev-id = <225>;
                };

                qcom,msm-dai-q6-afe-proxy-rx {
                        compatible = "qcom,msm-dai-q6-dev";
                        qcom,msm-dai-q6-dev-id = <241>;
                };

                qcom,msm-dai-q6-afe-proxy-tx {
                        compatible = "qcom,msm-dai-q6-dev";
                        qcom,msm-dai-q6-dev-id = <240>;
                };

                qcom,msm-dai-q6-incall-record-rx {
                        compatible = "qcom,msm-dai-q6-dev";
                        qcom,msm-dai-q6-dev-id = <32771>;
                };
                
                qcom,msm-dai-q6-incall-record-tx {
                        compatible = "qcom,msm-dai-q6-dev";
                        qcom,msm-dai-q6-dev-id = <32772>;
                };

                qcom,msm-dai-q6-incall-music-rx {
                        compatible = "qcom,msm-dai-q6-dev";
                        qcom,msm-dai-q6-dev-id = <32773>;
                };
        };

        qcom,msm-pcm-hostless {
                compatible = "qcom,msm-pcm-hostless";
        };

Sound initcall

<7>[    2.016109] calling  lra_vib_init+0x0/0x14 @ 1
<7>[    2.016679] initcall lra_vib_init+0x0/0x14 returned 0 after 542 usecs
<7>[    2.016692] calling  alsa_timer_init+0x0/0x1a4 @ 1
<7>[    2.016795] initcall alsa_timer_init+0x0/0x1a4 returned 0 after 87 usecs
<7>[    2.016808] calling  alsa_pcm_init+0x0/0x6c @ 1
<7>[    2.016827] initcall alsa_pcm_init+0x0/0x6c returned 0 after 7 usecs
<7>[    2.016839] calling  snd_mem_init+0x0/0x3c @ 1
<7>[    2.016862] initcall snd_mem_init+0x0/0x3c returned 0 after 10 usecs
<7>[    2.016873] calling  snd_compress_init+0x0/0x8 @ 1
<7>[    2.016885] initcall snd_compress_init+0x0/0x8 returned 0 after 0 usecs
<7>[    2.016897] calling  snd_soc_init+0x0/0x108 @ 1
<7>[    2.017444] initcall snd_soc_init+0x0/0x108 returned 0 after 519 usecs
<7>[    2.017457] calling  msm8x10_wcd_codec_init+0x0/0x44 @ 1
<6>[    2.017509] msm8x10-wcd-i2c-core 5-000d: defering msm8x10_wcd_i2c_probe, adsp_state 0
<6>[    2.017528] i2c 5-000d: Driver msm8x10-wcd-i2c-core requests probe deferral
<7>[    2.017652] initcall msm8x10_wcd_codec_init+0x0/0x44 returned 0 after 175 usecs
<7>[    2.017665] calling  msm_stub_init+0x0/0xc @ 1
<7>[    2.018111] initcall msm_stub_init+0x0/0xc returned 0 after 421 usecs
<7>[    2.018123] calling  msm_soc_platform_init+0x0/0xc @ 1
<7>[    2.018547] initcall msm_soc_platform_init+0x0/0xc returned 0 after 398 usecs
<7>[    2.018560] calling  msm_dai_q6_init+0x0/0xf4 @ 1
<7>[    2.023533] initcall msm_dai_q6_init+0x0/0xf4 returned 0 after 4839 usecs
<7>[    2.023548] calling  msm_soc_platform_init+0x0/0x70 @ 1
<7>[    2.023986] initcall msm_soc_platform_init+0x0/0x70 returned 0 after 413 usecs
<7>[    2.023999] calling  msm_soc_routing_platform_init+0x0/0x2c @ 1
<7>[    2.024421] initcall msm_soc_routing_platform_init+0x0/0x2c returned 0 after 398 usecs
<7>[    2.024434] calling  msm_soc_platform_init+0x0/0xc @ 1
<7>[    2.024847] initcall msm_soc_platform_init+0x0/0xc returned 0 after 389 usecs
<7>[    2.024860] calling  msm_soc_platform_init+0x0/0x84 @ 1
<6>[    2.025060] msm-compr-dsp msm-compr-dsp: msm_compr_probe: dev name msm-compr-dsp
<7>[    2.025277] initcall msm_soc_platform_init+0x0/0x84 returned 0 after 392 usecs
<7>[    2.025290] calling  msm_soc_platform_init+0x0/0x70 @ 1
<7>[    2.025454] initcall msm_soc_platform_init+0x0/0x70 returned 0 after 147 usecs
<7>[    2.025466] calling  msm_soc_platform_init+0x0/0x78 @ 1
<6>[    2.025663] msm-pcm-lpa msm-pcm-lpa: msm_pcm_probe: dev name msm-pcm-lpa
<7>[    2.025879] initcall msm_soc_platform_init+0x0/0x78 returned 0 after 389 usecs
<7>[    2.025893] calling  msm_soc_platform_init+0x0/0xc @ 1
<7>[    2.026306] initcall msm_soc_platform_init+0x0/0xc returned 0 after 388 usecs
<7>[    2.026319] calling  msm_soc_platform_init+0x0/0xac @ 1
<6>[    2.026535] platform qcom,msm-voip-dsp.54: Driver msm-voip-dsp requests probe deferral
<7>[    2.026745] initcall msm_soc_platform_init+0x0/0xac returned 0 after 402 usecs
<7>[    2.026757] calling  msm_soc_platform_init+0x0/0x58 @ 1
<6>[    2.026968] platform qcom,msm-pcm-voice.55: Driver msm-pcm-voice requests probe deferral
<7>[    2.027179] initcall msm_soc_platform_init+0x0/0x58 returned 0 after 398 usecs
<7>[    2.027192] calling  msm_dai_q6_hdmi_init+0x0/0xc @ 1
<7>[    2.027581] initcall msm_dai_q6_hdmi_init+0x0/0xc returned 0 after 366 usecs
<7>[    2.027594] calling  msm_soc_platform_init+0x0/0xc @ 1
<7>[    2.027977] initcall msm_soc_platform_init+0x0/0xc returned 0 after 361 usecs
<7>[    2.027989] calling  msm_soc_platform_init+0x0/0xc @ 1
<7>[    2.028343] initcall msm_soc_platform_init+0x0/0xc returned 0 after 332 usecs
<7>[    2.028356] calling  msm_soc_platform_init+0x0/0xc @ 1
<7>[    2.028737] initcall msm_soc_platform_init+0x0/0xc returned 0 after 358 usecs
<7>[    2.028749] calling  msm_dai_stub_init+0x0/0xc @ 1
<7>[    2.029131] initcall msm_dai_stub_init+0x0/0xc returned 0 after 359 usecs
<7>[    2.029183] calling  adm_init+0x0/0x84 @ 1
<7>[    2.029196] initcall adm_init+0x0/0x84 returned 0 after 1 usecs
<7>[    2.029207] calling  afe_init+0x0/0xb8 @ 1
<7>[    2.029251] initcall afe_init+0x0/0xb8 returned 0 after 30 usecs
<7>[    2.029263] calling  q6asm_init+0x0/0x19c @ 1
<7>[    2.029292] initcall q6asm_init+0x0/0x19c returned 0 after 17 usecs
<7>[    2.029304] calling  voice_init+0x0/0x180 @ 1
<7>[    2.029317] initcall voice_init+0x0/0x180 returned 0 after 2 usecs
<7>[    2.029328] calling  core_init+0x0/0x30 @ 1
<7>[    2.029340] initcall core_init+0x0/0x30 returned 0 after 0 usecs
<7>[    2.029351] calling  acdb_init+0x0/0x58 @ 1
<7>[    2.029446] initcall acdb_init+0x0/0x58 returned 0 after 81 usecs
<7>[    2.029458] calling  rtac_init+0x0/0x1fc @ 1
<7>[    2.029560] initcall rtac_init+0x0/0x1fc returned 0 after 87 usecs
<7>[    2.029572] calling  q6lsm_init+0x0/0x6c @ 1
<7>[    2.029584] initcall q6lsm_init+0x0/0x6c returned 0 after 0 usecs
<7>[    2.029595] calling  msm_fe_dai_init+0x0/0xc @ 1
<7>[    2.030093] initcall msm_fe_dai_init+0x0/0xc returned 0 after 472 usecs
<7>[    2.030106] calling  msm8x10_asoc_machine_driver_init+0x0/0xc @ 1
<6>[    2.030525] platform sound.47: Driver msm8x10-asoc-wcd requests probe deferral
<7>[    2.030775] initcall msm8x10_asoc_machine_driver_init+0x0/0xc returned 0 after 636 usecs
...
<7>[    2.071568] calling  deferred_probe_initcall+0x0/0x64 @ 1
<6>[    2.072361] platform sound.47: Driver msm8x10-asoc-wcd requests probe deferral
<3>[    2.072555] voice_alloc_cal_mem_map_table: audio ION alloc failed, rc = -517
<3>[    2.072566] voc_alloc_cal_shared_memory: Failed to allocate cal memory, err=-517
<6>[    2.072581] platform qcom,msm-pcm-voice.55: Driver msm-pcm-voice requests probe deferral
<3>[    2.072758] voice_alloc_cal_mem_map_table: audio ION alloc failed, rc = -517
<3>[    2.072767] voc_alloc_cal_shared_memory: Failed to allocate cal memory, err=-517
<6>[    2.072781] platform qcom,msm-voip-dsp.54: Driver msm-voip-dsp requests probe deferral
<6>[    2.072866] msm8x10-wcd-i2c-core 5-000d: defering msm8x10_wcd_i2c_probe, adsp_state 0
<6>[    2.072881] i2c 5-000d: Driver msm8x10-wcd-i2c-core requests probe deferral
<7>[    2.073200] initcall deferred_probe_initcall+0x0/0x64 returned 0 after 1576 usecs
<7>[    2.073215] calling  sync_debugfs_init+0x0/0x30 @ 1
<7>[    2.073242] initcall sync_debugfs_init+0x0/0x30 returned 0 after 15 usecs

<7>[    2.073255] calling  ngd_slim_init+0x0/0xc @ 1
<7>[    2.073800] initcall ngd_slim_init+0x0/0xc returned 0 after 518 usecs
...
<7>[    2.083920] calling  alsa_sound_last_init+0x0/0x6c @ 1
<6>[    2.083928] ALSA device list:
<6>[    2.083934]   No soundcards found.
<7>[    2.083945] initcall alsa_sound_last_init+0x0/0x6c returned 0 after 12 usecs
...
<6>[    2.408822] msm8x10-wcd-i2c-core 5-000d: defering msm8x10_wcd_i2c_probe, adsp_state 0
<6>[    2.408844] i2c 5-000d: Driver msm8x10-wcd-i2c-core requests probe deferral
<6>[    2.410038] platform sound.47: Driver msm8x10-asoc-wcd requests probe deferral
<6>[    2.410120] msm8x10-wcd-i2c-core 5-000d: defering msm8x10_wcd_i2c_probe, adsp_state 0
<6>[    2.410136] i2c 5-000d: Driver msm8x10-wcd-i2c-core requests probe deferral

...
<6>[    5.345706] pil-q6v5-lpass fe200000.qcom,lpass: adsp: loading from 0x0c500000 to 0x0d200000
<6>[    5.523037] pil-q6v5-lpass fe200000.qcom,lpass: adsp: Brought out of reset
<6>[    5.575568] pil-q6v5-lpass fe200000.qcom,lpass: adsp: Power/Clock ready interrupt received
<6>[    5.588905] pil-q6v5-lpass fe200000.qcom,lpass: Subsystem error monitoring/handling services are up
<6>[    5.589810] apr_tal:Q6 Is Up
<6>[    5.590047] platform sound.47: Driver msm8x10-asoc-wcd requests probe deferral
<6>[    5.590145] msm8x10-wcd-i2c-core 5-000d: defering msm8x10_wcd_i2c_probe, adsp_state 0
<6>[    5.590161] i2c 5-000d: Driver msm8x10-wcd-i2c-core requests probe deferral
<6>[    5.590302] adsp-loader qcom,msm-adsp-loader.37: adsp_loader_do: Q6/ADSP image is loaded
...
<6>[    6.780902] msm8x10-wcd-i2c-core 5-000d: adsp is ready
<6>[    6.780980] msm8x10-wcd-i2c-core msm8x10_wcd_codec: cdc-vdda-h: vol=[1800000 1800000]uV, curr=[25000]uA, ond 0
<6>[    6.781011] msm8x10-wcd-i2c-core msm8x10_wcd_codec: cdc-vdd-px: vol=[1800000 1800000]uV, curr=[10000]uA, ond 0
<6>[    6.781041] msm8x10-wcd-i2c-core msm8x10_wcd_codec: cdc-vdd-1p2v: vol=[1200000 1200000]uV, curr=[5000]uA, ond 0
<6>[    6.781069] msm8x10-wcd-i2c-core msm8x10_wcd_codec: cdc-vdda-cp: vol=[1800000 2150000]uV, curr=[650000]uA, ond 1
<6>[    6.781102] msm8x10-wcd-i2c-core msm8x10_wcd_codec: cdc-vdd-mic-bias: vol=[3075000 3075000]uV, curr=[25000]uA, ond 1
...
<6>[    6.788470] wcd9xxx_core_res_init: num_irqs = 24, num_irq_regs = 3
<6>[    6.801391] msm8x10-wcd-i2c-core msm8x10_wcd_codec: msm8x10_wcd_i2c_probe: irq initialization passed
<6>[    6.919741] asoc: snd-soc-dummy-dai <-> MultiMedia1 mapping ok
<6>[    6.920621] asoc: snd-soc-dummy-dai <-> MultiMedia2 mapping ok
<6>[    6.921439] asoc: snd-soc-dummy-dai <-> CS-VOICE mapping ok
<6>[    6.922147] asoc: snd-soc-dummy-dai <-> VoIP mapping ok
<6>[    6.923832] asoc: snd-soc-dummy-dai <-> MultiMedia3 mapping ok
<6>[    6.924711] asoc: snd-soc-dummy-dai <-> SEC_MI2S_RX_HOSTLESS mapping ok
<6>[    6.925439] asoc: snd-soc-dummy-dai <-> INT_FM_HOSTLESS mapping ok
<6>[    6.926058] asoc: msm-stub-rx <-> msm-dai-q6-dev.241 mapping ok
<6>[    6.926731] asoc: msm-stub-tx <-> msm-dai-q6-dev.240 mapping ok
<6>[    6.927869] compress asoc: snd-soc-dummy-dai <-> MultiMedia4 mapping ok
<6>[    6.929061] asoc: snd-soc-dummy-dai <-> AUXPCM_HOSTLESS mapping ok
<6>[    6.929715] asoc: snd-soc-dummy-dai <-> PRI_MI2S_TX_HOSTLESS mapping ok
<6>[    6.933728] asoc: snd-soc-dummy-dai <-> MultiMedia5 mapping ok
<6>[    6.935055] asoc: snd-soc-dummy-dai <-> Voice2 mapping ok
<6>[    6.937295] asoc: snd-soc-dummy-dai <-> QCHAT mapping ok
<6>[    6.940853] asoc: msm8x10_wcd_i2s_rx1 <-> msm-dai-q6-mi2s.1 mapping ok
<6>[    6.941556] asoc: msm8x10_wcd_i2s_tx1 <-> msm-dai-q6-mi2s.0 mapping ok
<6>[    6.942611] asoc: msm-stub-rx <-> msm-dai-q6-dev.12288 mapping ok
<6>[    6.943299] asoc: msm-stub-tx <-> msm-dai-q6-dev.12289 mapping ok
<6>[    6.944377] asoc: msm-stub-rx <-> msm-dai-q6-dev.12292 mapping ok
<6>[    6.944814] asoc: msm-stub-tx <-> msm-dai-q6-dev.12293 mapping ok
<6>[    6.945221] asoc: msm-stub-rx <-> msm-dai-q6-dev.224 mapping ok
<6>[    6.953952] asoc: msm-stub-tx <-> msm-dai-q6-dev.225 mapping ok
<6>[    6.955630] asoc: msm-stub-tx <-> msm-dai-q6-dev.32772 mapping ok
<6>[    6.956173] asoc: msm-stub-tx <-> msm-dai-q6-dev.32771 mapping ok
<6>[    6.956706] asoc: msm-stub-rx <-> msm-dai-q6-dev.32773 mapping ok
<6>[    6.982567] input: msm8x10-snd-card Button Jack as /devices/sound.47/sound/card0/input12
<6>[    6.986295] input: msm8x10-snd-card Headset Jack as /devices/sound.47/sound/card0/input13

Audio_policy

audio_policy.default audio_policy.conf parser https://github.com/CyanogenMod/android_hardware_libhardware_legacy/blob/cm-11.0/audio/AudioPolicyManagerBase.cpp#L3755
audio_policy.msm8610 https://github.com/CyanogenMod/android_hardware_qcom_audio-caf/blob/cm-11.0/policy_hal/AudioPolicyManager.cpp


mixer_paths.xml

libaudioroute https://github.com/CyanogenMod/android_system_media/blob/cm-11.0/audio_route/audio_route.c
---