Phase 3: display, msm DRM drives the eDP panel (2026-11-03)
Attempt 2026-11-03-4. Image ab87e567a0eb05bd, kernel #5 (2026-11-03 2:09 PM ET), commit 072f347. Sources: the
netlog dumps/firstboot/2026-11-03-netlog.txt and the AP console log dumps/firstboot/2026-11-03-ap.log (both
gitignored), plus the owner looking at the panel.
Why
Every earlier boot went dark at about 33 s: VREG_EDP_3P3: disabling (attempt 2026-11-03-3,
wifi-2026-11-03.md). The mica DTS already described the mainline display path (&mdss,
&mdss_dp3 with an edp-panel on its aux-bus, &mdss_dp3_phy, vreg_edp_3p3, pwm-backlight), matching the stock
sde_edp (entry01-overlay.dts fragment 11). But every driver on it was =m in defconfig at a804c57, and the
initramfs loads no modules. Only simpledrm drove the screen, nothing claimed the panel supply, and the regulator core
turned it off as unused.
Changes (commit 072f347)
kernel/mica-display.config:DRM_MSM,PHY_QCOM_EDP,CLK_X1E80100_DISPCC,DRM_PANEL_EDP,BACKLIGHT_CLASS_DEVICE,BACKLIGHT_PWMandLEDS_QCOM_LPGset=y, plus the dependency chain:QCOM_LLCCandQCOM_OCMEM(DRM_MSM=yneeds them=yor=n), andLEDS_CLASS_MULTICOLORandQCOM_PBSfor the LPG.- Command line:
msm.skip_gpu=1. Otherwise the GPU would join the MDSS component match (msm_drv.c:1076-1086) and wait on gpucc, whose SMMU3da0000.iommuis still deferred. - DTS: the backlight’s
edp_bl_enpin state moves from TLMM 74 (left over from the 9345; stock muxes it to QUP SE18) to PMC8380-3 GPIO 4, the stockqcom,edp-backlight-en-gpio. The PWM pin takes the stockedp_pwm_activeconfig. /init: DRM connectors, the backlight, the panel supplies after uptime 40 s, the panel identity from the EDID (no serials;check.shtest 16), display dmesg, and a banner ontty1.
Result: pass
The panel stayed lit past 40 s and showed the GBOOK: display check banner (the owner saw it).
- msm binds early:
[drm] Initialized msm 1.13.0 for ae01000.display-controller on minor 1at 1.154 s.dpu hardware revision:0x90020000.- All three DP controllers bound (
ae90000,ae98000,aea0000). fb0: msmdrmfb frame buffer deviceat 1.595 s, taking over from simpledrm’sfb0(0.453 s).no GPU device was found: expected withmsm.skip_gpu=1.
- Connectors:
card1-eDP-1 status=connected enabled=enabled modes=2560x1600.card1-DP-1andcard1-DP-2are disconnected (nothing on Type-C), andcard1-Writeback-1is there too. - Panel supply:
VREG_EDP_3P3 state=enabled users=1andVBL9 state=enabled users=1after 40 s. NoVREG_EDP_3P3: disablingline this boot. - Backlight:
backlight max=4095 actual=2048 power=0, a 12-bit PWM at 50 %. Stock caps the level at0x190(fragment 11) and0x200(fragment 77); mainline uses the LPG’s full range. - Panel:
Unknown panel LGD 0x0804, using conservative timings. That’s LG Display, product0x0804, not inedp_panels[]ata804c57. TheWARN_ONsplat atpanel-edp.c:829is the driver’s deliberate “add a table entry” signal (comment at:824-828), not a fault. Conservative timings only lengthen the power sequencing delays. - Deferred at the end: only
arm-scmi(mailbox17430000).3da0000.iommuwas listed at the first check and not at the last.
Not yet captured
GBOOK: panel-id=card1-eDP-1 none: sysfs reports theedidattribute’s size as 0, so[ -s ]skipped a readable file. Fixed in commit2d2f2b5(test-r;noneon a short read). The next image will print the EDID name and text descriptors.- The dropbox readback (
attempt.sh readback) didn’t run because adb was down after the stock boot (Wireless debugging). Netlog has the whole log, so nothing is missing.
Next for display
- Add an
edp_panels[]entry forLGD 0x0804. It needs the panel’s datasheet delays; the EDID name from the next image identifies the part. This is for upstream; the panel works without it. - External DP over Type-C (
mdss_dp0/dp1are bound;aux_bridgestill reports “failed to acquire drm_bridge” in usb-2026-11-02.md). - The GPU:
CLK_X1E80100_GPUCC=y(unblocks3da0000.iommu), dropmsm.skip_gpu=1, and stage the GPU firmware. Zap is off under EL2.