diff options
author | Jason Chen <b02280@freescale.com> | 2011-08-29 11:57:39 +0800 |
---|---|---|
committer | Jason Chen <b02280@freescale.com> | 2011-08-29 12:01:18 +0800 |
commit | 5c4cc5cf5422c1ad84c927dc311cdae870138f30 (patch) | |
tree | b34ebba3f97d469ce5437453feb3e64ec59ceb9a | |
parent | 5c422b06c27a26540fc2ae51d5cd76c9af696323 (diff) |
ENGR00153474 ipuv3 split mode: vf and enc task display with error
For split mode, if using vf/enc task, the display is not correct.
Signed-off-by: Jason Chen <b02280@freescale.com>
-rw-r--r-- | drivers/mxc/ipu3/ipu_ic.c | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/drivers/mxc/ipu3/ipu_ic.c b/drivers/mxc/ipu3/ipu_ic.c index 80369f67c297..b552e568868b 100644 --- a/drivers/mxc/ipu3/ipu_ic.c +++ b/drivers/mxc/ipu3/ipu_ic.c @@ -1,5 +1,5 @@ /* - * Copyright 2005-2010 Freescale Semiconductor, Inc. All Rights Reserved. + * Copyright 2005-2011 Freescale Semiconductor, Inc. All Rights Reserved. */ /* @@ -214,10 +214,13 @@ void _ipu_ic_init_prpvf(ipu_channel_params_t *params, bool src_is_csi) ipu_color_space_t in_fmt, out_fmt; /* Setup vertical resizing */ - _calc_resize_coeffs(params->mem_prp_vf_mem.in_height, - params->mem_prp_vf_mem.out_height, - &resizeCoeff, &downsizeCoeff); - reg = (downsizeCoeff << 30) | (resizeCoeff << 16); + if (!(params->mem_prp_vf_mem.outv_resize_ratio)) { + _calc_resize_coeffs(params->mem_prp_vf_mem.in_height, + params->mem_prp_vf_mem.out_height, + &resizeCoeff, &downsizeCoeff); + reg = (downsizeCoeff << 30) | (resizeCoeff << 16); + } else + reg = (params->mem_prp_vf_mem.outv_resize_ratio) << 16; /* Setup horizontal resizing */ /* Upadeted for IC split case */ @@ -336,10 +339,13 @@ void _ipu_ic_init_prpenc(ipu_channel_params_t *params, bool src_is_csi) ipu_color_space_t in_fmt, out_fmt; /* Setup vertical resizing */ - _calc_resize_coeffs(params->mem_prp_enc_mem.in_height, - params->mem_prp_enc_mem.out_height, - &resizeCoeff, &downsizeCoeff); - reg = (downsizeCoeff << 30) | (resizeCoeff << 16); + if (!(params->mem_prp_enc_mem.outv_resize_ratio)) { + _calc_resize_coeffs(params->mem_prp_enc_mem.in_height, + params->mem_prp_enc_mem.out_height, + &resizeCoeff, &downsizeCoeff); + reg = (downsizeCoeff << 30) | (resizeCoeff << 16); + } else + reg = (params->mem_prp_enc_mem.outv_resize_ratio) << 16; /* Setup horizontal resizing */ /* Upadeted for IC split case */ |