diff options
author | Liu Ying <Ying.Liu@freescale.com> | 2015-09-11 16:03:06 +0800 |
---|---|---|
committer | Liu Ying <Ying.Liu@freescale.com> | 2015-09-18 18:04:01 +0800 |
commit | bd9c14e24aaf67926dfd31bd819ab0c87129fe4b (patch) | |
tree | 200836495a1beb5c5cfcaab1c92c44e425559021 /include | |
parent | cf7df46e3b1d2142ff354498982194247bf07fea (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>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/ipu-v3-pre.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/include/linux/ipu-v3-pre.h b/include/linux/ipu-v3-pre.h index 29a18b683ed1..f5e07cae400c 100644 --- a/include/linux/ipu-v3-pre.h +++ b/include/linux/ipu-v3-pre.h @@ -97,7 +97,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, @@ -142,7 +144,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, |