summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorMark Gutman <r58412@freescale.com>2009-09-03 11:47:32 +0300
committerRob Herring <r.herring@freescale.com>2009-10-26 16:57:36 -0500
commit8c4cbf3192bc8d4cef83fcd90b7deb63ef9a6d3f (patch)
tree92fa92b322312c163e0df555cfa243ad59217386 /include
parent549fecbde8f12ad753850e94d1506dad492b0c21 (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.h34
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