10.7. Display drivers and HAL

The display slice of the vendor driver/HAL layer — split out from the general HAL catalogue (Vendor drivers and HALs) because it belongs next to the e-ink/display pages in this section (The e-ink software stack (Onyx EPDC), E-ink driver internals (register-level, from the kernel)).

One structural fact up front: none of the Onyx-specific display drivers are modules. The e-ink EPDC and the LM3630A front-light are both built into the kernel (=y; see The e-ink software stack (Onyx EPDC)), and there is no Onyx or EPD entry in the VINTF manifest — the panel is driven through the custom /dev/ebc path, not a standard graphics HAL.

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.

10.7.1. Loadable kernel module

Module

Role / hardware

lcd.ko

the generic upstream LCD-class helper (a dependency of the built-in EPDC/backlight path — The e-ink software stack (Onyx EPDC)), not an Onyx driver

10.7.2. HAL services and implementations

HAL

Implementation

Hardware / cross-ref

display.composer-service + display.allocator-service

gralloc.lito.so, graphics.mapper@{3,4}.0-impl-qti-display

DPU/SDE compositor backing SurfaceFlinger; panel via EPDC (The e-ink software stack (Onyx EPDC))

lights-service.qti

lights.lito.so

notification LEDs (blue/red) + the front-light bridge (The e-ink software stack (Onyx EPDC))

The GPU/NPU/media compute HALs (Vulkan, renderscript, neuralnetworks, media.c2/omx) are cross-cutting rather than display-specific and stay in Vendor drivers and HALs.

10.7.3. Provenance

Source:

artifacts/super/vendor_a.imglib/modules/{*.ko,modules.load} (module set + boot load order), bin/hw/* and lib64/hw/* (HAL service and implementation libraries), etc/vintf/manifest.xml (HAL declaration); artifacts/boot_a/kernel_config.txt (built-in vs. modular).

Method:

ext4 image listed/extracted read-only with 7z; modules counted from modules.load; HAL from bin/hw / lib64/hw names and the VINTF manifest. No code executed.

Cross-refs:

The e-ink software stack (Onyx EPDC) (built-in Onyx drivers, composer vs. EPDC), E-ink driver internals (register-level, from the kernel) (FPGA/TCON register-level detail), Vendor drivers and HALs (the rest of the HAL/module catalogue).