diff options
| author | Jayant Shekhar <jshekhar@codeaurora.org> | 2015-01-30 11:01:59 +0530 |
|---|---|---|
| committer | David Keitel <dkeitel@codeaurora.org> | 2016-03-23 20:39:29 -0700 |
| commit | d0abb3685d76414ada539f670baebe17258c14a2 (patch) | |
| tree | 1a3aaafbce9a51f721f50337f36345c7e0a8d939 /drivers/video/fbdev | |
| parent | b6cd64fd538abc99d0a521d806c5fad6abd22ead (diff) | |
msm: mdss: Add extra panel info element in the fb_data_type
Dynamically allocating memory and using can cause overhead
while the memory is getting allocated and de-allocated for
every update for recovery use-cases. Hence, add one more
instance of struct panel info element in the fb_data_type
and use it.
Change-Id: Ic26b73bd779e21b008093cab1cb3decc28a95587
Signed-off-by: Jayant Shekhar <jshekhar@codeaurora.org>
(cherry picked from commit b2110a1e44c030cbdc715a18af2adc5f37da2411)
[veeras@codeaurora.org: Resolve merge conflict in mdss_fb.c]
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
Diffstat (limited to 'drivers/video/fbdev')
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_fb.c | 14 | ||||
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_fb.h | 1 |
2 files changed, 5 insertions, 10 deletions
diff --git a/drivers/video/fbdev/msm/mdss_fb.c b/drivers/video/fbdev/msm/mdss_fb.c index a0acde96c554..3d11bd4f8bd2 100644 --- a/drivers/video/fbdev/msm/mdss_fb.c +++ b/drivers/video/fbdev/msm/mdss_fb.c @@ -3076,19 +3076,13 @@ static int mdss_fb_check_var(struct fb_var_screeninfo *var, return -EINVAL; if (mfd->panel_info) { - struct mdss_panel_info *pinfo; int rc; - pinfo = kmalloc(sizeof(struct mdss_panel_info), GFP_KERNEL); - if (!pinfo) { - pr_err("unable to allocate memory for pinfo\n"); - return -ENOMEM; - } - memcpy(pinfo, mfd->panel_info, sizeof(*pinfo)); - mdss_fb_var_to_panelinfo(var, pinfo); + memcpy(&mfd->reconfig_panel_info, mfd->panel_info, + sizeof(mfd->reconfig_panel_info)); + mdss_fb_var_to_panelinfo(var, &mfd->reconfig_panel_info); rc = mdss_fb_send_panel_event(mfd, MDSS_EVENT_CHECK_PARAMS, - pinfo); - kfree(pinfo); + &mfd->reconfig_panel_info); if (IS_ERR_VALUE(rc)) return rc; mfd->panel_reconfig = rc; diff --git a/drivers/video/fbdev/msm/mdss_fb.h b/drivers/video/fbdev/msm/mdss_fb.h index 114aac2eb820..b8609b3b1c0d 100644 --- a/drivers/video/fbdev/msm/mdss_fb.h +++ b/drivers/video/fbdev/msm/mdss_fb.h @@ -249,6 +249,7 @@ struct msm_fb_data_type { struct panel_id panel; struct mdss_panel_info *panel_info; + struct mdss_panel_info reconfig_panel_info; int split_mode; int split_fb_left; int split_fb_right; |
