Hi all, This is a very WIP RFC series that attempts to add display support for Milos, in particular on The Fairphone (Gen. 6) using the SM7635.
I have excluded sending panel driver and dt-bindings to reduce the patch count, since they should not be relevant for now. The data in the patches is mostly derived from the downstream msm-6.1 kernel for this SoC, named "volcano" downstream. https://gerrit-public.fairphone.software/plugins/gitiles/platform/vendor/qcom/proprietary/display-devicetree/+/refs/heads/odm/rc/target/15/fp6/display/volcano-sde-common.dtsi While I'm fairly sure a good chunk of the data is correct (marked "OK"), there's still many unknowns (marked "TODO" or similar) that you can see in the patches. Unfortunately it doesn't work yet, with the screen staying dark and these errors appearing in dmesg repeatedly. [ 6.541696] [drm:dpu_encoder_frame_done_timeout:2727] [dpu error]enc33 frame done timeout [ 6.587091] [drm:_dpu_encoder_phys_cmd_wait_for_idle] *ERROR* id:33 pp:2 kickoff timeout 0 cnt 1 koff_cnt 1 [ 6.587387] [drm:dpu_encoder_phys_cmd_prepare_for_kickoff] *ERROR* failed wait_for_idle: id:33 ret:-110 pp:2 [ 6.589509] [drm:dpu_encoder_helper_hw_reset:1763] [dpu error]enc33 ctl 1 reset failure [ 6.637482] [drm:dpu_encoder_frame_done_timeout:2727] [dpu error]enc33 frame done timeout [ 6.680077] [drm:dpu_encoder_phys_cmd_wait_for_commit_done] *ERROR* failed wait_for_idle: id:33 ret:-110 intf:1 [ 6.680356] [drm:dpu_kms_wait_for_commit_done:525] [dpu error]wait for commit done returned -110 [ 6.684517] [drm:dpu_encoder_helper_hw_reset:1763] [dpu error]enc33 ctl 1 reset failure [ 6.729507] [drm:dpu_encoder_frame_done_timeout:2727] [dpu error]enc33 frame done timeout The panel is the BOE BJ631JHM-T71-D900 with a Novatek NT37705 driver IC, running in command mode (not video mode). The vsync/TE pin should be configured correctly: ~ # cat /sys/kernel/debug/pinctrl/f100000.pinctrl/pinmux-pins | grep GPIO_129 pin 129 (GPIO_129): device ae94000.dsi.0 function mdp_vsync group gpio129 A full dmesg can be found at https://public.lucaweiss.eu/tmp/milos-mdss-log-2025-12-19.txt Schematics of the device are also available if somebody wants to take a look, starting on page 109: https://www.fairphone.com/wp-content/uploads/2025/08/Fairphone-Gen.-6_-Information-on-how-to-repair-dispose-of-and-recycle-EN-NL-FR-DE.pdf Please let me know if you have any ideas what could be wrong and how to fix it. Thanks! Signed-off-by: Luca Weiss <[email protected]> --- Luca Weiss (6): soc: qcom: ubwc: Add config for Milos drm/msm/dsi: add support for DSI-PHY on Milos drm/msm: mdss: Add Milos support drm/msm/dpu: Add Milos support arm64: dts: qcom: milos: Add MDSS arm64: dts: qcom: milos-fairphone-fp6: Enable panel arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts | 71 +++++- arch/arm64/boot/dts/qcom/milos.dtsi | 211 ++++++++++++++- .../gpu/drm/msm/disp/dpu1/catalog/dpu_10_2_milos.h | 284 +++++++++++++++++++++ drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c | 22 ++ drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h | 1 + drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 1 + drivers/gpu/drm/msm/dsi/phy/dsi_phy.c | 2 + drivers/gpu/drm/msm/dsi/phy/dsi_phy.h | 1 + drivers/gpu/drm/msm/dsi/phy/dsi_phy_7nm.c | 24 ++ drivers/gpu/drm/msm/msm_mdss.c | 5 + drivers/soc/qcom/ubwc_config.c | 12 + 11 files changed, 627 insertions(+), 7 deletions(-) --- base-commit: 167013d059d5c4a09d49068408044c7a65a26cee change-id: 20251219-milos-mdss-fa0763693775 Best regards, -- Luca Weiss <[email protected]>
