diff --git a/msm/dsi/dsi_panel.c b/msm/dsi/dsi_panel.c index d4aa67debb9c..7393553c6f9e 100755 --- a/msm/dsi/dsi_panel.c +++ b/msm/dsi/dsi_panel.c @@ -18,6 +18,10 @@ #include "sde_dbg.h" #include "dsi_display.h" +static struct blocking_notifier_head dsi_freq_head = + BLOCKING_NOTIFIER_INIT(dsi_freq_head); +EXPORT_SYMBOL_GPL(dsi_freq_head); + /** * topology is currently defined by a set of following 3 values: * 1. num of layer mixers @@ -4785,6 +4789,10 @@ int dsi_panel_pre_mode_switch_to_video(struct dsi_panel *panel) panel->name, rc); mutex_unlock(&panel->panel_lock); + /* notify consumers only if refresh rate has been updated */ + if (!rc) + blocking_notifier_call_chain(&dsi_freq_head, + (unsigned long)panel->cur_mode->timing.refresh_rate, NULL); return rc; }