fbdev: msm: add property of panel addr offset
Since some panel addr does not start from zero, add
property for the offset.
Change-Id: I7f22138f969418e87a1d7ed8b116b4fdc45a84d6
Signed-off-by: Xipeng Gu <guxipeng@codeaurora.org>
diff --git a/drivers/video/fbdev/msm/mdss_dsi_panel.c b/drivers/video/fbdev/msm/mdss_dsi_panel.c
index 7eb8c70..19de5da 100644
--- a/drivers/video/fbdev/msm/mdss_dsi_panel.c
+++ b/drivers/video/fbdev/msm/mdss_dsi_panel.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2012-2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -662,6 +662,12 @@
return 0;
}
+ if (pinfo->partial_update_col_addr_offset)
+ roi.x += pinfo->partial_update_col_addr_offset;
+
+ if (pinfo->partial_update_row_addr_offset)
+ roi.y += pinfo->partial_update_row_addr_offset;
+
if (pinfo->dcs_cmd_by_left) {
if (left_or_both && ctrl->ndx == DSI_CTRL_RIGHT) {
/* 2A/2B sent by left already */
@@ -2099,6 +2105,7 @@
static int mdss_dsi_parse_panel_features(struct device_node *np,
struct mdss_dsi_ctrl_pdata *ctrl)
{
+ u32 value[2];
struct mdss_panel_info *pinfo;
if (!np || !ctrl) {
@@ -2116,6 +2123,14 @@
pinfo->partial_update_enabled);
ctrl->set_col_page_addr = mdss_dsi_set_col_page_addr;
if (pinfo->partial_update_enabled) {
+ int rc = of_property_read_u32_array(np,
+ "qcom,partial-update-addr-offset",
+ value, 2);
+ pinfo->partial_update_col_addr_offset =
+ (!rc ? value[0] : 0);
+ pinfo->partial_update_row_addr_offset =
+ (!rc ? value[1] : 0);
+
pinfo->partial_update_roi_merge =
of_property_read_bool(np,
"qcom,partial-update-roi-merge");