From df6d76968e3a7d355c25c2b0fde413dc09fe0c4a Mon Sep 17 00:00:00 2001 From: Yuan Zhao Date: Thu, 4 Jul 2019 10:32:09 +0800 Subject: [PATCH] disp: msm: dsi: Add a new function to get drm_panel A new API to get drm_panel from dsi_display. The drm_panel was defined as a member of drm_connector. When doing connector initialize, can set drm_panel to drm_connector. So this API is needed to get drm_panel from dsi_dsiplay. Change-Id: I0ec9de5a9407085048a8fef421b7b28d466085ed Signed-off-by: Yuan Zhao --- msm/dsi/dsi_display.c | 10 ++++++++++ msm/dsi/dsi_display.h | 9 +++++++++ 2 files changed, 19 insertions(+) diff --git a/msm/dsi/dsi_display.c b/msm/dsi/dsi_display.c index 0da75a811c73..878de8f4903e 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 29dab310952c..de26a7224ffa 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