From a64e85b8971b7fbda1f65a5b4698dcfdaa3d07b4 Mon Sep 17 00:00:00 2001 From: Sandy Huang Date: Tue, 2 Jul 2019 11:36:33 +0800 Subject: [PATCH] drm/bridge: analogix_dp: loader protect for logo add loader protect for logo display. Change-Id: Idbb83eaad0428083cb544723bf02784a7f253305 Signed-off-by: Sandy Huang --- .../gpu/drm/bridge/analogix/analogix_dp_core.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c index 0df3eaa96fe5..17bbdb2ccf4a 100644 --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c @@ -1150,7 +1150,22 @@ analogix_dp_best_encoder(struct drm_connector *connector) return dp->encoder; } +static int analogix_dp_loader_protect(struct drm_connector *connector, bool on) +{ + struct analogix_dp_device *dp = to_dp(connector); + + if (dp->plat_data->panel) + drm_panel_loader_protect(dp->plat_data->panel, on); + if (on) + pm_runtime_get_sync(dp->dev); + else + pm_runtime_put(dp->dev); + + return 0; +} + static const struct drm_connector_helper_funcs analogix_dp_connector_helper_funcs = { + .loader_protect = analogix_dp_loader_protect, .get_modes = analogix_dp_get_modes, .best_encoder = analogix_dp_best_encoder, }; @@ -1205,6 +1220,7 @@ static int analogix_dp_bridge_attach(struct drm_bridge *bridge) if (!dp->plat_data->skip_connector) { connector = &dp->connector; connector->polled = DRM_CONNECTOR_POLL_HPD; + connector->port = dp->dev->of_node; ret = drm_connector_init(dp->drm_dev, connector, &analogix_dp_connector_funcs,