diff options
Diffstat (limited to 'b2r2_api.h')
-rw-r--r-- | b2r2_api.h | 1045 |
1 files changed, 0 insertions, 1045 deletions
diff --git a/b2r2_api.h b/b2r2_api.h deleted file mode 100644 index fe3ae87..0000000 --- a/b2r2_api.h +++ /dev/null @@ -1,1045 +0,0 @@ -/*---------------------------------------------------------------------------*/ -/* © copyright STMicroelectronics(Wireless),2008. All rights reserved. For */ -/* information, STMicroelectronics(Wireless)reserves the right to license */ -/* this software concurrently under separate license conditions. */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU Lesser General Public License as published */ -/* by the Free Software Foundation; either version 2.1 of the License, */ -/* or (at your option)any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but */ -/* WITHOUT ANY WARRANTY; without even the implied warranty of */ -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See */ -/* the GNU Lesser General Public License for more details. */ -/* */ -/* You should have received a copy of the GNU Lesser General Public License */ -/* along with this program. If not, see <http://www.gnu.org/licenses/>. */ -/*---------------------------------------------------------------------------*/ - - - -#ifndef __B2R2_API_H -#define __B2R2_API_H - -#ifdef __cplusplus -extern "C" { -#endif /* _cplusplus */ - - -/***************************** b2r2 library basic opertaions *************************/ - - -/** - - b2r2 library instance handler - - Type : Structure - - Usage: Any task which uses B2R2 should this handler. - Multiple B2R2 operations can be invoked from - same library handler. - - Member: file_pointer: This is a handler to B2R2 driver. - -*/ - -typedef struct b2r2_library -{ - int file_pointer; - - -}b2r2_library; - - -/** - - b2r2 library memory handler - - Type : Structure - - Usage: Any task which wants to allocate memory should use - this structure.size of memory field should be populated. - and in turn from b2r2_library_allocate function - physical_address and logical address will be populated. - - Member: physical_address: physical address in unsigned int format - logical_address : logical address in unsigned int format - size_of_memory : size of the memory in bytes. - -*/ - -typedef struct b2r2_buffer_memory -{ - - unsigned int physical_address; - unsigned int logical_address; - unsigned int size_of_memory; - -}b2r2_buffer_memory; - - -/** b2r2 library instance API */ - -/** - - b2r2 library init - - Type : Public API - - Usage: Task should invoke this function before call - to any other function.This will initilize - one library instance. - - Parameters: In/Out : b2r2_library :b2r2 library instance handler - -*/ - -void b2r2_library_init(b2r2_library*); - -/** - - b2r2 library close - - Type : Public API - - Usage: Task should invoke this function after completed - all B2R2 operations to terminate. - - Parameters: In/Out : b2r2_library :b2r2 library instance handler - -*/ - - -void b2r2_library_close(b2r2_library*); - - -/** b2r2 library memory API */ - - -/** - - b2r2 library allocate - - Type : Public API - - Usage: Task should invoke this function for - allocating the memory from kernel space - This memory in general can be used for input/output - buffers - - Parameters: In : b2r2_library :b2r2 library instance handler - In/Out : b2r2_buffer_memory :b2r2 library memory handler - -*/ - -void b2r2_library_allocate(b2r2_library*,b2r2_buffer_memory*); - - -/** - - b2r2 library deallocate - - Type : Public API - - Usage: Task should invoke this function for - deallocating the memory from kernel space - - Parameters: In : b2r2_library :b2r2 library instance handler - In/Out : b2r2_buffer_memory :b2r2 library memory handler -*/ - - -void b2r2_library_deallocate(b2r2_library*,b2r2_buffer_memory*); - -/**************************************************************************************/ - - -/************************ b2r2 operations *********************************************/ - -/** - - b2r2 gfx color format - - Type : Enumeration - - Usage: This enum is used to identify the color format used. - -*/ - - - - -typedef enum -{ - B2R2_RGB565 = 0, - B2R2_RGB888 = 1, - B2R2_ARGB8565 = 4, - B2R2_ARGB8888 = 5, - B2R2_ARGB1555 = 6, - B2R2_ARGB4444 = 7, - B2R2_YCBCR888 = 16, - B2R2_YCBCR422R = 18, - B2R2_AYCBCR8888 = 21, - B2R2_YCBCR42XMB = 20, - B2R2_YCBCR42XR2B = 22, - B2R2_YCBCR42XMBN = 14, - B2R2_CLUT1 = 8, - B2R2_CLUT2 = 9, - B2R2_CLUT4 = 10, - B2R2_CLUT8 = 11, - B2R2_ACLUT44 = 12, - B2R2_ACLUT88 = 13, - B2R2_A1 = 24, - B2R2_A8 = 25, - B2R2_YUV = 30 - -}b2r2_gfx_color_form; - - -/** - - b2r2 postprocessor rot type - - Type : Enumeration - - Usage: This enum is used to identify the type of rotation - -*/ - - - -typedef enum -{ - B2R2_ROT_0 =0, - B2R2_ROT_90 = 1, - B2R2_ROT_180 = 2, - B2R2_ROT_270 = 3, - B2R2_CLOCKWISE_ROT_270=B2R2_ROT_90, - B2R2_CLOCKWISE_ROT_90=B2R2_ROT_270, - B2R2_CLOCKWISE_ROT_180=B2R2_ROT_180 - -}b2r2_postprocessor_rot_type; - - -/** - - b2r2 colour fill - - Type : Enumeration - - Usage: This enum is used to identify the color fill - -*/ - - -typedef enum -{ - B2R2_COLOUR_FILL_DISABLE = 0, - B2R2_COLOUR_FILL_ENABLE = 1 - -}B2R2_COLOUR_FILL; - - -/** - - b2r2 colour key - - Type : Enumeration - - Usage: This enum is used to identify the color key - -*/ - -typedef enum -{ - B2R2_COLOUR_KEY_DISABLE = 0, - B2R2_COLOUR_KEY_ENABLE = 1 - -}B2R2_COLOUR_KEY; - - -/** - - b2r2 alpha blending - - Type : Enumeration - - Usage: This enum is used to identify the alpha blending - -*/ - -typedef enum -{ - B2R2_ALPHA_BLENDING_DISABLE = 0, - B2R2_ALPHA_BLENDING_ENABLE = 1 - -}B2R2_ALPHA_BLENDING; - - -/** - - b2r2 rectangular clip - - Type : Enumeration - - Usage: This enum is used to identify the rectangular clipping - -*/ - -typedef enum -{ - B2R2_RECTANGULAR_CLIP_DISABLE = 0, - B2R2_RECTANGULAR_CLIP_ENABLE = 1 - -}B2R2_RECTANGULAR_CLIP; - - -/** - - b2r2 rop - - Type : Enumeration - - Usage: This enum is used to identify the boolean operations - -*/ - - -typedef enum -{ - B2R2_ROP_DISABLE = 0, - B2R2_ROP_ENABLE = 1 - -}B2R2_ROP; - - -/** - - b2r2 color key sel - - Type : Enumeration - - Usage: This enum is used to identify the color key selection - -*/ - - -typedef enum -{ - B2R2_DEST_COLOR_KEY = 0, - B2R2_SRC_COLOR_KEY_BEFORE_CLUT = 1, - B2R2_SRC_COLOR_KEY_AFTER_CLUT = 2, - B2R2_BLANKING_SRC_ALPHA = 3 -}B2R2_COLOR_KEY_SEL; - - -/** - - b2r2 blend swap fg bg - - Type : Enumeration - - Usage: This enum is used to identify foreground or background - -*/ - - - -typedef enum -{ - B2R2_BLEND_SWAP_FG_BG_DISABLE=0, - B2R2_BLEND_SWAP_FG_BG_ENABLE=1 - -}B2R2_BLEND_SWAP_FG_BG; - - -/** - - b2r2 blend fg premultiplier - - Type : Enumeration - - Usage: This enum is used to identify foreground premultiplier - -*/ - - - -typedef enum -{ - B2R2_BLENDING_FG_NOT_PREMULT = 2, - B2R2_BLENDING_FG_PREMULT = 3 - -}B2R2_BLEND_FG_PREMULTIPLIER; - - - -/** - - b2r2 blend alpha range - - Type : Enumeration - - Usage: This enum is used to identify blending alpha range - -*/ - - -typedef enum -{ - B2R2_ALPHA_RANGE_0_128 = 0, - B2R2_ALPHA_RANGE_0_255 = 1 - -}B2R2_BLEND_ALPHA_RANGE; - - -/** - - b2r2 logical op - - Type : Enumeration - - Usage: This enum is used to identify logical operations - -*/ - - -typedef enum -{ - B2R2_ALU_CLEAR = 0, - B2R2_ALU_AND = 1, - B2R2_ALU_AND_REV = 2, - B2R2_ALU_COPY = 3, - B2R2_ALU_AND_INVERT = 4, - B2R2_ALU_NOOP = 5, - B2R2_ALU_XOR = 6, - B2R2_ALU_OR = 7, - B2R2_ALU_NOR = 8, - B2R2_ALU_EQUIV = 9, - B2R2_ALU_INVERT = 10, - B2R2_ALU_OR_REVERSE = 11, - B2R2_ALU_COPY_INVERT = 12, - B2R2_ALU_OR_INVERT = 13, - B2R2_ALU_NAND = 14, - B2R2_ALU_SET = 15, - B2R2_ALU_ALPHA_BLEND = 16 - -} b2r2_logical_op; - - -/** - - b2r2 update params - - Type : Enumeration - - Usage: This enum is used to identify update parameters - -*/ - -typedef enum -{ - B2R2_FILL_COLOR_OP_PARAMS =0, - B2R2_ALPHA_BLEND_OP_PARAMS =1, - B2R2_COLOR_KEY_OP_PARMS =2, - B2R2_ROTATION_OP_PARAMS =3, - B2R2_CLIP_OP_PARAMS =4, - B2R2_RESIZE_OP_PARAMS =5, - B2R2_ROP_OP_PARAMS =6, - B2R2_COLOR_CONVERSION_OF_PARAMS = 7, - B2R2_DESTINATION_ADDRESS_OF_PARAMS = 8, - B2R2_SOURCE_ADDRESS_OF_PARAMS = 9 - -}B2R2_UPDATE_PARAMS; - - -/** - - b2r2 clip mode - - Type : Enumeration - - Usage: This enum is used to identify clip mode - -*/ - - -typedef enum -{ - B2R2_INSIDE_CLIP = 0, - B2R2_OUTSIDE_CLIP = 1 - -}B2R2_CLIP_MODE; - - -/** - - b2r2 job prority - - Type : Enumeration - - Usage: This enum is used to identify priority of b2r2 job - -*/ - - - -typedef enum -{ - -B2R2_PRIORITY_1=0x1, -B2R2_PRIORITY_2=0x2, -B2R2_PRIORITY_3=0x4, -B2R2_PRIORITY_4=0x8, -B2R2_PRIORITY_5=0xc, -B2R2_PRIORITY_6=0x10, -B2R2_PRIORITY_7=0x20 - -}b2r2_job_priority; - - - -/** - - b2r2 rect - - Type : Structure - - Usage: This structure is used to define a - rectangular position.This will - start from top & left location of a frame. - - Member: left: left location - top : top location - width: width of rectangle - height: height of rectangle -*/ - - - -typedef struct -{ - unsigned int left; - unsigned int top; - unsigned int width; - unsigned int height; - -}B2R2_RECT,*PB2R2_RECT; - - - -/** - - b2r2 point - - Type : Structure - - Usage: This structure is used to define - a pixel location in a frame - - Member: xpos : x-axis position - ypos : y-axis position -*/ - - -typedef struct -{ - unsigned int xpos; - unsigned int ypos; - -}B2R2_POINT,*PB2R2_POINT; - - - -/** - - b2r2 job params - - Type : Structure - - Usage: This structure is used to define - job parameters of B2R2 - - Member: job_logical_address: job logical address - job_physical_address: job physical address - job_pace_lna_physical_address: job last node physical address - job_size: job size - jobid: job ID -*/ - - - -typedef struct -{ - unsigned int job_logical_address; - unsigned int job_physical_address; - unsigned int job_pace_lna_physical_address; - unsigned int job_size; - unsigned int jobid; - b2r2_job_priority priority; -}B2R2_JOB_PARAMS; - - - -/** - - b2r2 colour fill params - - Type : Structure - - Usage: This structure is used to define - color fill parameters - - Member: enable : enable - color : color -*/ - - - -typedef struct -{ - unsigned char enable; - unsigned int color; - -}B2R2_COLOUR_FILL_PARAMS; - - -/** - - b2r2 color key config - - Type : Structure - - Usage: This structure is used to define - color configfuration - - Member: color :red,green and blue color configurations. -*/ - - - -typedef struct -{ - union - { - unsigned char red:2; - unsigned char green:2; - unsigned char blue:2; - unsigned char resv:2; - - unsigned char val; - }color; - -}B2R2_COLOR_KEY_CONFIG; - - - -/** - - b2r2 colour key params - - Type : Structure - - Usage: This structure is used to define - color key parameters - - Member: enable :color key enable - val :color key value - config :color key configuration - color :color -*/ - - - -typedef struct -{ - unsigned char enable; - B2R2_COLOR_KEY_SEL sel; - B2R2_COLOR_KEY_CONFIG config; - unsigned int color; - -}B2R2_COLOUR_KEY_PARAMS; - - -/** - - b2r2 blend params - - Type : Structure - - Usage: This structure is used to define - blending parameters - - Member: enable :blending enable - val :blending value - range : blending range - swap_fg_bg :foreground or background - premuliplier : premultiplier -*/ - - -typedef struct -{ - unsigned char enable; - unsigned char val; - B2R2_BLEND_ALPHA_RANGE range; - B2R2_BLEND_SWAP_FG_BG swap_fg_bg; - B2R2_BLEND_FG_PREMULTIPLIER premuliplier; - -}B2R2_BLEND_PARAMS; - - - -/** - - b2r2 rectangular clip params - - Type : Structure - - Usage: This structure is used to define - rectangular clipping parameters - - Member: enable :rectangular clipping enable - clip_mode : cliping mode - rect : cliping rectangle - -*/ - - - - -typedef struct -{ - unsigned char enable; - B2R2_CLIP_MODE clip_mode; - B2R2_RECT rect; - -}B2R2_RECTANGULAR_CLIP_PARAMS; - - - - -/** - - b2r2 rop params - - Type : Structure - - Usage: This structure is used to define - rop parameters - - Member: enable :rop enable - logi_op : logical operatiion - -*/ - - - -typedef struct -{ - unsigned char enable; - b2r2_logical_op logi_op; - -}B2R2_ROP_PARAMS; - - - -/** - - b2r2 image data - - Type : Structure - - Usage: This structure is used to define - image data - - Member: color_format : color format - physical_address : physical address - width : width of the image - height : height of the image - - -*/ - - - -typedef struct -{ - b2r2_gfx_color_form color_format; - unsigned int physical_address; - unsigned int width; - unsigned int height; -}B2R2_IMAGE_DATA,*PB2R2_IMAGE_DATA; - - - -/** - - b2r2 postprocessor conf - - Type : Structure - - Usage: This structure is used to define - postprocessor configuration - - Member: source_chroma_address : chroma address - source_chroma2_address : chroma 2 address - source_luma_address : luma address - -*/ - - - -typedef struct { - - unsigned int source_chroma_address; - unsigned int source_chroma2_address; - unsigned int source_luma_address; - -} b2r2_postprocessor_conf; - - -/** - - b2r2 window params - - Type : Structure - - Usage: This structure is used to define - window parameters - - Member: src_window : source window - dst_window : destination window - clip_window : clip window - -*/ - - -typedef struct -{ - B2R2_RECT src_window; - B2R2_RECT dst_window; - B2R2_RECT clip_window; - -}B2R2_WINDOW_PARAMS; - - - -/** - - b2r2 update params val - - Type : Structure - - Usage: This structure is used to define - update parameters - - Member: val : val parameter - window_params : window parameters - ppp_params : post processor parameters - -*/ - - - -typedef struct -{ - unsigned int val; - - B2R2_WINDOW_PARAMS window_params; - b2r2_postprocessor_conf ppp_params; - -}B2R2_UPDATE_PARAMS_VAL; - - - -/** - - b2r2 configuration - - Type : Structure - - Usage: This structure is used to define - b2r2 configuraion.Multiple configuartions can be - used for implementing multiple B2R2 operations - - Member: src_image : source image data - dst_image : destination image data - src_window : source window - dst_window : destination window - - rotation: rotation parameters - ppp_conf: post-processor parameters - color_fill: color fill parameters - color_key: color key parameters - alpha_blend:alpha blending parameters - rect_clip: rectangular clipping parameters - rop: rop parameters - job: job parameters - - NodeAdress: node addess of configuration - NodePhysicalAdress: node physical addess of configuration - last_nodeAdress: last-node addess of configuration - no_of_nodes: number of nodes of the configuration - - is_resize: is resize operation there in configuration - is_rotation: is rotation operation there in configuration - is_color_conversion: is color conversion operation there in configuration - is_color_key_en: is color_key operation there in configuration - is_alpha_blend_en: is alpha_blend operation there in configuration - is_rect_clip_en: is rect_clip operation there in configuration - is_color_fill_en: is color_fill operation there in configuration - is_rop_ops_en: is rop_ops operation there in configuration - -*/ - - - - -typedef struct -{ - B2R2_IMAGE_DATA src_image; - B2R2_IMAGE_DATA dst_image; - B2R2_RECT src_window; - B2R2_RECT dst_window; - - /** Rotation mode */ - b2r2_postprocessor_rot_type rotation; - /** post processor configuration */ - b2r2_postprocessor_conf ppp_conf; - /** Color fill*/ - B2R2_COLOUR_FILL_PARAMS color_fill; - /** Color key*/ - B2R2_COLOUR_KEY_PARAMS color_key; - /** Alpha blending*/ - B2R2_BLEND_PARAMS alpha_blend; - /** Rectangular clipping*/ - B2R2_RECTANGULAR_CLIP_PARAMS rect_clip; - /** Rop Operations params*/ - B2R2_ROP_PARAMS rop; - - B2R2_JOB_PARAMS job; - - - unsigned int NodeAdress; - unsigned int NodePhysicalAdress; - unsigned int last_nodeAdress; - unsigned char no_of_nodes; - unsigned char is_resize; - unsigned char is_rotation; - unsigned char is_color_conversion; - unsigned char is_color_key_en; - unsigned char is_alpha_blend_en; - unsigned char is_rect_clip_en; - unsigned char is_color_fill_en; - unsigned char is_rop_ops_en; - - -}b2r2_configuration; - - - -/** - - b2r2 library operation configure - - Type : Public API - - Usage: Task should invoke this function for one B2R2 configuration - Libary will make job linked list for the corresponding operation. - Memory for that particular job is allocated in library itself. - - Parameters: In/Out : b2r2_library :b2r2 library instance handler - In/Out : b2r2_configuration :b2r2 library configuration - -*/ - - - -int b2r2_library_operation_configure(b2r2_library *library,b2r2_configuration *config); - - -/** - - b2r2 library operation deconfigure - - Type : Public API - - Usage: Task should invoke this function after B2R2 configuraion is no - more used.It will internal memory deallocation. - - Parameters: In/Out : b2r2_library :b2r2 library instance handler - In/Out : b2r2_configuration :b2r2 library configuration - -*/ - - - -int b2r2_library_operation_deconfigure(b2r2_library *library,b2r2_configuration *config); - - - -/** - - b2r2 library update params - - Type : Public API - - Usage: Task should invoke this function if parameter in b2r2 configuartion - need to be changed without creating a new configuration. - - Parameters: In/Out : b2r2_library :b2r2 library instance handler - In/Out : b2r2_configuration :b2r2 library configuration - In : b2r2_update_params : Update parameters - In : b2r2_update_params_val: Updated value - -*/ - -void b2r2_library_update_params(b2r2_library *library,b2r2_configuration *config, - B2R2_UPDATE_PARAMS params,B2R2_UPDATE_PARAMS_VAL *pVal); - - -/** - - b2r2 library do operation - - Type : Public API - - Usage: Task should invoke this function to execute the job with configuration. - This call will not wait till the job is finished.(non-blocking call) - - Parameters: In/Out : b2r2_library :b2r2 library instance handler - In/Out : b2r2_configuration :b2r2 library configuration - -*/ - - -void b2r2_library_do_operation(b2r2_library *library,b2r2_configuration *config - ); - - -/** - - b2r2 library operation done - - Type : Public API - - Usage: Task should invoke this function to remove the job finshed with configuration. - This call will self-suspend the called task unless job is finished.(blocking call on suspend) - - Parameters: In/Out : b2r2_library :b2r2 library instance handler - In/Out : b2r2_configuration :b2r2 library configuration - -*/ - -void b2r2_library_operation_done(b2r2_library *library,b2r2_configuration *config); - - - -#ifdef __cplusplus -} -#endif /* _cplusplus */ - -#endif /* !defined(__B2R2_API_H) */ - |