11.2. Audio drivers and HAL¶
The audio-fabric slice of the vendor driver/HAL layer — split out from the general HAL catalogue (Vendor drivers and HALs) because it’s by far the largest single group (29 of the device’s 37 loadable kernel modules) and belongs next to the DSP firmware it drives (ADSP and CDSP firmware).
Everything here is from vendor_a.img (lib/modules/, bin/hw/,
lib64/hw/, etc/vintf/manifest.xml) read with 7z, cross-checked
against kernel_config.txt. No code was executed.
11.2.1. Loadable kernel modules¶
/vendor/lib/modules holds 37 .ko files total; 29 of them are the
audio fabric, loading first (by modules.load order), in dependency
order, as the runtime drivers for the LPASS/Q6 DSP, the bolero on-die codec
macros, and the WCD/WSA codecs described in ADSP and CDSP firmware:
Module group (load order) |
Role / hardware |
|---|---|
|
the Q6/ADSP transport: APR (Asynchronous Packet Router) messaging, PD restart, ADSP image load-notify, and the Q6 core — the userspace/kernel bridge to the audio DSP (ADSP and CDSP firmware) |
|
SoundWire master + LPI (low-power-island) pinctrl for the codec links |
|
the on-SoC bolero codec and its rx / tx / wsa / va macros (note the
|
|
the external WCD938x/937x codec(s) and the MBHC (headset button/jack) detection |
|
the WSA smart-speaker-amp drivers (Class-D boosted speaker PAs) |
|
the ASoC platform + machine driver ( |
The other 8 modules cover the rest of the peripheral fabric — not audio; see Vendor drivers and HALs.
11.2.2. HAL service and implementation¶
HAL |
Implementation |
Hardware / cross-ref |
|---|---|---|
|
|
LPASS/Q6 + codecs (ADSP and CDSP firmware) |
The Bluetooth-audio HIDL client (bluetooth_audio, part of the
bluetooth@1.0-service-qti HAL) lives in Wireless drivers and HAL — it’s a
Bluetooth HAL entry, not part of the primary audio HAL, even though it
carries audio data.
11.2.3. Provenance¶
- Source:
artifacts/super/vendor_a.img—lib/modules/{*.ko,modules.load}(module set + boot load order),bin/hw/*andlib64/hw/*(HAL service and implementation libraries),etc/vintf/manifest.xml(HAL declaration);artifacts/boot_a/kernel_config.txt.- Method:
ext4 image listed/extracted read-only with
7z; modules counted frommodules.load; HAL frombin/hw/lib64/hwnames and the VINTF manifest. No code executed.- Cross-refs:
ADSP and CDSP firmware (the DSP firmware these modules load and drive), Vendor drivers and HALs (the rest of the HAL/module catalogue, including generic platform HALs), Wireless drivers and HAL (Bluetooth audio HIDL client).