Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1608104d authored by Haynes Mathew George's avatar Haynes Mathew George Committed by Garmond Leung
Browse files

audio HAL: add support for MMAP IRQ mode streams.

Introduce MMAP NOIRQ in shared mode.

CRs-Fixed: 2071843
Change-Id: I79ee079475d23f01aaf730a488b79831fd070df1
parent c66eb7e3
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -49,7 +49,6 @@
        <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD6" type="out" id="30"/>
        <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD7" type="out" id="31"/>
        <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD8" type="out" id="32"/>
        <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD9" type="out" id="33"/>
        <usecase name="USECASE_VOICEMMODE1_CALL" type="in" id="2"/>
        <usecase name="USECASE_VOICEMMODE1_CALL" type="out" id="2"/>
        <usecase name="USECASE_VOICEMMODE2_CALL" type="in" id="19"/>
@@ -65,6 +64,8 @@
        <usecase name="USECASE_AUDIO_RECORD_LOW_LATENCY" type="in" id="17" />
        <usecase name="USECASE_AUDIO_PLAYBACK_ULL" type="out" id="17" />
        <usecase name="USECASE_AUDIO_PLAYBACK_EXT_DISP_SILENCE" type="out" id="27" />
        <usecase name="USECASE_AUDIO_PLAYBACK_MMAP" type="out" id="33" />
        <usecase name="USECASE_AUDIO_RECORD_MMAP" type="in" id="33" />
    </pcm_ids>
    <config_params>
        <param key="spkr_1_tz_name" value="wsatz.13"/>
+18 −7
Original line number Diff line number Diff line
@@ -68,6 +68,10 @@
                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                             samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
                </mixPort>
                <mixPort name="mmap_no_irq_out" role="source" flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_MMAP_NOIRQ">
                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                             samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
                </mixPort>
                <mixPort name="deep_buffer" role="source"
                        flags="AUDIO_OUTPUT_FLAG_DEEP_BUFFER">
                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
@@ -191,6 +195,11 @@
                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                             samplingRates="8000,16000,48000" channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO"/>
                </mixPort>
                <mixPort name="mmap_no_irq_in" role="sink" flags="AUDIO_INPUT_FLAG_MMAP_NOIRQ">
                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                             samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
                             channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_INDEX_MASK_3"/>
                </mixPort>
            </mixPorts>

            <devicePorts>
@@ -302,15 +311,15 @@
            <!-- route declaration, i.e. list all available sources for a given sink -->
            <routes>
                <route type="mix" sink="Earpiece"
                       sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
                       sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out"/>
                <route type="mix" sink="Speaker"
                       sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
                       sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out"/>
                <route type="mix" sink="Wired Headset"
                       sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,dsd_compress_passthrough,voip_rx"/>
                       sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,dsd_compress_passthrough,voip_rx,mmap_no_irq_out"/>
                <route type="mix" sink="Wired Headphones"
                       sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,dsd_compress_passthrough,voip_rx"/>
                       sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,dsd_compress_passthrough,voip_rx,mmap_no_irq_out"/>
                <route type="mix" sink="Line"
                       sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,dsd_compress_passthrough,voip_rx"/>
                       sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,dsd_compress_passthrough,voip_rx,mmap_no_irq_out"/>
                <route type="mix" sink="HDMI"
                       sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,compress_passthrough"/>
                <route type="mix" sink="Proxy"
@@ -318,9 +327,9 @@
                <route type="mix" sink="FM"
                       sources="primary output"/>
                <route type="mix" sink="BT SCO All"
                       sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
                       sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out"/>
                <route type="mix" sink="USB Device Out"
                       sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
                       sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out"/>
                <route type="mix" sink="Telephony Tx"
                       sources="voice_tx"/>
                <route type="mix" sink="voice_rx"
