diff --git a/msm/dsi/dsi_display.c b/msm/dsi/dsi_display.c index 0da75a811c..878de8f490 100644 --- a/msm/dsi/dsi_display.c +++ b/msm/dsi/dsi_display.c @@ -5537,6 +5537,16 @@ static struct mipi_dsi_host_ops dsi_host_ext_ops = { .transfer = dsi_host_transfer, }; +struct drm_panel *dsi_display_get_drm_panel(struct dsi_display * display) +{ + if (!display || !display->panel) { + pr_err("invalid param(s)\n"); + return NULL; + } + + return &display->panel->drm_panel; +} + int dsi_display_drm_ext_bridge_init(struct dsi_display *display, struct drm_encoder *encoder, struct drm_connector *connector) { diff --git a/msm/dsi/dsi_display.h b/msm/dsi/dsi_display.h index 29dab31095..de26a7224f 100644 --- a/msm/dsi/dsi_display.h +++ b/msm/dsi/dsi_display.h @@ -585,6 +585,15 @@ int dsi_display_set_tpg_state(struct dsi_display *display, bool enable); int dsi_display_clock_gate(struct dsi_display *display, bool enable); int dsi_dispaly_static_frame(struct dsi_display *display, bool enable); +/** + * dsi_display_get_drm_panel() - get drm_panel from display. + * @display: Handle to display. + * Get drm_panel which was inclued in dsi_display's dsi_panel. + * + * Return: drm_panel/NULL. + */ +struct drm_panel *dsi_display_get_drm_panel(struct dsi_display *display); + /** * dsi_display_enable_event() - enable interrupt based connector event * @connector: Pointer to drm connector structure