Merge "configs: lahaina: add support for native dsd"
diff --git a/configs/lahaina/audio_platform_info.xml b/configs/lahaina/audio_platform_info.xml
index 1be9667..fc1d0c7 100644
--- a/configs/lahaina/audio_platform_info.xml
+++ b/configs/lahaina/audio_platform_info.xml
@@ -269,6 +269,7 @@
<device name="SND_DEVICE_OUT_SPEAKER_AND_BT_SCO" backend="speaker-and-bt-sco" interface="WSA_CDC_DMA_RX_0-and-SLIMBUS_7_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_BT_SCO_WB" backend="speaker-and-bt-sco-wb" interface="WSA_CDC_DMA_RX_0-and-SLIMBUS_7_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_BT_SCO_SWB" backend="speaker-and-bt-sco-swb" interface="WSA_CDC_DMA_RX_0-and-SLIMBUS_7_RX"/>
+ <device name="SND_DEVICE_OUT_HEADPHONES_DSD" backend="headphones-dsd" interface="RX_CDC_DMA_RX_5"/>
</backend_names>
<!-- below values are for ref purpose to OEM, doesn't contain actual hardware info on MTP -->
<microphone_characteristics>
diff --git a/configs/lahaina/audio_platform_info_intcodec.xml b/configs/lahaina/audio_platform_info_intcodec.xml
index 9595c6b..08cdd96 100644
--- a/configs/lahaina/audio_platform_info_intcodec.xml
+++ b/configs/lahaina/audio_platform_info_intcodec.xml
@@ -318,6 +318,7 @@
<device name="SND_DEVICE_OUT_SPEAKER_SAFE_BT_SCO_AND_HAPTICS" backend="speaker-safe-bt-sco-and-haptics" interface="WSA_CDC_DMA_RX_0-and-SLIMBUS_7_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_SAFE_BT_SCO_WB_AND_HAPTICS" backend="speaker-safe-bt-sco-wb-and-haptics" interface="WSA_CDC_DMA_RX_0-and-SLIMBUS_7_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_SAFE_BT_SCO_SWB_AND_HAPTICS" backend="speaker-safe-bt-sco-swb-and-haptics" interface="WSA_CDC_DMA_RX_0-and-SLIMBUS_7_RX"/>
+ <device name="SND_DEVICE_OUT_HEADPHONES_DSD" backend="headphones-dsd" interface="RX_CDC_DMA_RX_5"/>
</backend_names>
<!-- below values are for ref purpose to OEM, doesn't contain actual hardware info on MTP -->
<microphone_characteristics>
diff --git a/configs/lahaina/audio_platform_info_qrd.xml b/configs/lahaina/audio_platform_info_qrd.xml
index 22b28ca..64af1eb 100644
--- a/configs/lahaina/audio_platform_info_qrd.xml
+++ b/configs/lahaina/audio_platform_info_qrd.xml
@@ -318,6 +318,7 @@
<device name="SND_DEVICE_OUT_SPEAKER_SAFE_BT_SCO_AND_HAPTICS" backend="speaker-safe-bt-sco-and-haptics" interface="WSA_CDC_DMA_RX_0-and-SLIMBUS_7_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_SAFE_BT_SCO_WB_AND_HAPTICS" backend="speaker-safe-bt-sco-wb-and-haptics" interface="WSA_CDC_DMA_RX_0-and-SLIMBUS_7_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_SAFE_BT_SCO_SWB_AND_HAPTICS" backend="speaker-safe-bt-sco-swb-and-haptics" interface="WSA_CDC_DMA_RX_0-and-SLIMBUS_7_RX"/>
+ <device name="SND_DEVICE_OUT_HEADPHONES_DSD" backend="headphones-dsd" interface="RX_CDC_DMA_RX_5"/>
</backend_names>
<!-- below values are for ref purpose to OEM, doesn't contain actual hardware info on MTP -->
<microphone_characteristics>
diff --git a/configs/lahaina/audio_policy_configuration.xml b/configs/lahaina/audio_policy_configuration.xml
index 9a66b1e..ede38c0 100644
--- a/configs/lahaina/audio_policy_configuration.xml
+++ b/configs/lahaina/audio_policy_configuration.xml
@@ -87,6 +87,12 @@
<profile name="" format="dynamic"
samplingRates="dynamic" channelMasks="dynamic"/>
</mixPort>
+ <mixPort name="dsd_compress_passthrough" role="source"
+ flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING">
+ <profile name="" format="AUDIO_FORMAT_DSD"
+ samplingRates="2822400,5644800"
+ channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
+ </mixPort>
<mixPort name="direct_pcm" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
@@ -337,9 +343,9 @@
<route type="mix" sink="Speaker"
sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out,haptics output"/>
<route type="mix" sink="Wired Headset"
- sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out,haptics output"/>
+ sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out,haptics output,dsd_compress_passthrough"/>
<route type="mix" sink="Wired Headphones"
- sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out,haptics output"/>
+ sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out,haptics output,dsd_compress_passthrough"/>
<route type="mix" sink="Line"
sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out,haptics output"/>
<route type="mix" sink="HDMI"
diff --git a/configs/lahaina/mixer_paths.xml b/configs/lahaina/mixer_paths.xml
index fc3db8b..8a6389d 100644
--- a/configs/lahaina/mixer_paths.xml
+++ b/configs/lahaina/mixer_paths.xml
@@ -334,6 +334,10 @@
<ctl name="AUX_RDAC Switch" value="0" />
<ctl name="RDAC3_MUX" value="ZERO" />
<ctl name="RX_EAR Mode" value="OFF" />
+ <ctl name="HPH_L Switch" value="0" />
+ <ctl name="HPH_R Switch" value="0" />
+ <ctl name="DSD_L Switch" value="0" />
+ <ctl name="DSD_R Switch" value="0" />
<!-- TX Controls -->
<ctl name="TX_CDC_DMA_TX_3 Channels" value="One" />
@@ -956,7 +960,7 @@
</path>
<path name="compress-offload-playback headphones-dsd">
- <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia4" value="1" />
+ <ctl name="RX_CDC_DMA_RX_5 Audio Mixer MultiMedia4" value="1" />
</path>
<path name="compress-offload-playback speaker-and-headphones">
@@ -2653,6 +2657,8 @@
<ctl name="RX INT1 DEM MUX" value="CLSH_DSM_OUT" />
<ctl name="RX_COMP1 Switch" value="1" />
<ctl name="RX_COMP2 Switch" value="1" />
+ <ctl name="HPH_L Switch" value="1" />
+ <ctl name="HPH_R Switch" value="1" />
<ctl name="HPHL_COMP Switch" value="1" />
<ctl name="HPHR_COMP Switch" value="1" />
<ctl name="HPHL_RDAC Switch" value="1" />
@@ -2669,6 +2675,8 @@
<ctl name="RX INT1 DEM MUX" value="CLSH_DSM_OUT" />
<ctl name="RX_COMP1 Switch" value="1" />
<ctl name="RX_COMP2 Switch" value="1" />
+ <ctl name="HPH_L Switch" value="1" />
+ <ctl name="HPH_R Switch" value="1" />
<ctl name="HPHL_COMP Switch" value="1" />
<ctl name="HPHR_COMP Switch" value="1" />
<ctl name="HPHL_RDAC Switch" value="1" />
@@ -2676,7 +2684,19 @@
<ctl name="SWR DAC_Port Switch" value="1" />
</path>
+ <path name="headphones-dsd">
+ <ctl name="RX_CDC_DMA_5 RX Format" value="DSD_DOP" />
+ <ctl name="RX_CDC_DMA_RX_5 Channels" value="One" />
+ <ctl name="RX_CDC_DMA_RX_5 Format" value="S32_LE" />
+ <ctl name="RX_CDC_DMA_RX_5 SampleRate" value="KHZ_176P4" />
+ <ctl name="DSD_L Switch" value="1" />
+ <ctl name="DSD_R Switch" value="1" />
+ <ctl name="HPHL_RDAC Switch" value="1" />
+ <ctl name="HPHR_RDAC Switch" value="1" />
+ </path>
+
<path name="headphones-44.1">
+ <ctl name="RX_CDC_DMA_RX_0 SampleRate" value="KHZ_44P1" />
<path name="headphones" />
</path>
diff --git a/configs/lahaina/mixer_paths_cdp.xml b/configs/lahaina/mixer_paths_cdp.xml
index 8bdb4a6..63a3b4f 100644
--- a/configs/lahaina/mixer_paths_cdp.xml
+++ b/configs/lahaina/mixer_paths_cdp.xml
@@ -321,6 +321,10 @@
<ctl name="AUX_RDAC Switch" value="0" />
<ctl name="RDAC3_MUX" value="ZERO" />
<ctl name="RX_EAR Mode" value="OFF" />
+ <ctl name="HPH_L Switch" value="0" />
+ <ctl name="HPH_R Switch" value="0" />
+ <ctl name="DSD_L Switch" value="0" />
+ <ctl name="DSD_R Switch" value="0" />
<!-- TX Controls -->
<ctl name="TX_CDC_DMA_TX_3 Channels" value="One" />
@@ -914,7 +918,7 @@
</path>
<path name="compress-offload-playback headphones-dsd">
- <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia4" value="1" />
+ <ctl name="RX_CDC_DMA_RX_5 Audio Mixer MultiMedia4" value="1" />
</path>
<path name="compress-offload-playback speaker-and-headphones">
@@ -2551,6 +2555,8 @@
<ctl name="RX INT1 DEM MUX" value="CLSH_DSM_OUT" />
<ctl name="RX_COMP1 Switch" value="1" />
<ctl name="RX_COMP2 Switch" value="1" />
+ <ctl name="HPH_L Switch" value="1" />
+ <ctl name="HPH_R Switch" value="1" />
<ctl name="HPHL_COMP Switch" value="1" />
<ctl name="HPHR_COMP Switch" value="1" />
<ctl name="HPHL_RDAC Switch" value="1" />
@@ -2567,6 +2573,8 @@
<ctl name="RX INT1 DEM MUX" value="CLSH_DSM_OUT" />
<ctl name="RX_COMP1 Switch" value="1" />
<ctl name="RX_COMP2 Switch" value="1" />
+ <ctl name="HPH_L Switch" value="1" />
+ <ctl name="HPH_R Switch" value="1" />
<ctl name="HPHL_COMP Switch" value="1" />
<ctl name="HPHR_COMP Switch" value="1" />
<ctl name="HPHL_RDAC Switch" value="1" />
@@ -2574,7 +2582,19 @@
<ctl name="SWR DAC_Port Switch" value="1" />
</path>
+ <path name="headphones-dsd">
+ <ctl name="RX_CDC_DMA_5 RX Format" value="DSD_DOP" />
+ <ctl name="RX_CDC_DMA_RX_5 Channels" value="One" />
+ <ctl name="RX_CDC_DMA_RX_5 Format" value="S32_LE" />
+ <ctl name="RX_CDC_DMA_RX_5 SampleRate" value="KHZ_176P4" />
+ <ctl name="DSD_L Switch" value="1" />
+ <ctl name="DSD_R Switch" value="1" />
+ <ctl name="HPHL_RDAC Switch" value="1" />
+ <ctl name="HPHR_RDAC Switch" value="1" />
+ </path>
+
<path name="headphones-44.1">
+ <ctl name="RX_CDC_DMA_RX_0 SampleRate" value="KHZ_44P1" />
<path name="headphones" />
</path>
diff --git a/configs/lahaina/mixer_paths_qrd.xml b/configs/lahaina/mixer_paths_qrd.xml
index 8ef7fae..19284f4 100644
--- a/configs/lahaina/mixer_paths_qrd.xml
+++ b/configs/lahaina/mixer_paths_qrd.xml
@@ -334,6 +334,10 @@
<ctl name="AUX_RDAC Switch" value="0" />
<ctl name="RDAC3_MUX" value="ZERO" />
<ctl name="RX_EAR Mode" value="OFF" />
+ <ctl name="HPH_L Switch" value="0" />
+ <ctl name="HPH_R Switch" value="0" />
+ <ctl name="DSD_L Switch" value="0" />
+ <ctl name="DSD_R Switch" value="0" />
<!-- TX Controls -->
<ctl name="TX_CDC_DMA_TX_3 Channels" value="One" />
@@ -956,7 +960,7 @@
</path>
<path name="compress-offload-playback headphones-dsd">
- <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia4" value="1" />
+ <ctl name="RX_CDC_DMA_RX_5 Audio Mixer MultiMedia4" value="1" />
</path>
<path name="compress-offload-playback speaker-and-headphones">
@@ -2671,6 +2675,8 @@
<ctl name="RX INT1 DEM MUX" value="CLSH_DSM_OUT" />
<ctl name="RX_COMP1 Switch" value="1" />
<ctl name="RX_COMP2 Switch" value="1" />
+ <ctl name="HPH_L Switch" value="1" />
+ <ctl name="HPH_R Switch" value="1" />
<ctl name="HPHL_COMP Switch" value="1" />
<ctl name="HPHR_COMP Switch" value="1" />
<ctl name="HPHL_RDAC Switch" value="1" />
@@ -2687,6 +2693,8 @@
<ctl name="RX INT1 DEM MUX" value="CLSH_DSM_OUT" />
<ctl name="RX_COMP1 Switch" value="1" />
<ctl name="RX_COMP2 Switch" value="1" />
+ <ctl name="HPH_L Switch" value="1" />
+ <ctl name="HPH_R Switch" value="1" />
<ctl name="HPHL_COMP Switch" value="1" />
<ctl name="HPHR_COMP Switch" value="1" />
<ctl name="HPHL_RDAC Switch" value="1" />
@@ -2694,7 +2702,19 @@
<ctl name="SWR DAC_Port Switch" value="1" />
</path>
+ <path name="headphones-dsd">
+ <ctl name="RX_CDC_DMA_5 RX Format" value="DSD_DOP" />
+ <ctl name="RX_CDC_DMA_RX_5 Channels" value="One" />
+ <ctl name="RX_CDC_DMA_RX_5 Format" value="S32_LE" />
+ <ctl name="RX_CDC_DMA_RX_5 SampleRate" value="KHZ_176P4" />
+ <ctl name="DSD_L Switch" value="1" />
+ <ctl name="DSD_R Switch" value="1" />
+ <ctl name="HPHL_RDAC Switch" value="1" />
+ <ctl name="HPHR_RDAC Switch" value="1" />
+ </path>
+
<path name="headphones-44.1">
+ <ctl name="RX_CDC_DMA_RX_0 SampleRate" value="KHZ_44P1" />
<path name="headphones" />
</path>