@@ -331,6 +340,8 @@
                       sources="Built-In Mic,Built-In Back Mic"/>
                <route type="mix" sink="record_24"
                       sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic"/>
                <route type="mix" sink="mmap_no_irq_in"
                       sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic,USB Device In"/>
                <route type="mix" sink="BT A2DP Out"
                       sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload"/>
                <route type="mix" sink="BT A2DP Headphones"
+80 −0
Original line number Diff line number Diff line
@@ -297,6 +297,7 @@
    <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia4" value="0" />
    <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia5" value="0" />
    <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia6" value="0" />
    <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia16" value="0" />
    <ctl name="MultiMedia1 Mixer SLIM_7_TX" value="0" />
    <!-- audio record compress-->
    <ctl name="MultiMedia8 Mixer SLIM_0_TX" value="0" />
@@ -2593,4 +2594,83 @@
        <path name="audio-ull-playback bt-a2dp" />
        <path name="audio-ull-playback" />
    </path>

    <path name="mmap-playback">
        <ctl name="SLIMBUS_0_RX Audio Mixer MultiMedia16" value="1" />
    </path>

    <path name="mmap-playback headphones">
        <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia16" value="1" />
    </path>

    <path name="mmap-playback speaker-and-headphones">
        <path name="mmap-playback" />
        <path name="mmap-playback headphones" />
    </path>

    <path name="mmap-playback bt-sco">
        <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia16" value="1" />
    </path>

    <path name="mmap-playback bt-sco-wb">
        <ctl name="BT SampleRate" value="KHZ_16" />
        <path name="mmap-playback bt-sco" />
    </path>

    <path name="mmap-playback afe-proxy">
        <ctl name="AFE_PCM_RX Audio Mixer MultiMedia16" value="1" />
    </path>

    <path name="mmap-playback usb-headphones">
        <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia16" value="1" />
    </path>

    <path name="mmap-playback usb-headset">
        <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia16" value="1" />
    </path>

    <path name="mmap-playback display-port">
        <ctl name="DISPLAY_PORT Mixer MultiMedia16" value="1" />
    </path>

    <path name="mmap-buffer-playback hdmi">
        <ctl name="HDMI Mixer MultiMedia16" value="1" />
    </path>

    <path name="mmap-playback speaker-and-hdmi">
        <path name="mmap-playback hdmi" />
        <path name="mmap-playback" />
    </path>

    <path name="mmap-playback speaker-and-display-port">
        <path name="mmap-playback display-port" />
        <path name="mmap-playback" />
    </path>

    <path name="mmap-playback speaker-and-usb-headphones">
        <path name="mmap-playback usb-headphones" />
        <path name="mmap-playback" />
    </path>

    <path name="mmap-record">
      <ctl name="MultiMedia16 Mixer SLIM_0_TX" value="1" />
    </path>

    <path name="mmap-record bt-sco">
      <ctl name="MultiMedia16 Mixer SLIM_7_TX" value="1" />
    </path>

    <path name="mmap-record bt-sco-wb">
        <ctl name="BT SampleRate" value="KHZ_16" />
        <path name="mmap-record bt-sco" />
    </path>

    <path name="mmap-record capture-fm">
      <ctl name="MultiMedia16 Mixer SLIM_8_TX" value="1" />
    </path>

    <path name="mmap-record usb-headset-mic">
       <ctl name="MultiMedia16 Mixer USB_AUDIO_TX" value="1" />
    </path>

</mixer>
+56 −0
Original line number Diff line number Diff line
@@ -67,6 +67,7 @@
    <ctl name="MultiMedia1 Mixer SLIM_7_TX" value="0" />
    <ctl name="MultiMedia8 Mixer INT3_MI2S_TX" value="0" />
    <ctl name="MultiMedia8 Mixer SLIM_7_TX" value="0" />
    <ctl name="MultiMedia16 Mixer SLIM_7_TX" value="0" />
    <ctl name="HDMI Mixer MultiMedia1" value="0" />
    <ctl name="HDMI Mixer MultiMedia2" value="0" />
    <ctl name="HDMI Mixer MultiMedia3" value="0" />
