Skip to content

disp: msm: add drm panel support#17

Merged
abdesai133410 merged 9 commits into
qualcomm-linux:mainfrom
arpit-dev-geek:arpit_main
Jul 9, 2026
Merged

disp: msm: add drm panel support#17
abdesai133410 merged 9 commits into
qualcomm-linux:mainfrom
arpit-dev-geek:arpit_main

Conversation

@arpit-dev-geek

Copy link
Copy Markdown
Contributor

Add support for integrating DRM panel drivers into the Qualcomm downstream DSI stack. This series refactors MIPI host lifecycle, introduces a stub panel for DT-less probe, stores DSC and DSI config from the upstream panel device, enumerates modes via drm_panel_get_modes, and wires up bridge, connector, and lifecycle ops to delegate to the DRM panel framework instead of downstream DT-based paths.

Move the dsi_display_mipi_host_init() function call from dsi_display_bind()
to dsi_display_dev_init() and dsi_display_mipi_host_deinit() function call
from dsi_display_unbind() to dsi_display_dev_deinit().

Change-Id: Ib8b9ed9d5ca9cca6dd3911eea98bd095f8b19fea
Signed-off-by: Arpit Saini <arpisain@qti.qualcomm.com>
For DRM panels, the panel driver registers itself
via the MIPI DSI host framework.

This change adds the probe-time infrastructure to detect and
initialize DRM panels and create a minimal stub panel,
enabling integration with the MIPI DSI host framework
without requiring a downstream DT panel node.

Change-Id: Iaf6d18b6620f75e26acfb6d5201d4acf79f911b7
Signed-off-by: Arpit Saini <arpisain@qti.qualcomm.com>
Move component_add() from dsi_display_bind() to dsi_host_attach()
and component_del() to dsi_host_detach().

This enables support for DRM panel/bridge by properly managing
component lifecycle during DSI host attachment/detachment

Change-Id: Id8d6b69a696201a8dcf776eaed7dbe9c621dff95
Signed-off-by: Arpit Saini <arpisain@qti.qualcomm.com>
Add DT-based discovery of drm_panel and allow bind without
legacy panel data when a DRM panel/bridge is present.

Skip legacy GPIO/backlight handling when using DRM panel/bridge.

Change-Id: Iaf052584b2732cb13612d0924068850bb9d9925c
Signed-off-by: Arpit Saini <arpisain@qti.qualcomm.com>
Store the drm panel's DSI config (lanes, format, mode_flags,dsc)
into panel->mipi_device so dsi_display_bind() can use it to
populate DSC params and panel config.

Also store the host pointer so panel->mipi_device is a fully
functional mipi_dsi_device for DCS command sending.

Change-Id: I11ec3e09898040fd773e645892e98e1d79625821
Signed-off-by: Arpit Saini <arpisain@qti.qualcomm.com>
For DRM panel, use drm_panel_get_modes() to discover modes.
Populate dsi_display_mode priv_info (DSC config, topology,transfer time)
via dsi_display_populate_modes_from_drm_panel().

Change-Id: Ifb37b45343754739075b3fd89b5fe8b69e5bc099
Signed-off-by: Arpit Saini <arpisain@qti.qualcomm.com>
DRM panels rely on the panel driver and DRM core for mode validation,
instead of DT-based timing nodes.
Guard DSI bridge and connector ops for drm_panel.

Change-Id: Id0571e1173363e4560c4d794e6037d611864be0d
Signed-off-by: Arpit Saini <arpisain@qti.qualcomm.com>
For DRM panels, delegate panel enable/disable lifecycle
to drm_panel prepare/enable/disable/unprepare() ops.

Legacy DT-based panels are unaffected.

Change-Id: I4d791ecf433c4319fb6aab664a525caad5ba04fd
Signed-off-by: Arpit Saini <arpisain@qti.qualcomm.com>
The drm panels manage their own backlight through the panel
driver. Skip backlight registration and status updates
in sde_connector ops for drm_panel.

Change-Id: Ib9f45f2ab1a44bf4e62d638fbc5d67207dcf6fb1
Signed-off-by: Arpit Saini <arpisain@qti.qualcomm.com>
@abdesai133410
abdesai133410 merged commit 4a912bf into qualcomm-linux:main Jul 9, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants