diff --git a/msm/dsi/dsi_panel.c b/msm/dsi/dsi_panel.c index e0c6f056cd0e..f6045031ee5d 100644 --- a/msm/dsi/dsi_panel.c +++ b/msm/dsi/dsi_panel.c @@ -20,6 +20,9 @@ #include "sde_vdc_helper.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: @@ -5251,6 +5254,10 @@ int dsi_panel_switch(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; }