@@ -2256,4 +2257,59 @@
        <path name="audio-ull-playback bt-a2dp" />
        <path name="audio-ull-playback" />
    </path>

    <path name="mmap-playback">
        <ctl name="SLIMBUS_0_RX Audio Mixer MultiMedia16" value="1" />
    </path>

    <path name="mmap-playback headphones">
        <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia16" value="1" />
    </path>

    <path name="mmap-playback speaker-and-headphones">
        <path name="mmap-playback" />
        <path name="mmap-playback headphones" />
    </path>

    <path name="mmap-playback bt-sco">
        <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia16" value="1" />
    </path>

    <path name="mmap-playback bt-sco-wb">
        <ctl name="BT SampleRate" value="16000" />
        <path name="mmap-playback bt-sco" />
    </path>

    <path name="mmap-playback afe-proxy">
        <ctl name="AFE_PCM_RX Audio Mixer MultiMedia16" value="1" />
    </path>

    <path name="mmap-playback usb-headphones">
        <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia16" value="1" />
    </path>

    <path name="mmap-playback usb-headset">
        <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia16" value="1" />
    </path>

    <path name="mmap-record">
      <ctl name="MultiMedia16 Mixer SLIM_0_TX" value="1" />
    </path>

    <path name="mmap-record bt-sco">
      <ctl name="MultiMedia16 Mixer SLIM_7_TX" value="1" />
    </path>

    <path name="mmap-record bt-sco-wb">
        <ctl name="AUX PCM SampleRate" value="16000" />
        <path name="mmap-record bt-sco" />
    </path>

    <path name="mmap-record capture-fm">
      <ctl name="MultiMedia16 Mixer TERT_MI2S_TX" value="1" />
    </path>

    <path name="mmap-record usb-headset-mic">
       <ctl name="MultiMedia16 Mixer USB_AUDIO_TX" value="1" />
    </path>
</mixer>
+54 −0
Original line number Diff line number Diff line
@@ -2817,4 +2817,58 @@
        <path name="audio-ull-playback" />
    </path>

    <path name="mmap-playback">
        <ctl name="SLIMBUS_0_RX Audio Mixer MultiMedia16" value="1" />
    </path>

    <path name="mmap-playback headphones">
        <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia16" value="1" />
    </path>

    <path name="mmap-playback speaker-and-headphones">
        <path name="mmap-playback" />
        <path name="mmap-playback headphones" />
    </path>

    <path name="mmap-playback bt-sco">
        <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia16" value="1" />
    </path>

    <path name="mmap-playback bt-sco-wb">
        <ctl name="BT SampleRate" value="16000" />
        <path name="mmap-playback bt-sco" />
    </path>

    <path name="mmap-playback afe-proxy">
        <ctl name="AFE_PCM_RX Audio Mixer MultiMedia16" value="1" />
    </path>

    <path name="mmap-playback usb-headphones">
        <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia16" value="1" />
    </path>

    <path name="mmap-playback usb-headset">
        <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia16" value="1" />
    </path>

    <path name="mmap-record">
      <ctl name="MultiMedia16 Mixer SLIM_0_TX" value="1" />
    </path>

    <path name="mmap-record bt-sco">
      <ctl name="MultiMedia16 Mixer SLIM_7_TX" value="1" />
    </path>

    <path name="mmap-record bt-sco-wb">
        <ctl name="BT SampleRate" value="KHZ_16" />
        <path name="mmap-record bt-sco" />
    </path>

    <path name="mmap-record capture-fm">
      <ctl name="MultiMedia16 Mixer SLIM_8_TX" value="1" />
    </path>

    <path name="mmap-record usb-headset-mic">
       <ctl name="MultiMedia16 Mixer USB_AUDIO_TX" value="1" />
    </path>
</mixer>
Loading