Loading drivers/gpu/drm/msm/dsi-staging/dsi_drm.c +8 −11 Original line number Diff line number Diff line /* * Copyright (c) 2016-2019, The Linux Foundation. All rights reserved. * Copyright (c) 2016-2020, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading Loading @@ -263,6 +263,7 @@ static void dsi_bridge_disable(struct drm_bridge *bridge) int rc = 0; struct dsi_display *display; struct dsi_bridge *c_bridge = to_dsi_bridge(bridge); int private_flags; if (!bridge) { pr_err("Invalid params\n"); Loading @@ -270,18 +271,14 @@ static void dsi_bridge_disable(struct drm_bridge *bridge) } display = c_bridge->display; private_flags = bridge->encoder->crtc->state->adjusted_mode.private_flags; if (display && display->drm_conn) { if (bridge->encoder->crtc->state->adjusted_mode.private_flags & MSM_MODE_FLAG_SEAMLESS_POMS) { display->poms_pending = true; /* Disable ESD thread, during panel mode switch */ sde_connector_schedule_status_work(display->drm_conn, false); } else { display->poms_pending = false; display->poms_pending = private_flags & MSM_MODE_FLAG_SEAMLESS_POMS; sde_connector_helper_bridge_disable(display->drm_conn); } } rc = dsi_display_pre_disable(c_bridge->display); if (rc) { Loading drivers/gpu/drm/msm/sde/sde_connector.c +18 −10 Original line number Diff line number Diff line Loading @@ -92,8 +92,7 @@ static int sde_backlight_device_update_status(struct backlight_device *bd) if (!bl_lvl && brightness) bl_lvl = 1; if (display->panel->bl_config.bl_update == BL_UPDATE_DELAY_UNTIL_FIRST_FRAME && !c_conn->allow_bl_update) { if (!c_conn->allow_bl_update) { c_conn->unset_bl_level = bl_lvl; return 0; } Loading Loading @@ -480,8 +479,7 @@ static int _sde_connector_update_bl_scale(struct sde_connector *c_conn) bl_config = &dsi_display->panel->bl_config; if (dsi_display->panel->bl_config.bl_update == BL_UPDATE_DELAY_UNTIL_FIRST_FRAME && !c_conn->allow_bl_update) { if (!c_conn->allow_bl_update) { c_conn->unset_bl_level = bl_config->bl_level; return 0; } Loading Loading @@ -666,21 +664,31 @@ void sde_connector_helper_bridge_disable(struct drm_connector *connector) { int rc; struct sde_connector *c_conn = NULL; struct dsi_display *display; bool poms_pending = false; if (!connector) return; c_conn = to_sde_connector(connector); if (c_conn->connector_type == DRM_MODE_CONNECTOR_DSI) { display = (struct dsi_display *) c_conn->display; poms_pending = display->poms_pending; } if (!poms_pending) { rc = _sde_connector_update_dirty_properties(connector); if (rc) { SDE_ERROR("conn %d final pre kickoff failed %d\n", connector->base.id, rc); SDE_EVT32(connector->base.id, SDE_EVTLOG_ERROR); } } /* Disable ESD thread */ sde_connector_schedule_status_work(connector, false); c_conn = to_sde_connector(connector); if (c_conn->bl_device) { c_conn->bl_device->props.power = FB_BLANK_POWERDOWN; c_conn->bl_device->props.state |= BL_CORE_FBBLANK; Loading Loading
drivers/gpu/drm/msm/dsi-staging/dsi_drm.c +8 −11 Original line number Diff line number Diff line /* * Copyright (c) 2016-2019, The Linux Foundation. All rights reserved. * Copyright (c) 2016-2020, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading Loading @@ -263,6 +263,7 @@ static void dsi_bridge_disable(struct drm_bridge *bridge) int rc = 0; struct dsi_display *display; struct dsi_bridge *c_bridge = to_dsi_bridge(bridge); int private_flags; if (!bridge) { pr_err("Invalid params\n"); Loading @@ -270,18 +271,14 @@ static void dsi_bridge_disable(struct drm_bridge *bridge) } display = c_bridge->display; private_flags = bridge->encoder->crtc->state->adjusted_mode.private_flags; if (display && display->drm_conn) { if (bridge->encoder->crtc->state->adjusted_mode.private_flags & MSM_MODE_FLAG_SEAMLESS_POMS) { display->poms_pending = true; /* Disable ESD thread, during panel mode switch */ sde_connector_schedule_status_work(display->drm_conn, false); } else { display->poms_pending = false; display->poms_pending = private_flags & MSM_MODE_FLAG_SEAMLESS_POMS; sde_connector_helper_bridge_disable(display->drm_conn); } } rc = dsi_display_pre_disable(c_bridge->display); if (rc) { Loading
drivers/gpu/drm/msm/sde/sde_connector.c +18 −10 Original line number Diff line number Diff line Loading @@ -92,8 +92,7 @@ static int sde_backlight_device_update_status(struct backlight_device *bd) if (!bl_lvl && brightness) bl_lvl = 1; if (display->panel->bl_config.bl_update == BL_UPDATE_DELAY_UNTIL_FIRST_FRAME && !c_conn->allow_bl_update) { if (!c_conn->allow_bl_update) { c_conn->unset_bl_level = bl_lvl; return 0; } Loading Loading @@ -480,8 +479,7 @@ static int _sde_connector_update_bl_scale(struct sde_connector *c_conn) bl_config = &dsi_display->panel->bl_config; if (dsi_display->panel->bl_config.bl_update == BL_UPDATE_DELAY_UNTIL_FIRST_FRAME && !c_conn->allow_bl_update) { if (!c_conn->allow_bl_update) { c_conn->unset_bl_level = bl_config->bl_level; return 0; } Loading Loading @@ -666,21 +664,31 @@ void sde_connector_helper_bridge_disable(struct drm_connector *connector) { int rc; struct sde_connector *c_conn = NULL; struct dsi_display *display; bool poms_pending = false; if (!connector) return; c_conn = to_sde_connector(connector); if (c_conn->connector_type == DRM_MODE_CONNECTOR_DSI) { display = (struct dsi_display *) c_conn->display; poms_pending = display->poms_pending; } if (!poms_pending) { rc = _sde_connector_update_dirty_properties(connector); if (rc) { SDE_ERROR("conn %d final pre kickoff failed %d\n", connector->base.id, rc); SDE_EVT32(connector->base.id, SDE_EVTLOG_ERROR); } } /* Disable ESD thread */ sde_connector_schedule_status_work(connector, false); c_conn = to_sde_connector(connector); if (c_conn->bl_device) { c_conn->bl_device->props.power = FB_BLANK_POWERDOWN; c_conn->bl_device->props.state |= BL_CORE_FBBLANK; Loading