mirror of
https://github.com/rd-stuffs/msm-4.14.git
synced 2025-02-20 11:45:48 +08:00
drm/msm: dsi-staging: Trigger drm notifier
Change-Id: I225b36292f96eafb0703e3f0701f924f20b186d5 Signed-off-by: Richard Raya <rdxzv.dev@gmail.com>
This commit is contained in:
parent
6bf93f236a
commit
5dc122ca75
@ -14,6 +14,8 @@
|
||||
|
||||
|
||||
#define pr_fmt(fmt) "dsi-drm:[%s] " fmt, __func__
|
||||
#include <linux/msm_drm_notify.h>
|
||||
|
||||
#include <drm/drm_atomic_helper.h>
|
||||
#include <drm/drm_atomic.h>
|
||||
#include <drm/drm_bridge.h>
|
||||
@ -180,6 +182,8 @@ static void dsi_bridge_pre_enable(struct drm_bridge *bridge)
|
||||
{
|
||||
int rc = 0;
|
||||
struct dsi_bridge *c_bridge = to_dsi_bridge(bridge);
|
||||
struct msm_drm_notifier notify_data;
|
||||
int power_mode;
|
||||
|
||||
if (!bridge) {
|
||||
pr_err("Invalid params\n");
|
||||
@ -193,6 +197,11 @@ static void dsi_bridge_pre_enable(struct drm_bridge *bridge)
|
||||
|
||||
atomic_set(&c_bridge->display->panel->esd_recovery_pending, 0);
|
||||
|
||||
power_mode = sde_connector_get_lp(c_bridge->display->drm_conn);
|
||||
notify_data.data = &power_mode;
|
||||
notify_data.id = MSM_DRM_PRIMARY_DISPLAY;
|
||||
msm_drm_notifier_call_chain(MSM_DRM_EARLY_EVENT_BLANK, ¬ify_data);
|
||||
|
||||
/* By this point mode should have been validated through mode_fixup */
|
||||
rc = dsi_display_set_mode(c_bridge->display,
|
||||
&(c_bridge->dsi_mode), 0x0);
|
||||
@ -241,6 +250,8 @@ static void dsi_bridge_pre_enable(struct drm_bridge *bridge)
|
||||
}
|
||||
SDE_ATRACE_END("dsi_display_enable");
|
||||
|
||||
msm_drm_notifier_call_chain(MSM_DRM_EVENT_BLANK, ¬ify_data);
|
||||
|
||||
rc = dsi_display_splash_res_cleanup(c_bridge->display);
|
||||
if (rc)
|
||||
pr_err("Continuous splash pipeline cleanup failed, rc=%d\n",
|
||||
@ -358,12 +369,19 @@ static void dsi_bridge_post_disable(struct drm_bridge *bridge)
|
||||
{
|
||||
int rc = 0;
|
||||
struct dsi_bridge *c_bridge = to_dsi_bridge(bridge);
|
||||
struct msm_drm_notifier notify_data;
|
||||
int power_mode;
|
||||
|
||||
if (!bridge) {
|
||||
pr_err("Invalid params\n");
|
||||
return;
|
||||
}
|
||||
|
||||
power_mode = sde_connector_get_lp(c_bridge->display->drm_conn);
|
||||
notify_data.data = &power_mode;
|
||||
notify_data.id = MSM_DRM_PRIMARY_DISPLAY;
|
||||
msm_drm_notifier_call_chain(MSM_DRM_EARLY_EVENT_BLANK, ¬ify_data);
|
||||
|
||||
SDE_ATRACE_BEGIN("dsi_bridge_post_disable");
|
||||
SDE_ATRACE_BEGIN("dsi_display_disable");
|
||||
rc = dsi_display_disable(c_bridge->display);
|
||||
@ -384,6 +402,8 @@ static void dsi_bridge_post_disable(struct drm_bridge *bridge)
|
||||
}
|
||||
SDE_ATRACE_END("dsi_bridge_post_disable");
|
||||
|
||||
msm_drm_notifier_call_chain(MSM_DRM_EVENT_BLANK, ¬ify_data);
|
||||
|
||||
if (c_bridge->display->is_prim_display)
|
||||
atomic_set(&prim_panel_is_on, false);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user