summaryrefslogtreecommitdiff
path: root/include/linux/ipu-v3-pre.h
diff options
context:
space:
mode:
authorLiu Ying <Ying.Liu@freescale.com>2015-09-11 16:03:06 +0800
committerNitin Garg <nitin.garg@nxp.com>2016-01-14 11:01:47 -0600
commita04c581248bdafee8b335c1f4f509784076d6c83 (patch)
treed8a44ce0333f4daa1b7c71aa714f57fa1f0f5c5d /include/linux/ipu-v3-pre.h
parent8573397f949fd03652cd8524b693cd4f0450b096 (diff)
MLK-11316-3 video: mxc ipuv3 fb: Change pan display mechanism for PRE workaround
In order to workaround the PRE SoC bug recorded by errata ERR009624, the software cannot write the PRE_CTRL register when the PRE writes the PRE_CTRL register automatically to set the ENABLE bit(bit0) to 1 in the PRE repeat mode. The software mechanism to set the PRE_CTRL register is different for PRE Y resolution higher than 9 lines and lower than or equal to 9 lines. For cases in which Y resolution is higher than 9 lines, before we update PRE shadow, we just need to wait until the PRE store engine status runs out of the problematic PRE automatic writing window. While for cases in which Y resolutin is lower than or equal to 9 lines, we have to update PRE shadow in the buffer flip interrupt handler. Signed-off-by: Liu Ying <Ying.Liu@freescale.com> (cherry picked from commit bd9c14e24aaf67926dfd31bd819ab0c87129fe4b)
Diffstat (limited to 'include/linux/ipu-v3-pre.h')
-rw-r--r--include/linux/ipu-v3-pre.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/include/linux/ipu-v3-pre.h b/include/linux/ipu-v3-pre.h
index 1bf50aeda170..f5a26e5eadbf 100644
--- a/include/linux/ipu-v3-pre.h
+++ b/include/linux/ipu-v3-pre.h
@@ -90,7 +90,9 @@ int ipu_pre_config(int id, struct ipu_pre_context *config);
int ipu_pre_set_ctrl(unsigned int id, struct ipu_pre_context *config);
int ipu_pre_enable(int id);
void ipu_pre_disable(int id);
-int ipu_pre_set_fb_buffer(int id, unsigned long fb_paddr,
+int ipu_pre_set_fb_buffer(int id, bool resolve,
+ unsigned long fb_paddr,
+ unsigned int y_res,
unsigned int x_crop,
unsigned int y_crop,
unsigned int sec_buf_off,
@@ -135,7 +137,9 @@ void ipu_pre_disable(int id)
return;
}
-int ipu_pre_set_fb_buffer(int id, unsigned long fb_paddr,
+int ipu_pre_set_fb_buffer(int id, bool resolve,
+ unsigned long fb_paddr,
+ unsigned int y_res,
unsigned int x_crop,
unsigned int y_crop,
unsigned int sec_buf_off,