diff options
author | Ken Huang <kenbshuang@google.com> | 2020-08-20 15:11:55 +0800 |
---|---|---|
committer | Ken Huang <kenbshuang@google.com> | 2020-08-20 10:15:39 +0000 |
commit | adf5f133f99e4ecb3f95cda4eec0de8db5c0c35c (patch) | |
tree | 4bb55f18daf9226c609853998d605929e44887d4 | |
parent | 2382352e94e356b8deb48bb45566edee4f102151 (diff) | |
download | display-drivers-adf5f133f99e4ecb3f95cda4eec0de8db5c0c35c.tar.gz |
msm/dsi: Fix mismatch between refresh rate and notifierandroid-11.0.0_r0.18
Instead of current_mode, Kernel idle timer uses display_mode to
switch refresh rate.
Bug: 165768235
Test: enable refresh rate overlay and check fps state in sysfs node.
Signed-off-by: Ken Huang <kenbshuang@google.com>
Change-Id: Iea633600a7bf6f44c26ebd1d4251b73f9278ffbd
-rw-r--r-- | msm/dsi/dsi_backlight.c | 4 | ||||
-rw-r--r-- | msm/dsi/dsi_panel.h | 1 | ||||
-rw-r--r-- | msm/dsi/dsi_panel_switch.c | 7 |
3 files changed, 11 insertions, 1 deletions
diff --git a/msm/dsi/dsi_backlight.c b/msm/dsi/dsi_backlight.c index 3726060d..a43212ab 100644 --- a/msm/dsi/dsi_backlight.c +++ b/msm/dsi/dsi_backlight.c @@ -699,7 +699,9 @@ static ssize_t state_show(struct device *dev, struct device_attribute *attr, mutex_unlock(&bl->state_lock); if (show_mode) { - const struct dsi_display_mode *mode = panel->cur_mode; + const struct dsi_display_mode *mode = + get_panel_display_mode(panel); + if (unlikely(!mode)) return -ENODEV; diff --git a/msm/dsi/dsi_panel.h b/msm/dsi/dsi_panel.h index 67402485..01be1ea5 100644 --- a/msm/dsi/dsi_panel.h +++ b/msm/dsi/dsi_panel.h @@ -581,5 +581,6 @@ int dsi_panel_get_vendor_extinfo(struct dsi_panel *panel); ssize_t parse_byte_buf(u8 *out, size_t out_len, char *src, size_t src_len); int parse_u32_buf(char *src, size_t src_len, u32 *out, size_t out_len); +const struct dsi_display_mode *get_panel_display_mode(struct dsi_panel *panel); #endif /* _DSI_PANEL_H_ */ diff --git a/msm/dsi/dsi_panel_switch.c b/msm/dsi/dsi_panel_switch.c index 1dc00ff3..1362758c 100644 --- a/msm/dsi/dsi_panel_switch.c +++ b/msm/dsi/dsi_panel_switch.c @@ -441,6 +441,13 @@ static int panel_post_enable(struct dsi_panel *panel) return rc; } +const struct dsi_display_mode *get_panel_display_mode(struct dsi_panel *panel) +{ + struct panel_switch_data *pdata = panel->private_data; + + return unlikely(!pdata) ? NULL : pdata->display_mode; +} + static int panel_idle(struct dsi_panel *panel) { struct panel_switch_data *pdata = panel->private_data; |