diff options
author | Mark Gutman <r58412@freescale.com> | 2009-09-03 11:47:32 +0300 |
---|---|---|
committer | Alejandro Gonzalez <alex.gonzalez@digi.com> | 2010-02-12 17:19:20 +0100 |
commit | 6ac248ced7fc410ff2864f6b277caf1f023a900c (patch) | |
tree | 92fa92b322312c163e0df555cfa243ad59217386 /include | |
parent | 0453bf1ccee9fa13828db12fd0afff28639f853e (diff) |
ENGR00115576 ipuv3: support for 720P upsizing
A new feature is added to support to upsizing by horizontal stripes
via IC PP channels double using.
Signed-off-by: Mark Gutman <r58412@freescale.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/ipu.h | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/include/linux/ipu.h b/include/linux/ipu.h index 29a24c94e914..167abf1b900a 100644 --- a/include/linux/ipu.h +++ b/include/linux/ipu.h @@ -393,6 +393,7 @@ typedef union { uint8_t alpha; uint32_t key_color; bool alpha_chan_en; + uint32_t out_resize_ratio; } mem_pp_mem; struct { uint32_t temp; @@ -877,6 +878,13 @@ int32_t ipu_init_channel_buffer(ipu_channel_t channel, ipu_buffer_t type, int32_t ipu_update_channel_buffer(ipu_channel_t channel, ipu_buffer_t type, uint32_t bufNum, dma_addr_t phyaddr); +int32_t ipu_update_channel_offset(ipu_channel_t channel, ipu_buffer_t type, + uint32_t pixel_fmt, + uint16_t width, uint16_t height, + uint32_t stride, + uint32_t u, uint32_t v, + uint32_t vertical_offset, uint32_t horizontal_offset); + int32_t ipu_select_buffer(ipu_channel_t channel, ipu_buffer_t type, uint32_t bufNum); int32_t ipu_select_multi_vdi_buffer(uint32_t bufNum); @@ -1198,4 +1206,30 @@ typedef struct _ipu_mem_info { #define IPU_FREE_MEM _IOW('I', 0x25, ipu_mem_info) #define IPU_IS_CHAN_BUSY _IOW('I', 0x26, ipu_channel_t) + +/* two stripe calculations */ +struct stripe_param{ + unsigned int input_width; /* width of the input stripe */ + unsigned int output_width; /* width of the output stripe */ + unsigned int input_column; /* the first column on the input stripe */ + unsigned int output_column; /* the first column on the output stripe */ + unsigned int idr; + /* inverse downisizing ratio parameter; expressed as a power of 2 */ + unsigned int irr; + /* inverse resizing ratio parameter; expressed as a multiple of 2^-13 */ +}; + + + + +int ipu_calc_stripes_sizes(const unsigned int input_frame_width, + unsigned int output_frame_width, + const unsigned int maximal_stripe_width, + const unsigned long long cirr, + const unsigned int equal_stripes, + u32 input_pixelformat, + u32 output_pixelformat, + struct stripe_param *left, + struct stripe_param *right); + #endif |