summaryrefslogtreecommitdiff
path: root/drivers/video/fbdev
diff options
context:
space:
mode:
authorJayant Shekhar <jshekhar@codeaurora.org>2015-01-30 11:01:59 +0530
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 20:39:29 -0700
commitd0abb3685d76414ada539f670baebe17258c14a2 (patch)
tree1a3aaafbce9a51f721f50337f36345c7e0a8d939 /drivers/video/fbdev
parentb6cd64fd538abc99d0a521d806c5fad6abd22ead (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.c14
-rw-r--r--drivers/video/fbdev/msm/mdss_fb.h1
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;