media: atomisp: stop producing hundreds of kernel-doc warnings
A recent change on Kernel 4.15-rc1 causes all tags with /** to be handled as kernel-doc markups. Well, several atomisp modules, it doesn't use kernel-doc, but some other documentation markup (doxygen?). So, suppress all those warns by: - replacing /**< by /**. - replacing /** by /*. The core changes were done with: for i in $(find drivers/staging/media/atomisp -type f); do sed 's,/\*\* ,/\*, ' -i $i; done for i in $(find drivers/staging/media/atomisp -type f); do sed 's,/\*\*<,/\**,' -i $i; done for i in drivers/staging/media/atomisp/pci/atomisp2/css2400/runtime/debug/src/ia_css_debug.c drivers/staging/media/atomisp/pci/atomisp2/css2400/sh_css_sp.c drivers/staging/media/atomisp/pci/atomisp2/css2400/runtime/rmgr/src/rmgr_vbuf.c; do perl -ne 's,\/\*\*$,/*,g; print $_' $i > a && mv a $i; done; A few manual adjustments were made, where needed. Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com> Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com>
This commit is contained in:
parent
04226916d2
commit
d929fb4e16
|
@ -208,14 +208,14 @@ struct atomisp_dis_vector {
|
|||
};
|
||||
|
||||
|
||||
/** DVS 2.0 Coefficient types. This structure contains 4 pointers to
|
||||
/* DVS 2.0 Coefficient types. This structure contains 4 pointers to
|
||||
* arrays that contain the coeffients for each type.
|
||||
*/
|
||||
struct atomisp_dvs2_coef_types {
|
||||
short __user *odd_real; /**< real part of the odd coefficients*/
|
||||
short __user *odd_imag; /**< imaginary part of the odd coefficients*/
|
||||
short __user *even_real;/**< real part of the even coefficients*/
|
||||
short __user *even_imag;/**< imaginary part of the even coefficients*/
|
||||
short __user *odd_real; /** real part of the odd coefficients*/
|
||||
short __user *odd_imag; /** imaginary part of the odd coefficients*/
|
||||
short __user *even_real;/** real part of the even coefficients*/
|
||||
short __user *even_imag;/** imaginary part of the even coefficients*/
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -223,10 +223,10 @@ struct atomisp_dvs2_coef_types {
|
|||
* arrays that contain the statistics for each type.
|
||||
*/
|
||||
struct atomisp_dvs2_stat_types {
|
||||
int __user *odd_real; /**< real part of the odd statistics*/
|
||||
int __user *odd_imag; /**< imaginary part of the odd statistics*/
|
||||
int __user *even_real;/**< real part of the even statistics*/
|
||||
int __user *even_imag;/**< imaginary part of the even statistics*/
|
||||
int __user *odd_real; /** real part of the odd statistics*/
|
||||
int __user *odd_imag; /** imaginary part of the odd statistics*/
|
||||
int __user *even_real;/** real part of the even statistics*/
|
||||
int __user *even_imag;/** imaginary part of the even statistics*/
|
||||
};
|
||||
|
||||
struct atomisp_dis_coefficients {
|
||||
|
@ -390,16 +390,16 @@ struct atomisp_metadata_config {
|
|||
* Generic resolution structure.
|
||||
*/
|
||||
struct atomisp_resolution {
|
||||
uint32_t width; /**< Width */
|
||||
uint32_t height; /**< Height */
|
||||
uint32_t width; /** Width */
|
||||
uint32_t height; /** Height */
|
||||
};
|
||||
|
||||
/*
|
||||
* This specifies the coordinates (x,y)
|
||||
*/
|
||||
struct atomisp_zoom_point {
|
||||
int32_t x; /**< x coordinate */
|
||||
int32_t y; /**< y coordinate */
|
||||
int32_t x; /** x coordinate */
|
||||
int32_t y; /** y coordinate */
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -411,9 +411,9 @@ struct atomisp_zoom_region {
|
|||
};
|
||||
|
||||
struct atomisp_dz_config {
|
||||
uint32_t dx; /**< Horizontal zoom factor */
|
||||
uint32_t dy; /**< Vertical zoom factor */
|
||||
struct atomisp_zoom_region zoom_region; /**< region for zoom */
|
||||
uint32_t dx; /** Horizontal zoom factor */
|
||||
uint32_t dy; /** Vertical zoom factor */
|
||||
struct atomisp_zoom_region zoom_region; /** region for zoom */
|
||||
};
|
||||
|
||||
struct atomisp_parm {
|
||||
|
@ -758,7 +758,7 @@ enum atomisp_acc_arg_type {
|
|||
ATOMISP_ACC_ARG_FRAME /* Frame argument */
|
||||
};
|
||||
|
||||
/** ISP memories, isp2400 */
|
||||
/* ISP memories, isp2400 */
|
||||
enum atomisp_acc_memory {
|
||||
ATOMISP_ACC_MEMORY_PMEM0 = 0,
|
||||
ATOMISP_ACC_MEMORY_DMEM0,
|
||||
|
|
|
@ -5187,7 +5187,7 @@ int get_frame_info_nop(struct atomisp_sub_device *asd,
|
|||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* Resets CSS parameters that depend on input resolution.
|
||||
*
|
||||
* Update params like CSS RAW binning, 2ppc mode and pp_input
|
||||
|
|
|
@ -4051,7 +4051,7 @@ int atomisp_css_get_formats_config(struct atomisp_sub_device *asd,
|
|||
int atomisp_css_get_zoom_factor(struct atomisp_sub_device *asd,
|
||||
unsigned int *zoom)
|
||||
{
|
||||
struct ia_css_dz_config dz_config; /**< Digital Zoom */
|
||||
struct ia_css_dz_config dz_config; /** Digital Zoom */
|
||||
struct ia_css_isp_config isp_config;
|
||||
struct atomisp_device *isp = asd->isp;
|
||||
|
||||
|
|
|
@ -28,17 +28,17 @@ struct atomisp_histogram32 {
|
|||
};
|
||||
|
||||
struct atomisp_dvs2_stat_types32 {
|
||||
compat_uptr_t odd_real; /**< real part of the odd statistics*/
|
||||
compat_uptr_t odd_imag; /**< imaginary part of the odd statistics*/
|
||||
compat_uptr_t even_real;/**< real part of the even statistics*/
|
||||
compat_uptr_t even_imag;/**< imaginary part of the even statistics*/
|
||||
compat_uptr_t odd_real; /** real part of the odd statistics*/
|
||||
compat_uptr_t odd_imag; /** imaginary part of the odd statistics*/
|
||||
compat_uptr_t even_real;/** real part of the even statistics*/
|
||||
compat_uptr_t even_imag;/** imaginary part of the even statistics*/
|
||||
};
|
||||
|
||||
struct atomisp_dvs2_coef_types32 {
|
||||
compat_uptr_t odd_real; /**< real part of the odd coefficients*/
|
||||
compat_uptr_t odd_imag; /**< imaginary part of the odd coefficients*/
|
||||
compat_uptr_t even_real;/**< real part of the even coefficients*/
|
||||
compat_uptr_t even_imag;/**< imaginary part of the even coefficients*/
|
||||
compat_uptr_t odd_real; /** real part of the odd coefficients*/
|
||||
compat_uptr_t odd_imag; /** imaginary part of the odd coefficients*/
|
||||
compat_uptr_t even_real;/** real part of the even coefficients*/
|
||||
compat_uptr_t even_imag;/** imaginary part of the even coefficients*/
|
||||
};
|
||||
|
||||
struct atomisp_dvs2_statistics32 {
|
||||
|
|
|
@ -223,7 +223,7 @@ struct atomisp_subdev_params {
|
|||
|
||||
bool dis_proj_data_valid;
|
||||
|
||||
struct ia_css_dz_config dz_config; /**< Digital Zoom */
|
||||
struct ia_css_dz_config dz_config; /** Digital Zoom */
|
||||
struct ia_css_capture_config capture_config;
|
||||
|
||||
struct atomisp_css_isp_config config;
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
* Forward declarations.
|
||||
*
|
||||
**********************************************************************/
|
||||
/**
|
||||
/*
|
||||
* @brief Read the oldest element from the circular buffer.
|
||||
* Read the oldest element WITHOUT checking whehter the
|
||||
* circular buffer is empty or not. The oldest element is
|
||||
|
@ -34,7 +34,7 @@
|
|||
static inline ia_css_circbuf_elem_t
|
||||
ia_css_circbuf_read(ia_css_circbuf_t *cb);
|
||||
|
||||
/**
|
||||
/*
|
||||
* @brief Shift a chunk of elements in the circular buffer.
|
||||
* A chunk of elements (i.e. the ones from the "start" position
|
||||
* to the "chunk_src" position) are shifted in the circular buffer,
|
||||
|
@ -48,7 +48,7 @@ static inline void ia_css_circbuf_shift_chunk(ia_css_circbuf_t *cb,
|
|||
uint32_t chunk_src,
|
||||
uint32_t chunk_dest);
|
||||
|
||||
/**
|
||||
/*
|
||||
* @brief Get the "val" field in the element.
|
||||
*
|
||||
* @param elem The pointer to the element.
|
||||
|
@ -63,7 +63,7 @@ ia_css_circbuf_elem_get_val(ia_css_circbuf_elem_t *elem);
|
|||
* Non-inline functions.
|
||||
*
|
||||
**********************************************************************/
|
||||
/**
|
||||
/*
|
||||
* @brief Create the circular buffer.
|
||||
* Refer to "ia_css_circbuf.h" for details.
|
||||
*/
|
||||
|
@ -88,7 +88,7 @@ ia_css_circbuf_create(ia_css_circbuf_t *cb,
|
|||
cb->elems = elems;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* @brief Destroy the circular buffer.
|
||||
* Refer to "ia_css_circbuf.h" for details.
|
||||
*/
|
||||
|
@ -99,7 +99,7 @@ void ia_css_circbuf_destroy(ia_css_circbuf_t *cb)
|
|||
cb->elems = NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* @brief Pop a value out of the circular buffer.
|
||||
* Refer to "ia_css_circbuf.h" for details.
|
||||
*/
|
||||
|
@ -116,7 +116,7 @@ uint32_t ia_css_circbuf_pop(ia_css_circbuf_t *cb)
|
|||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* @brief Extract a value out of the circular buffer.
|
||||
* Refer to "ia_css_circbuf.h" for details.
|
||||
*/
|
||||
|
@ -166,7 +166,7 @@ uint32_t ia_css_circbuf_extract(ia_css_circbuf_t *cb, int offset)
|
|||
return val;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* @brief Peek an element from the circular buffer.
|
||||
* Refer to "ia_css_circbuf.h" for details.
|
||||
*/
|
||||
|
@ -180,7 +180,7 @@ uint32_t ia_css_circbuf_peek(ia_css_circbuf_t *cb, int offset)
|
|||
return cb->elems[pos].val;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* @brief Get the value of an element from the circular buffer.
|
||||
* Refer to "ia_css_circbuf.h" for details.
|
||||
*/
|
||||
|
@ -194,7 +194,7 @@ uint32_t ia_css_circbuf_peek_from_start(ia_css_circbuf_t *cb, int offset)
|
|||
return cb->elems[pos].val;
|
||||
}
|
||||
|
||||
/** @brief increase size of a circular buffer.
|
||||
/* @brief increase size of a circular buffer.
|
||||
* Use 'CAUTION' before using this function. This was added to
|
||||
* support / fix issue with increasing size for tagger only
|
||||
* Please refer to "ia_css_circbuf.h" for details.
|
||||
|
@ -252,7 +252,7 @@ bool ia_css_circbuf_increase_size(
|
|||
* Inline functions.
|
||||
*
|
||||
****************************************************************/
|
||||
/**
|
||||
/*
|
||||
* @brief Get the "val" field in the element.
|
||||
* Refer to "Forward declarations" for details.
|
||||
*/
|
||||
|
@ -262,7 +262,7 @@ ia_css_circbuf_elem_get_val(ia_css_circbuf_elem_t *elem)
|
|||
return elem->val;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* @brief Read the oldest element from the circular buffer.
|
||||
* Refer to "Forward declarations" for details.
|
||||
*/
|
||||
|
@ -282,7 +282,7 @@ ia_css_circbuf_read(ia_css_circbuf_t *cb)
|
|||
return elem;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* @brief Shift a chunk of elements in the circular buffer.
|
||||
* Refer to "Forward declarations" for details.
|
||||
*/
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
#include <ia_css_frame_public.h> /* ia_css_frame_info */
|
||||
#include <ia_css_binary.h> /* ia_css_binary_descr */
|
||||
|
||||
/** @brief Get a binary descriptor for copy.
|
||||
/* @brief Get a binary descriptor for copy.
|
||||
*
|
||||
* @param[in] pipe
|
||||
* @param[out] copy_desc
|
||||
|
@ -36,7 +36,7 @@ extern void ia_css_pipe_get_copy_binarydesc(
|
|||
struct ia_css_frame_info *out_info,
|
||||
struct ia_css_frame_info *vf_info);
|
||||
|
||||
/** @brief Get a binary descriptor for vfpp.
|
||||
/* @brief Get a binary descriptor for vfpp.
|
||||
*
|
||||
* @param[in] pipe
|
||||
* @param[out] vfpp_descr
|
||||
|
@ -51,7 +51,7 @@ extern void ia_css_pipe_get_vfpp_binarydesc(
|
|||
struct ia_css_frame_info *in_info,
|
||||
struct ia_css_frame_info *out_info);
|
||||
|
||||
/** @brief Get numerator and denominator of bayer downscaling factor.
|
||||
/* @brief Get numerator and denominator of bayer downscaling factor.
|
||||
*
|
||||
* @param[in] bds_factor: The bayer downscaling factor.
|
||||
* (= The bds_factor member in the sh_css_bds_factor structure.)
|
||||
|
@ -67,7 +67,7 @@ extern enum ia_css_err sh_css_bds_factor_get_numerator_denominator(
|
|||
unsigned int *bds_factor_numerator,
|
||||
unsigned int *bds_factor_denominator);
|
||||
|
||||
/** @brief Get a binary descriptor for preview stage.
|
||||
/* @brief Get a binary descriptor for preview stage.
|
||||
*
|
||||
* @param[in] pipe
|
||||
* @param[out] preview_descr
|
||||
|
@ -86,7 +86,7 @@ extern enum ia_css_err ia_css_pipe_get_preview_binarydesc(
|
|||
struct ia_css_frame_info *out_info,
|
||||
struct ia_css_frame_info *vf_info);
|
||||
|
||||
/** @brief Get a binary descriptor for video stage.
|
||||
/* @brief Get a binary descriptor for video stage.
|
||||
*
|
||||
* @param[in/out] pipe
|
||||
* @param[out] video_descr
|
||||
|
@ -105,7 +105,7 @@ extern enum ia_css_err ia_css_pipe_get_video_binarydesc(
|
|||
struct ia_css_frame_info *vf_info,
|
||||
int stream_config_left_padding);
|
||||
|
||||
/** @brief Get a binary descriptor for yuv scaler stage.
|
||||
/* @brief Get a binary descriptor for yuv scaler stage.
|
||||
*
|
||||
* @param[in/out] pipe
|
||||
* @param[out] yuv_scaler_descr
|
||||
|
@ -124,7 +124,7 @@ void ia_css_pipe_get_yuvscaler_binarydesc(
|
|||
struct ia_css_frame_info *internal_out_info,
|
||||
struct ia_css_frame_info *vf_info);
|
||||
|
||||
/** @brief Get a binary descriptor for capture pp stage.
|
||||
/* @brief Get a binary descriptor for capture pp stage.
|
||||
*
|
||||
* @param[in/out] pipe
|
||||
* @param[out] capture_pp_descr
|
||||
|
@ -140,7 +140,7 @@ extern void ia_css_pipe_get_capturepp_binarydesc(
|
|||
struct ia_css_frame_info *out_info,
|
||||
struct ia_css_frame_info *vf_info);
|
||||
|
||||
/** @brief Get a binary descriptor for primary capture.
|
||||
/* @brief Get a binary descriptor for primary capture.
|
||||
*
|
||||
* @param[in] pipe
|
||||
* @param[out] prim_descr
|
||||
|
@ -158,7 +158,7 @@ extern void ia_css_pipe_get_primary_binarydesc(
|
|||
struct ia_css_frame_info *vf_info,
|
||||
unsigned int stage_idx);
|
||||
|
||||
/** @brief Get a binary descriptor for pre gdc stage.
|
||||
/* @brief Get a binary descriptor for pre gdc stage.
|
||||
*
|
||||
* @param[in] pipe
|
||||
* @param[out] pre_gdc_descr
|
||||
|
@ -173,7 +173,7 @@ extern void ia_css_pipe_get_pre_gdc_binarydesc(
|
|||
struct ia_css_frame_info *in_info,
|
||||
struct ia_css_frame_info *out_info);
|
||||
|
||||
/** @brief Get a binary descriptor for gdc stage.
|
||||
/* @brief Get a binary descriptor for gdc stage.
|
||||
*
|
||||
* @param[in] pipe
|
||||
* @param[out] gdc_descr
|
||||
|
@ -188,7 +188,7 @@ extern void ia_css_pipe_get_gdc_binarydesc(
|
|||
struct ia_css_frame_info *in_info,
|
||||
struct ia_css_frame_info *out_info);
|
||||
|
||||
/** @brief Get a binary descriptor for post gdc.
|
||||
/* @brief Get a binary descriptor for post gdc.
|
||||
*
|
||||
* @param[in] pipe
|
||||
* @param[out] post_gdc_descr
|
||||
|
@ -205,7 +205,7 @@ extern void ia_css_pipe_get_post_gdc_binarydesc(
|
|||
struct ia_css_frame_info *out_info,
|
||||
struct ia_css_frame_info *vf_info);
|
||||
|
||||
/** @brief Get a binary descriptor for de.
|
||||
/* @brief Get a binary descriptor for de.
|
||||
*
|
||||
* @param[in] pipe
|
||||
* @param[out] pre_de_descr
|
||||
|
@ -220,7 +220,7 @@ extern void ia_css_pipe_get_pre_de_binarydesc(
|
|||
struct ia_css_frame_info *in_info,
|
||||
struct ia_css_frame_info *out_info);
|
||||
|
||||
/** @brief Get a binary descriptor for pre anr stage.
|
||||
/* @brief Get a binary descriptor for pre anr stage.
|
||||
*
|
||||
* @param[in] pipe
|
||||
* @param[out] pre_anr_descr
|
||||
|
@ -235,7 +235,7 @@ extern void ia_css_pipe_get_pre_anr_binarydesc(
|
|||
struct ia_css_frame_info *in_info,
|
||||
struct ia_css_frame_info *out_info);
|
||||
|
||||
/** @brief Get a binary descriptor for ANR stage.
|
||||
/* @brief Get a binary descriptor for ANR stage.
|
||||
*
|
||||
* @param[in] pipe
|
||||
* @param[out] anr_descr
|
||||
|
@ -250,7 +250,7 @@ extern void ia_css_pipe_get_anr_binarydesc(
|
|||
struct ia_css_frame_info *in_info,
|
||||
struct ia_css_frame_info *out_info);
|
||||
|
||||
/** @brief Get a binary descriptor for post anr stage.
|
||||
/* @brief Get a binary descriptor for post anr stage.
|
||||
*
|
||||
* @param[in] pipe
|
||||
* @param[out] post_anr_descr
|
||||
|
@ -267,7 +267,7 @@ extern void ia_css_pipe_get_post_anr_binarydesc(
|
|||
struct ia_css_frame_info *out_info,
|
||||
struct ia_css_frame_info *vf_info);
|
||||
|
||||
/** @brief Get a binary descriptor for ldc stage.
|
||||
/* @brief Get a binary descriptor for ldc stage.
|
||||
*
|
||||
* @param[in/out] pipe
|
||||
* @param[out] capture_pp_descr
|
||||
|
@ -282,7 +282,7 @@ extern void ia_css_pipe_get_ldc_binarydesc(
|
|||
struct ia_css_frame_info *in_info,
|
||||
struct ia_css_frame_info *out_info);
|
||||
|
||||
/** @brief Calculates the required BDS factor
|
||||
/* @brief Calculates the required BDS factor
|
||||
*
|
||||
* @param[in] input_res
|
||||
* @param[in] output_res
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
#include <ia_css_types.h>
|
||||
#include <ia_css_frame_public.h>
|
||||
|
||||
/** @brief Get Input format bits per pixel based on stream configuration of this
|
||||
/* @brief Get Input format bits per pixel based on stream configuration of this
|
||||
* pipe.
|
||||
*
|
||||
* @param[in] pipe
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
#include <ia_css_stream_public.h>
|
||||
#include <ia_css_stream_format.h>
|
||||
|
||||
/** @brief convert "errno" error code to "ia_css_err" error code
|
||||
/* @brief convert "errno" error code to "ia_css_err" error code
|
||||
*
|
||||
* @param[in] "errno" error code
|
||||
* @return "ia_css_err" error code
|
||||
|
@ -31,7 +31,7 @@
|
|||
enum ia_css_err ia_css_convert_errno(
|
||||
int in_err);
|
||||
|
||||
/** @brief check vf frame info.
|
||||
/* @brief check vf frame info.
|
||||
*
|
||||
* @param[in] info
|
||||
* @return IA_CSS_SUCCESS or error code upon error.
|
||||
|
@ -40,7 +40,7 @@ enum ia_css_err ia_css_convert_errno(
|
|||
extern enum ia_css_err ia_css_util_check_vf_info(
|
||||
const struct ia_css_frame_info * const info);
|
||||
|
||||
/** @brief check input configuration.
|
||||
/* @brief check input configuration.
|
||||
*
|
||||
* @param[in] stream_config
|
||||
* @param[in] must_be_raw
|
||||
|
@ -52,7 +52,7 @@ extern enum ia_css_err ia_css_util_check_input(
|
|||
bool must_be_raw,
|
||||
bool must_be_yuv);
|
||||
|
||||
/** @brief check vf and out frame info.
|
||||
/* @brief check vf and out frame info.
|
||||
*
|
||||
* @param[in] out_info
|
||||
* @param[in] vf_info
|
||||
|
@ -63,7 +63,7 @@ extern enum ia_css_err ia_css_util_check_vf_out_info(
|
|||
const struct ia_css_frame_info * const out_info,
|
||||
const struct ia_css_frame_info * const vf_info);
|
||||
|
||||
/** @brief check width and height
|
||||
/* @brief check width and height
|
||||
*
|
||||
* @param[in] width
|
||||
* @param[in] height
|
||||
|
@ -75,7 +75,7 @@ extern enum ia_css_err ia_css_util_check_res(
|
|||
unsigned int height);
|
||||
|
||||
#ifdef ISP2401
|
||||
/** @brief compare resolutions (less or equal)
|
||||
/* @brief compare resolutions (less or equal)
|
||||
*
|
||||
* @param[in] a resolution
|
||||
* @param[in] b resolution
|
||||
|
@ -108,7 +108,7 @@ extern bool ia_css_util_resolution_is_even(
|
|||
const struct ia_css_resolution resolution);
|
||||
|
||||
#endif
|
||||
/** @brief check width and height
|
||||
/* @brief check width and height
|
||||
*
|
||||
* @param[in] stream_format
|
||||
* @param[in] two_ppc
|
||||
|
@ -119,7 +119,7 @@ extern unsigned int ia_css_util_input_format_bpp(
|
|||
enum ia_css_stream_format stream_format,
|
||||
bool two_ppc);
|
||||
|
||||
/** @brief check if input format it raw
|
||||
/* @brief check if input format it raw
|
||||
*
|
||||
* @param[in] stream_format
|
||||
* @return true if the input format is raw or false otherwise
|
||||
|
@ -128,7 +128,7 @@ extern unsigned int ia_css_util_input_format_bpp(
|
|||
extern bool ia_css_util_is_input_format_raw(
|
||||
enum ia_css_stream_format stream_format);
|
||||
|
||||
/** @brief check if input format it yuv
|
||||
/* @brief check if input format it yuv
|
||||
*
|
||||
* @param[in] stream_format
|
||||
* @return true if the input format is yuv or false otherwise
|
||||
|
|
|
@ -277,6 +277,6 @@ static inline void csi_rx_be_ctrl_reg_store(
|
|||
|
||||
ia_css_device_store_uint32(CSI_RX_BE_CTRL_BASE[ID] + reg*sizeof(hrt_data), value);
|
||||
}
|
||||
/** end of DLI */
|
||||
/* end of DLI */
|
||||
|
||||
#endif /* __CSI_RX_PRIVATE_H_INCLUDED__ */
|
||||
|
|
|
@ -192,7 +192,7 @@ STORAGE_CLASS_IBUF_CTRL_C void ibuf_ctrl_dump_state(
|
|||
ia_css_print("IBUF controller ID %d Process ID %d isp_sync_state 0x%x\n", ID, i, state->proc_state[i].isp_sync_state);
|
||||
}
|
||||
}
|
||||
/** end of NCI */
|
||||
/* end of NCI */
|
||||
|
||||
/*****************************************************
|
||||
*
|
||||
|
@ -227,7 +227,7 @@ STORAGE_CLASS_IBUF_CTRL_C void ibuf_ctrl_reg_store(
|
|||
|
||||
ia_css_device_store_uint32(IBUF_CTRL_BASE[ID] + reg*sizeof(hrt_data), value);
|
||||
}
|
||||
/** end of DLI */
|
||||
/* end of DLI */
|
||||
|
||||
|
||||
#endif /* __IBUF_CTRL_PRIVATE_H_INCLUDED__ */
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
#include "isys_irq_private.h"
|
||||
#endif
|
||||
|
||||
/** Public interface */
|
||||
/* Public interface */
|
||||
STORAGE_CLASS_ISYS2401_IRQ_C void isys_irqc_status_enable(
|
||||
const isys_irq_ID_t isys_irqc_id)
|
||||
{
|
||||
|
|
|
@ -59,7 +59,7 @@ STORAGE_CLASS_ISYS2401_IRQ_C void isys_irqc_state_dump(
|
|||
state->status, state->edge, state->mask, state->enable, state->level_no);
|
||||
}
|
||||
|
||||
/** end of NCI */
|
||||
/* end of NCI */
|
||||
|
||||
/* -------------------------------------------------------+
|
||||
| Device level interface (DLI) |
|
||||
|
@ -101,7 +101,7 @@ STORAGE_CLASS_ISYS2401_IRQ_C hrt_data isys_irqc_reg_load(
|
|||
return value;
|
||||
}
|
||||
|
||||
/** end of DLI */
|
||||
/* end of DLI */
|
||||
|
||||
#endif /* defined(USE_INPUT_SYSTEM_VERSION_2401) */
|
||||
|
||||
|
|
|
@ -122,7 +122,7 @@ STORAGE_CLASS_STREAM2MMIO_C void stream2mmio_dump_state(
|
|||
stream2mmio_print_sid_state(&(state->sid_state[i]));
|
||||
}
|
||||
}
|
||||
/** end of NCI */
|
||||
/* end of NCI */
|
||||
|
||||
/*****************************************************
|
||||
*
|
||||
|
@ -163,6 +163,6 @@ STORAGE_CLASS_STREAM2MMIO_C void stream2mmio_reg_store(
|
|||
ia_css_device_store_uint32(STREAM2MMIO_CTRL_BASE[ID] +
|
||||
reg * sizeof(hrt_data), value);
|
||||
}
|
||||
/** end of DLI */
|
||||
/* end of DLI */
|
||||
|
||||
#endif /* __ISYS_STREAM2MMIO_PRIVATE_H_INCLUDED__ */
|
||||
|
|
|
@ -160,5 +160,5 @@ STORAGE_CLASS_PIXELGEN_C void pixelgen_ctrl_reg_store(
|
|||
|
||||
ia_css_device_store_uint32(PIXELGEN_CTRL_BASE[ID] + reg*sizeof(hrt_data), value);
|
||||
}
|
||||
/** end of DLI */
|
||||
/* end of DLI */
|
||||
#endif /* __PIXELGEN_PRIVATE_H_INCLUDED__ */
|
||||
|
|
|
@ -46,7 +46,7 @@ struct isys2401_dma_port_cfg_s {
|
|||
uint32_t cropping;
|
||||
uint32_t width;
|
||||
};
|
||||
/** end of DMA Port */
|
||||
/* end of DMA Port */
|
||||
|
||||
/************************************************
|
||||
*
|
||||
|
@ -79,7 +79,7 @@ struct isys2401_dma_cfg_s {
|
|||
isys2401_dma_extension extension;
|
||||
uint32_t height;
|
||||
};
|
||||
/** end of DMA Device */
|
||||
/* end of DMA Device */
|
||||
|
||||
/* isys2401_dma_channel limits per DMA ID */
|
||||
extern const isys2401_dma_channel N_ISYS2401_DMA_CHANNEL_PROCS[N_ISYS2401_DMA_ID];
|
||||
|
|
|
@ -86,6 +86,6 @@ struct pixelgen_prbs_cfg_s {
|
|||
sync_generator_cfg_t sync_gen_cfg;
|
||||
};
|
||||
|
||||
/** end of Pixel-generator: TPG. ("pixelgen_global.h") */
|
||||
/* end of Pixel-generator: TPG. ("pixelgen_global.h") */
|
||||
#endif /* __PIXELGEN_GLOBAL_H_INCLUDED__ */
|
||||
|
||||
|
|
|
@ -331,7 +331,7 @@ typedef enum {
|
|||
IBUF_CTRL2_ID, /* map ISYS2401_IBUF_CNTRL_C */
|
||||
N_IBUF_CTRL_ID
|
||||
} ibuf_ctrl_ID_t;
|
||||
/** end of Input-buffer Controller */
|
||||
/* end of Input-buffer Controller */
|
||||
|
||||
/*
|
||||
* Stream2MMIO.
|
||||
|
@ -364,7 +364,7 @@ typedef enum {
|
|||
STREAM2MMIO_SID7_ID,
|
||||
N_STREAM2MMIO_SID_ID
|
||||
} stream2mmio_sid_ID_t;
|
||||
/** end of Stream2MMIO */
|
||||
/* end of Stream2MMIO */
|
||||
|
||||
/**
|
||||
* Input System 2401: CSI-MIPI recevier.
|
||||
|
@ -390,7 +390,7 @@ typedef enum {
|
|||
CSI_RX_DLANE3_ID, /* map to DLANE3 in CSI RX */
|
||||
N_CSI_RX_DLANE_ID
|
||||
} csi_rx_fe_dlane_ID_t;
|
||||
/** end of CSI-MIPI receiver */
|
||||
/* end of CSI-MIPI receiver */
|
||||
|
||||
typedef enum {
|
||||
ISYS2401_DMA0_ID = 0,
|
||||
|
@ -406,7 +406,7 @@ typedef enum {
|
|||
PIXELGEN2_ID,
|
||||
N_PIXELGEN_ID
|
||||
} pixelgen_ID_t;
|
||||
/** end of pixel-generator. ("system_global.h") */
|
||||
/* end of pixel-generator. ("system_global.h") */
|
||||
|
||||
typedef enum {
|
||||
INPUT_SYSTEM_CSI_PORT0_ID = 0,
|
||||
|
|
|
@ -31,7 +31,7 @@ more details.
|
|||
#ifndef __CSS_API_VERSION_H
|
||||
#define __CSS_API_VERSION_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* CSS API version file. This file contains the version number of the CSS-API.
|
||||
*
|
||||
* This file is generated from a set of input files describing the CSS-API
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
#endif /* __INLINE_GP_TIMER__ */
|
||||
#include "system_local.h"
|
||||
|
||||
/** FIXME: not sure if reg_load(), reg_store() should be API.
|
||||
/* FIXME: not sure if reg_load(), reg_store() should be API.
|
||||
*/
|
||||
static uint32_t
|
||||
gp_timer_reg_load(uint32_t reg);
|
||||
|
|
|
@ -73,7 +73,7 @@ extern void csi_rx_be_ctrl_get_state(
|
|||
extern void csi_rx_be_ctrl_dump_state(
|
||||
const csi_rx_backend_ID_t ID,
|
||||
csi_rx_be_ctrl_state_t *state);
|
||||
/** end of NCI */
|
||||
/* end of NCI */
|
||||
|
||||
/*****************************************************
|
||||
*
|
||||
|
@ -130,6 +130,6 @@ extern void csi_rx_be_ctrl_reg_store(
|
|||
const csi_rx_backend_ID_t ID,
|
||||
const hrt_address reg,
|
||||
const hrt_data value);
|
||||
/** end of DLI */
|
||||
/* end of DLI */
|
||||
#endif /* USE_INPUT_SYSTEM_VERSION_2401 */
|
||||
#endif /* __CSI_RX_PUBLIC_H_INCLUDED__ */
|
||||
|
|
|
@ -54,7 +54,7 @@ STORAGE_CLASS_IBUF_CTRL_H void ibuf_ctrl_get_proc_state(
|
|||
STORAGE_CLASS_IBUF_CTRL_H void ibuf_ctrl_dump_state(
|
||||
const ibuf_ctrl_ID_t ID,
|
||||
ibuf_ctrl_state_t *state);
|
||||
/** end of NCI */
|
||||
/* end of NCI */
|
||||
|
||||
/*****************************************************
|
||||
*
|
||||
|
@ -87,7 +87,7 @@ STORAGE_CLASS_IBUF_CTRL_H void ibuf_ctrl_reg_store(
|
|||
const ibuf_ctrl_ID_t ID,
|
||||
const hrt_address reg,
|
||||
const hrt_data value);
|
||||
/** end of DLI */
|
||||
/* end of DLI */
|
||||
|
||||
#endif /* USE_INPUT_SYSTEM_VERSION_2401 */
|
||||
#endif /* __IBUF_CTRL_PUBLIC_H_INCLUDED__ */
|
||||
|
|
|
@ -49,7 +49,7 @@
|
|||
|
||||
/* Arithmetic */
|
||||
|
||||
/** @brief bitwise AND
|
||||
/* @brief bitwise AND
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -63,7 +63,7 @@ STORAGE_CLASS_ISP_OP1W_FUNC_H tvector1w OP_1w_and(
|
|||
const tvector1w _a,
|
||||
const tvector1w _b);
|
||||
|
||||
/** @brief bitwise OR
|
||||
/* @brief bitwise OR
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -77,7 +77,7 @@ STORAGE_CLASS_ISP_OP1W_FUNC_H tvector1w OP_1w_or(
|
|||
const tvector1w _a,
|
||||
const tvector1w _b);
|
||||
|
||||
/** @brief bitwise XOR
|
||||
/* @brief bitwise XOR
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -91,7 +91,7 @@ STORAGE_CLASS_ISP_OP1W_FUNC_H tvector1w OP_1w_xor(
|
|||
const tvector1w _a,
|
||||
const tvector1w _b);
|
||||
|
||||
/** @brief bitwise inverse
|
||||
/* @brief bitwise inverse
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
*
|
||||
|
@ -105,7 +105,7 @@ STORAGE_CLASS_ISP_OP1W_FUNC_H tvector1w OP_1w_inv(
|
|||
|
||||
/* Additive */
|
||||
|
||||
/** @brief addition
|
||||
/* @brief addition
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -120,7 +120,7 @@ STORAGE_CLASS_ISP_OP1W_FUNC_H tvector1w OP_1w_add(
|
|||
const tvector1w _a,
|
||||
const tvector1w _b);
|
||||
|
||||
/** @brief subtraction
|
||||
/* @brief subtraction
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -135,7 +135,7 @@ STORAGE_CLASS_ISP_OP1W_FUNC_H tvector1w OP_1w_sub(
|
|||
const tvector1w _a,
|
||||
const tvector1w _b);
|
||||
|
||||
/** @brief saturated addition
|
||||
/* @brief saturated addition
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -150,7 +150,7 @@ STORAGE_CLASS_ISP_OP1W_FUNC_H tvector1w OP_1w_addsat(
|
|||
const tvector1w _a,
|
||||
const tvector1w _b);
|
||||
|
||||
/** @brief saturated subtraction
|
||||
/* @brief saturated subtraction
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -166,7 +166,7 @@ STORAGE_CLASS_ISP_OP1W_FUNC_H tvector1w OP_1w_subsat(
|
|||
const tvector1w _b);
|
||||
|
||||
#ifdef ISP2401
|
||||
/** @brief Unsigned saturated subtraction
|
||||
/* @brief Unsigned saturated subtraction
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -182,7 +182,7 @@ STORAGE_CLASS_ISP_OP1W_FUNC_H tvector1w_unsigned OP_1w_subsat_u(
|
|||
const tvector1w_unsigned _b);
|
||||
|
||||
#endif
|
||||
/** @brief subtraction with shift right and rounding
|
||||
/* @brief subtraction with shift right and rounding
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -202,7 +202,7 @@ STORAGE_CLASS_ISP_OP1W_FUNC_H tvector1w OP_1w_subasr1(
|
|||
const tvector1w _a,
|
||||
const tvector1w _b);
|
||||
|
||||
/** @brief Subtraction with shift right and rounding
|
||||
/* @brief Subtraction with shift right and rounding
|
||||
*
|
||||
* @param[in] _a first operand
|
||||
* @param[in] _b second operand
|
||||
|
@ -217,7 +217,7 @@ STORAGE_CLASS_ISP_OP1W_FUNC_H tvector1w OP_1w_subhalfrnd(
|
|||
const tvector1w _a,
|
||||
const tvector1w _b);
|
||||
|
||||
/** @brief Subtraction with shift right and no rounding
|
||||
/* @brief Subtraction with shift right and no rounding
|
||||
*
|
||||
* @param[in] _a first operand
|
||||
* @param[in] _b second operand
|
||||
|
@ -233,7 +233,7 @@ STORAGE_CLASS_ISP_OP1W_FUNC_H tvector1w OP_1w_subhalf(
|
|||
const tvector1w _b);
|
||||
|
||||
|
||||
/** @brief saturated absolute value
|
||||
/* @brief saturated absolute value
|
||||
*
|
||||
* @param[in] _a input
|
||||
*
|
||||
|
@ -247,7 +247,7 @@ STORAGE_CLASS_ISP_OP1W_FUNC_H tvector1w OP_1w_subhalf(
|
|||
STORAGE_CLASS_ISP_OP1W_FUNC_H tvector1w OP_1w_abs(
|
||||
const tvector1w _a);
|
||||
|
||||
/** @brief saturated absolute difference
|
||||
/* @brief saturated absolute difference
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -264,7 +264,7 @@ STORAGE_CLASS_ISP_OP1W_FUNC_H tvector1w OP_1w_subabssat(
|
|||
|
||||
/* Multiplicative */
|
||||
|
||||
/** @brief doubling multiply
|
||||
/* @brief doubling multiply
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -281,7 +281,7 @@ STORAGE_CLASS_ISP_OP1W_FUNC_H tvector2w OP_1w_muld(
|
|||
const tvector1w _a,
|
||||
const tvector1w _b);
|
||||
|
||||
/** @brief integer multiply
|
||||
/* @brief integer multiply
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -298,7 +298,7 @@ STORAGE_CLASS_ISP_OP1W_FUNC_H tvector1w OP_1w_mul(
|
|||
const tvector1w _a,
|
||||
const tvector1w _b);
|
||||
|
||||
/** @brief fractional saturating multiply
|
||||
/* @brief fractional saturating multiply
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -316,7 +316,7 @@ STORAGE_CLASS_ISP_OP1W_FUNC_H tvector1w OP_1w_qmul(
|
|||
const tvector1w _a,
|
||||
const tvector1w _b);
|
||||
|
||||
/** @brief fractional saturating multiply with rounding
|
||||
/* @brief fractional saturating multiply with rounding
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -337,7 +337,7 @@ STORAGE_CLASS_ISP_OP1W_FUNC_H tvector1w OP_1w_qrmul(
|
|||
|
||||
/* Comparative */
|
||||
|
||||
/** @brief equal
|
||||
/* @brief equal
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -351,7 +351,7 @@ STORAGE_CLASS_ISP_OP1W_FUNC_H tflags OP_1w_eq(
|
|||
const tvector1w _a,
|
||||
const tvector1w _b);
|
||||
|
||||
/** @brief not equal
|
||||
/* @brief not equal
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -365,7 +365,7 @@ STORAGE_CLASS_ISP_OP1W_FUNC_H tflags OP_1w_ne(
|
|||
const tvector1w _a,
|
||||
const tvector1w _b);
|
||||
|
||||
/** @brief less or equal
|
||||
/* @brief less or equal
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -379,7 +379,7 @@ STORAGE_CLASS_ISP_OP1W_FUNC_H tflags OP_1w_le(
|
|||
const tvector1w _a,
|
||||
const tvector1w _b);
|
||||
|
||||
/** @brief less then
|
||||
/* @brief less then
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -393,7 +393,7 @@ STORAGE_CLASS_ISP_OP1W_FUNC_H tflags OP_1w_lt(
|
|||
const tvector1w _a,
|
||||
const tvector1w _b);
|
||||
|
||||
/** @brief greater or equal
|
||||
/* @brief greater or equal
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -407,7 +407,7 @@ STORAGE_CLASS_ISP_OP1W_FUNC_H tflags OP_1w_ge(
|
|||
const tvector1w _a,
|
||||
const tvector1w _b);
|
||||
|
||||
/** @brief greater than
|
||||
/* @brief greater than
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -423,7 +423,7 @@ STORAGE_CLASS_ISP_OP1W_FUNC_H tflags OP_1w_gt(
|
|||
|
||||
/* Shift */
|
||||
|
||||
/** @brief aritmetic shift right
|
||||
/* @brief aritmetic shift right
|
||||
*
|
||||
* @param[in] _a input
|
||||
* @param[in] _b shift amount
|
||||
|
@ -441,7 +441,7 @@ STORAGE_CLASS_ISP_OP1W_FUNC_H tvector1w OP_1w_asr(
|
|||
const tvector1w _a,
|
||||
const tvector1w _b);
|
||||
|
||||
/** @brief aritmetic shift right with rounding
|
||||
/* @brief aritmetic shift right with rounding
|
||||
*
|
||||
* @param[in] _a input
|
||||
* @param[in] _b shift amount
|
||||
|
@ -460,7 +460,7 @@ STORAGE_CLASS_ISP_OP1W_FUNC_H tvector1w OP_1w_asrrnd(
|
|||
const tvector1w _a,
|
||||
const tvector1w _b);
|
||||
|
||||
/** @brief saturating arithmetic shift left
|
||||
/* @brief saturating arithmetic shift left
|
||||
*
|
||||
* @param[in] _a input
|
||||
* @param[in] _b shift amount
|
||||
|
@ -480,7 +480,7 @@ STORAGE_CLASS_ISP_OP1W_FUNC_H tvector1w OP_1w_asl(
|
|||
const tvector1w _a,
|
||||
const tvector1w _b);
|
||||
|
||||
/** @brief saturating aritmetic shift left
|
||||
/* @brief saturating aritmetic shift left
|
||||
*
|
||||
* @param[in] _a input
|
||||
* @param[in] _b shift amount
|
||||
|
@ -493,7 +493,7 @@ STORAGE_CLASS_ISP_OP1W_FUNC_H tvector1w OP_1w_aslsat(
|
|||
const tvector1w _a,
|
||||
const tvector1w _b);
|
||||
|
||||
/** @brief logical shift left
|
||||
/* @brief logical shift left
|
||||
*
|
||||
* @param[in] _a input
|
||||
* @param[in] _b shift amount
|
||||
|
@ -510,7 +510,7 @@ STORAGE_CLASS_ISP_OP1W_FUNC_H tvector1w OP_1w_lsl(
|
|||
const tvector1w _a,
|
||||
const tvector1w _b);
|
||||
|
||||
/** @brief logical shift right
|
||||
/* @brief logical shift right
|
||||
*
|
||||
* @param[in] _a input
|
||||
* @param[in] _b shift amount
|
||||
|
@ -528,7 +528,7 @@ STORAGE_CLASS_ISP_OP1W_FUNC_H tvector1w OP_1w_lsr(
|
|||
const tvector1w _b);
|
||||
|
||||
#ifdef ISP2401
|
||||
/** @brief bidirectional saturating arithmetic shift
|
||||
/* @brief bidirectional saturating arithmetic shift
|
||||
*
|
||||
* @param[in] _a input
|
||||
* @param[in] _b shift amount
|
||||
|
@ -546,7 +546,7 @@ STORAGE_CLASS_ISP_OP1W_FUNC_H tvector1w OP_1w_ashift_sat(
|
|||
const tvector1w _a,
|
||||
const tvector1w _b);
|
||||
|
||||
/** @brief bidirectional non-saturating arithmetic shift
|
||||
/* @brief bidirectional non-saturating arithmetic shift
|
||||
*
|
||||
* @param[in] _a input
|
||||
* @param[in] _b shift amount
|
||||
|
@ -565,7 +565,7 @@ STORAGE_CLASS_ISP_OP1W_FUNC_H tvector1w OP_1w_ashift(
|
|||
const tvector1w _b);
|
||||
|
||||
|
||||
/** @brief bidirectional logical shift
|
||||
/* @brief bidirectional logical shift
|
||||
*
|
||||
* @param[in] _a input
|
||||
* @param[in] _b shift amount
|
||||
|
@ -588,7 +588,7 @@ STORAGE_CLASS_ISP_OP1W_FUNC_H tvector1w OP_1w_lshift(
|
|||
#endif
|
||||
/* Cast */
|
||||
|
||||
/** @brief Cast from int to 1w
|
||||
/* @brief Cast from int to 1w
|
||||
*
|
||||
* @param[in] _a input
|
||||
*
|
||||
|
@ -601,7 +601,7 @@ STORAGE_CLASS_ISP_OP1W_FUNC_H tvector1w OP_1w_lshift(
|
|||
STORAGE_CLASS_ISP_OP1W_FUNC_H tvector1w OP_int_cast_to_1w(
|
||||
const int _a);
|
||||
|
||||
/** @brief Cast from 1w to int
|
||||
/* @brief Cast from 1w to int
|
||||
*
|
||||
* @param[in] _a input
|
||||
*
|
||||
|
@ -614,7 +614,7 @@ STORAGE_CLASS_ISP_OP1W_FUNC_H tvector1w OP_int_cast_to_1w(
|
|||
STORAGE_CLASS_ISP_OP1W_FUNC_H int OP_1w_cast_to_int(
|
||||
const tvector1w _a);
|
||||
|
||||
/** @brief Cast from 1w to 2w
|
||||
/* @brief Cast from 1w to 2w
|
||||
*
|
||||
* @param[in] _a input
|
||||
*
|
||||
|
@ -627,7 +627,7 @@ STORAGE_CLASS_ISP_OP1W_FUNC_H int OP_1w_cast_to_int(
|
|||
STORAGE_CLASS_ISP_OP1W_FUNC_H tvector2w OP_1w_cast_to_2w(
|
||||
const tvector1w _a);
|
||||
|
||||
/** @brief Cast from 2w to 1w
|
||||
/* @brief Cast from 2w to 1w
|
||||
*
|
||||
* @param[in] _a input
|
||||
*
|
||||
|
@ -641,7 +641,7 @@ STORAGE_CLASS_ISP_OP1W_FUNC_H tvector1w OP_2w_cast_to_1w(
|
|||
const tvector2w _a);
|
||||
|
||||
|
||||
/** @brief Cast from 2w to 1w with saturation
|
||||
/* @brief Cast from 2w to 1w with saturation
|
||||
*
|
||||
* @param[in] _a input
|
||||
*
|
||||
|
@ -657,7 +657,7 @@ STORAGE_CLASS_ISP_OP1W_FUNC_H tvector1w OP_2w_sat_cast_to_1w(
|
|||
|
||||
/* clipping */
|
||||
|
||||
/** @brief Clip asymmetrical
|
||||
/* @brief Clip asymmetrical
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -673,7 +673,7 @@ STORAGE_CLASS_ISP_OP1W_FUNC_H tvector1w OP_1w_clip_asym(
|
|||
const tvector1w _a,
|
||||
const tvector1w _b);
|
||||
|
||||
/** @brief Clip zero
|
||||
/* @brief Clip zero
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -691,7 +691,7 @@ STORAGE_CLASS_ISP_OP1W_FUNC_H tvector1w OP_1w_clipz(
|
|||
|
||||
/* division */
|
||||
|
||||
/** @brief Truncated division
|
||||
/* @brief Truncated division
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -708,7 +708,7 @@ STORAGE_CLASS_ISP_OP1W_FUNC_H tvector1w OP_1w_div(
|
|||
const tvector1w _a,
|
||||
const tvector1w _b);
|
||||
|
||||
/** @brief Fractional saturating divide
|
||||
/* @brief Fractional saturating divide
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -726,7 +726,7 @@ STORAGE_CLASS_ISP_OP1W_FUNC_H tvector1w OP_1w_qdiv(
|
|||
const tvector1w _a,
|
||||
const tvector1w _b);
|
||||
|
||||
/** @brief Modulo
|
||||
/* @brief Modulo
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -741,7 +741,7 @@ STORAGE_CLASS_ISP_OP1W_FUNC_H tvector1w OP_1w_mod(
|
|||
const tvector1w _a,
|
||||
const tvector1w _b);
|
||||
|
||||
/** @brief Unsigned integer Square root
|
||||
/* @brief Unsigned integer Square root
|
||||
*
|
||||
* @param[in] _a input
|
||||
*
|
||||
|
@ -754,7 +754,7 @@ STORAGE_CLASS_ISP_OP1W_FUNC_H tvector1w_unsigned OP_1w_sqrt_u(
|
|||
|
||||
/* Miscellaneous */
|
||||
|
||||
/** @brief Multiplexer
|
||||
/* @brief Multiplexer
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -770,7 +770,7 @@ STORAGE_CLASS_ISP_OP1W_FUNC_H tvector1w OP_1w_mux(
|
|||
const tvector1w _b,
|
||||
const tflags _c);
|
||||
|
||||
/** @brief Average without rounding
|
||||
/* @brief Average without rounding
|
||||
*
|
||||
* @param[in] _a first operand
|
||||
* @param[in] _b second operand
|
||||
|
@ -786,7 +786,7 @@ STORAGE_CLASS_ISP_OP1W_FUNC_H tvector1w OP_1w_avg(
|
|||
const tvector1w _a,
|
||||
const tvector1w _b);
|
||||
|
||||
/** @brief Average with rounding
|
||||
/* @brief Average with rounding
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -802,7 +802,7 @@ STORAGE_CLASS_ISP_OP1W_FUNC_H tvector1w OP_1w_avgrnd(
|
|||
const tvector1w _a,
|
||||
const tvector1w _b);
|
||||
|
||||
/** @brief Minimum
|
||||
/* @brief Minimum
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -816,7 +816,7 @@ STORAGE_CLASS_ISP_OP1W_FUNC_H tvector1w OP_1w_min(
|
|||
const tvector1w _a,
|
||||
const tvector1w _b);
|
||||
|
||||
/** @brief Maximum
|
||||
/* @brief Maximum
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
|
|
@ -48,7 +48,7 @@
|
|||
|
||||
/* Arithmetic */
|
||||
|
||||
/** @brief bitwise AND
|
||||
/* @brief bitwise AND
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -62,7 +62,7 @@ STORAGE_CLASS_ISP_OP2W_FUNC_H tvector2w OP_2w_and(
|
|||
const tvector2w _a,
|
||||
const tvector2w _b);
|
||||
|
||||
/** @brief bitwise OR
|
||||
/* @brief bitwise OR
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -76,7 +76,7 @@ STORAGE_CLASS_ISP_OP2W_FUNC_H tvector2w OP_2w_or(
|
|||
const tvector2w _a,
|
||||
const tvector2w _b);
|
||||
|
||||
/** @brief bitwise XOR
|
||||
/* @brief bitwise XOR
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -90,7 +90,7 @@ STORAGE_CLASS_ISP_OP2W_FUNC_H tvector2w OP_2w_xor(
|
|||
const tvector2w _a,
|
||||
const tvector2w _b);
|
||||
|
||||
/** @brief bitwise inverse
|
||||
/* @brief bitwise inverse
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
*
|
||||
|
@ -104,7 +104,7 @@ STORAGE_CLASS_ISP_OP2W_FUNC_H tvector2w OP_2w_inv(
|
|||
|
||||
/* Additive */
|
||||
|
||||
/** @brief addition
|
||||
/* @brief addition
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -119,7 +119,7 @@ STORAGE_CLASS_ISP_OP2W_FUNC_H tvector2w OP_2w_add(
|
|||
const tvector2w _a,
|
||||
const tvector2w _b);
|
||||
|
||||
/** @brief subtraction
|
||||
/* @brief subtraction
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -134,7 +134,7 @@ STORAGE_CLASS_ISP_OP2W_FUNC_H tvector2w OP_2w_sub(
|
|||
const tvector2w _a,
|
||||
const tvector2w _b);
|
||||
|
||||
/** @brief saturated addition
|
||||
/* @brief saturated addition
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -149,7 +149,7 @@ STORAGE_CLASS_ISP_OP2W_FUNC_H tvector2w OP_2w_addsat(
|
|||
const tvector2w _a,
|
||||
const tvector2w _b);
|
||||
|
||||
/** @brief saturated subtraction
|
||||
/* @brief saturated subtraction
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -164,7 +164,7 @@ STORAGE_CLASS_ISP_OP2W_FUNC_H tvector2w OP_2w_subsat(
|
|||
const tvector2w _a,
|
||||
const tvector2w _b);
|
||||
|
||||
/** @brief subtraction with shift right and rounding
|
||||
/* @brief subtraction with shift right and rounding
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -184,7 +184,7 @@ STORAGE_CLASS_ISP_OP2W_FUNC_H tvector2w OP_2w_subasr1(
|
|||
const tvector2w _a,
|
||||
const tvector2w _b);
|
||||
|
||||
/** @brief Subtraction with shift right and rounding
|
||||
/* @brief Subtraction with shift right and rounding
|
||||
*
|
||||
* @param[in] _a first operand
|
||||
* @param[in] _b second operand
|
||||
|
@ -199,7 +199,7 @@ STORAGE_CLASS_ISP_OP2W_FUNC_H tvector2w OP_2w_subhalfrnd(
|
|||
const tvector2w _a,
|
||||
const tvector2w _b);
|
||||
|
||||
/** @brief Subtraction with shift right and no rounding
|
||||
/* @brief Subtraction with shift right and no rounding
|
||||
*
|
||||
* @param[in] _a first operand
|
||||
* @param[in] _b second operand
|
||||
|
@ -214,7 +214,7 @@ STORAGE_CLASS_ISP_OP2W_FUNC_H tvector2w OP_2w_subhalf(
|
|||
const tvector2w _a,
|
||||
const tvector2w _b);
|
||||
|
||||
/** @brief saturated absolute value
|
||||
/* @brief saturated absolute value
|
||||
*
|
||||
* @param[in] _a input
|
||||
*
|
||||
|
@ -228,7 +228,7 @@ STORAGE_CLASS_ISP_OP2W_FUNC_H tvector2w OP_2w_subhalf(
|
|||
STORAGE_CLASS_ISP_OP2W_FUNC_H tvector2w OP_2w_abs(
|
||||
const tvector2w _a);
|
||||
|
||||
/** @brief saturated absolute difference
|
||||
/* @brief saturated absolute difference
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -245,7 +245,7 @@ STORAGE_CLASS_ISP_OP2W_FUNC_H tvector2w OP_2w_subabssat(
|
|||
|
||||
/* Multiplicative */
|
||||
|
||||
/** @brief integer multiply
|
||||
/* @brief integer multiply
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -262,7 +262,7 @@ STORAGE_CLASS_ISP_OP2W_FUNC_H tvector2w OP_2w_mul(
|
|||
const tvector2w _a,
|
||||
const tvector2w _b);
|
||||
|
||||
/** @brief fractional saturating multiply
|
||||
/* @brief fractional saturating multiply
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -279,7 +279,7 @@ STORAGE_CLASS_ISP_OP2W_FUNC_H tvector2w OP_2w_qmul(
|
|||
const tvector2w _a,
|
||||
const tvector2w _b);
|
||||
|
||||
/** @brief fractional saturating multiply with rounding
|
||||
/* @brief fractional saturating multiply with rounding
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -301,7 +301,7 @@ STORAGE_CLASS_ISP_OP2W_FUNC_H tvector2w OP_2w_qrmul(
|
|||
|
||||
/* Comparative */
|
||||
|
||||
/** @brief equal
|
||||
/* @brief equal
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -315,7 +315,7 @@ STORAGE_CLASS_ISP_OP2W_FUNC_H tflags OP_2w_eq(
|
|||
const tvector2w _a,
|
||||
const tvector2w _b);
|
||||
|
||||
/** @brief not equal
|
||||
/* @brief not equal
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -329,7 +329,7 @@ STORAGE_CLASS_ISP_OP2W_FUNC_H tflags OP_2w_ne(
|
|||
const tvector2w _a,
|
||||
const tvector2w _b);
|
||||
|
||||
/** @brief less or equal
|
||||
/* @brief less or equal
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -343,7 +343,7 @@ STORAGE_CLASS_ISP_OP2W_FUNC_H tflags OP_2w_le(
|
|||
const tvector2w _a,
|
||||
const tvector2w _b);
|
||||
|
||||
/** @brief less then
|
||||
/* @brief less then
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -357,7 +357,7 @@ STORAGE_CLASS_ISP_OP2W_FUNC_H tflags OP_2w_lt(
|
|||
const tvector2w _a,
|
||||
const tvector2w _b);
|
||||
|
||||
/** @brief greater or equal
|
||||
/* @brief greater or equal
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -371,7 +371,7 @@ STORAGE_CLASS_ISP_OP2W_FUNC_H tflags OP_2w_ge(
|
|||
const tvector2w _a,
|
||||
const tvector2w _b);
|
||||
|
||||
/** @brief greater than
|
||||
/* @brief greater than
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -387,7 +387,7 @@ STORAGE_CLASS_ISP_OP2W_FUNC_H tflags OP_2w_gt(
|
|||
|
||||
/* Shift */
|
||||
|
||||
/** @brief aritmetic shift right
|
||||
/* @brief aritmetic shift right
|
||||
*
|
||||
* @param[in] _a input
|
||||
* @param[in] _b shift amount
|
||||
|
@ -404,7 +404,7 @@ STORAGE_CLASS_ISP_OP2W_FUNC_H tvector2w OP_2w_asr(
|
|||
const tvector2w _a,
|
||||
const tvector2w _b);
|
||||
|
||||
/** @brief aritmetic shift right with rounding
|
||||
/* @brief aritmetic shift right with rounding
|
||||
*
|
||||
* @param[in] _a input
|
||||
* @param[in] _b shift amount
|
||||
|
@ -423,7 +423,7 @@ STORAGE_CLASS_ISP_OP2W_FUNC_H tvector2w OP_2w_asrrnd(
|
|||
const tvector2w _a,
|
||||
const tvector2w _b);
|
||||
|
||||
/** @brief saturating aritmetic shift left
|
||||
/* @brief saturating aritmetic shift left
|
||||
*
|
||||
* @param[in] _a input
|
||||
* @param[in] _b shift amount
|
||||
|
@ -443,7 +443,7 @@ STORAGE_CLASS_ISP_OP2W_FUNC_H tvector2w OP_2w_asl(
|
|||
const tvector2w _a,
|
||||
const tvector2w _b);
|
||||
|
||||
/** @brief saturating aritmetic shift left
|
||||
/* @brief saturating aritmetic shift left
|
||||
*
|
||||
* @param[in] _a input
|
||||
* @param[in] _b shift amount
|
||||
|
@ -456,7 +456,7 @@ STORAGE_CLASS_ISP_OP2W_FUNC_H tvector2w OP_2w_aslsat(
|
|||
const tvector2w _a,
|
||||
const tvector2w _b);
|
||||
|
||||
/** @brief logical shift left
|
||||
/* @brief logical shift left
|
||||
*
|
||||
* @param[in] _a input
|
||||
* @param[in] _b shift amount
|
||||
|
@ -473,7 +473,7 @@ STORAGE_CLASS_ISP_OP2W_FUNC_H tvector2w OP_2w_lsl(
|
|||
const tvector2w _a,
|
||||
const tvector2w _b);
|
||||
|
||||
/** @brief logical shift right
|
||||
/* @brief logical shift right
|
||||
*
|
||||
* @param[in] _a input
|
||||
* @param[in] _b shift amount
|
||||
|
@ -492,7 +492,7 @@ STORAGE_CLASS_ISP_OP2W_FUNC_H tvector2w OP_2w_lsr(
|
|||
|
||||
/* clipping */
|
||||
|
||||
/** @brief Clip asymmetrical
|
||||
/* @brief Clip asymmetrical
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -507,7 +507,7 @@ STORAGE_CLASS_ISP_OP2W_FUNC_H tvector2w OP_2w_clip_asym(
|
|||
const tvector2w _a,
|
||||
const tvector2w _b);
|
||||
|
||||
/** @brief Clip zero
|
||||
/* @brief Clip zero
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -524,7 +524,7 @@ STORAGE_CLASS_ISP_OP2W_FUNC_H tvector2w OP_2w_clipz(
|
|||
|
||||
/* division */
|
||||
|
||||
/** @brief Truncated division
|
||||
/* @brief Truncated division
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -541,7 +541,7 @@ STORAGE_CLASS_ISP_OP2W_FUNC_H tvector2w OP_2w_div(
|
|||
const tvector2w _a,
|
||||
const tvector2w _b);
|
||||
|
||||
/** @brief Saturating truncated division
|
||||
/* @brief Saturating truncated division
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -559,7 +559,7 @@ STORAGE_CLASS_ISP_OP2W_FUNC_H tvector1w OP_2w_divh(
|
|||
const tvector2w _a,
|
||||
const tvector1w _b);
|
||||
|
||||
/** @brief Modulo
|
||||
/* @brief Modulo
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -572,7 +572,7 @@ STORAGE_CLASS_ISP_OP2W_FUNC_H tvector2w OP_2w_mod(
|
|||
const tvector2w _a,
|
||||
const tvector2w _b);
|
||||
|
||||
/** @brief Unsigned Integer Square root
|
||||
/* @brief Unsigned Integer Square root
|
||||
*
|
||||
* @param[in] _a input
|
||||
*
|
||||
|
@ -585,7 +585,7 @@ STORAGE_CLASS_ISP_OP2W_FUNC_H tvector1w_unsigned OP_2w_sqrt_u(
|
|||
|
||||
/* Miscellaneous */
|
||||
|
||||
/** @brief Multiplexer
|
||||
/* @brief Multiplexer
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -601,7 +601,7 @@ STORAGE_CLASS_ISP_OP2W_FUNC_H tvector2w OP_2w_mux(
|
|||
const tvector2w _b,
|
||||
const tflags _c);
|
||||
|
||||
/** @brief Average without rounding
|
||||
/* @brief Average without rounding
|
||||
*
|
||||
* @param[in] _a first operand
|
||||
* @param[in] _b second operand
|
||||
|
@ -617,7 +617,7 @@ STORAGE_CLASS_ISP_OP2W_FUNC_H tvector2w OP_2w_avg(
|
|||
const tvector2w _a,
|
||||
const tvector2w _b);
|
||||
|
||||
/** @brief Average with rounding
|
||||
/* @brief Average with rounding
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -633,7 +633,7 @@ STORAGE_CLASS_ISP_OP2W_FUNC_H tvector2w OP_2w_avgrnd(
|
|||
const tvector2w _a,
|
||||
const tvector2w _b);
|
||||
|
||||
/** @brief Minimum
|
||||
/* @brief Minimum
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
@ -647,7 +647,7 @@ STORAGE_CLASS_ISP_OP2W_FUNC_H tvector2w OP_2w_min(
|
|||
const tvector2w _a,
|
||||
const tvector2w _b);
|
||||
|
||||
/** @brief Maximum
|
||||
/* @brief Maximum
|
||||
*
|
||||
* @param[in] _a first argument
|
||||
* @param[in] _b second argument
|
||||
|
|
|
@ -43,7 +43,7 @@ STORAGE_CLASS_STREAM2MMIO_H void stream2mmio_get_sid_state(
|
|||
const stream2mmio_ID_t ID,
|
||||
const stream2mmio_sid_ID_t sid_id,
|
||||
stream2mmio_sid_state_t *state);
|
||||
/** end of NCI */
|
||||
/* end of NCI */
|
||||
|
||||
/*****************************************************
|
||||
*
|
||||
|
@ -96,6 +96,6 @@ STORAGE_CLASS_STREAM2MMIO_H void stream2mmio_reg_store(
|
|||
const stream2mmio_ID_t ID,
|
||||
const hrt_address reg,
|
||||
const hrt_data value);
|
||||
/** end of DLI */
|
||||
/* end of DLI */
|
||||
|
||||
#endif /* __ISYS_STREAM2MMIO_PUBLIC_H_INCLUDED__ */
|
||||
|
|
|
@ -41,7 +41,7 @@ STORAGE_CLASS_PIXELGEN_H void pixelgen_ctrl_get_state(
|
|||
STORAGE_CLASS_PIXELGEN_H void pixelgen_ctrl_dump_state(
|
||||
const pixelgen_ID_t ID,
|
||||
pixelgen_ctrl_state_t *state);
|
||||
/** end of NCI */
|
||||
/* end of NCI */
|
||||
|
||||
/*****************************************************
|
||||
*
|
||||
|
@ -73,7 +73,7 @@ STORAGE_CLASS_PIXELGEN_H void pixelgen_ctrl_reg_store(
|
|||
const pixelgen_ID_t ID,
|
||||
const hrt_address reg,
|
||||
const hrt_data value);
|
||||
/** end of DLI */
|
||||
/* end of DLI */
|
||||
|
||||
#endif /* USE_INPUT_SYSTEM_VERSION_2401 */
|
||||
#endif /* __PIXELGEN_PUBLIC_H_INCLUDED__ */
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
|
||||
#include "ref_vector_func_types.h"
|
||||
|
||||
/** @brief Doubling multiply accumulate with saturation
|
||||
/* @brief Doubling multiply accumulate with saturation
|
||||
*
|
||||
* @param[in] acc accumulator
|
||||
* @param[in] a multiply input
|
||||
|
@ -44,7 +44,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H tvector2w OP_1w_maccd_sat(
|
|||
tvector1w a,
|
||||
tvector1w b );
|
||||
|
||||
/** @brief Doubling multiply accumulate
|
||||
/* @brief Doubling multiply accumulate
|
||||
*
|
||||
* @param[in] acc accumulator
|
||||
* @param[in] a multiply input
|
||||
|
@ -61,7 +61,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H tvector2w OP_1w_maccd(
|
|||
tvector1w a,
|
||||
tvector1w b );
|
||||
|
||||
/** @brief Re-aligning multiply
|
||||
/* @brief Re-aligning multiply
|
||||
*
|
||||
* @param[in] a multiply input
|
||||
* @param[in] b multiply input
|
||||
|
@ -78,7 +78,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w OP_1w_mul_realigning(
|
|||
tvector1w b,
|
||||
tscalar1w shift );
|
||||
|
||||
/** @brief Leading bit index
|
||||
/* @brief Leading bit index
|
||||
*
|
||||
* @param[in] a input
|
||||
*
|
||||
|
@ -92,7 +92,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w OP_1w_mul_realigning(
|
|||
STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w OP_1w_lod(
|
||||
tvector1w a);
|
||||
|
||||
/** @brief Config Unit Input Processing
|
||||
/* @brief Config Unit Input Processing
|
||||
*
|
||||
* @param[in] a input
|
||||
* @param[in] input_scale input scaling factor
|
||||
|
@ -111,7 +111,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w OP_1w_input_scaling_offset_clamping(
|
|||
tscalar1w_5bit_signed input_scale,
|
||||
tscalar1w_5bit_signed input_offset);
|
||||
|
||||
/** @brief Config Unit Output Processing
|
||||
/* @brief Config Unit Output Processing
|
||||
*
|
||||
* @param[in] a output
|
||||
* @param[in] output_scale output scaling factor
|
||||
|
@ -127,7 +127,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w OP_1w_output_scaling_clamping(
|
|||
tvector1w a,
|
||||
tscalar1w_5bit_signed output_scale);
|
||||
|
||||
/** @brief Config Unit Piecewiselinear estimation
|
||||
/* @brief Config Unit Piecewiselinear estimation
|
||||
*
|
||||
* @param[in] a input
|
||||
* @param[in] config_points config parameter structure
|
||||
|
@ -143,7 +143,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w OP_1w_piecewise_estimation(
|
|||
tvector1w a,
|
||||
ref_config_points config_points);
|
||||
|
||||
/** @brief Fast Config Unit
|
||||
/* @brief Fast Config Unit
|
||||
*
|
||||
* @param[in] x input
|
||||
* @param[in] init_vectors LUT data structure
|
||||
|
@ -161,7 +161,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w OP_1w_XCU(
|
|||
xcu_ref_init_vectors init_vectors);
|
||||
|
||||
|
||||
/** @brief LXCU
|
||||
/* @brief LXCU
|
||||
*
|
||||
* @param[in] x input
|
||||
* @param[in] init_vectors LUT data structure
|
||||
|
@ -180,7 +180,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w OP_1w_LXCU(
|
|||
tvector1w x,
|
||||
xcu_ref_init_vectors init_vectors);
|
||||
|
||||
/** @brief Coring
|
||||
/* @brief Coring
|
||||
*
|
||||
* @param[in] coring_vec Amount of coring based on brightness level
|
||||
* @param[in] filt_input Vector of input pixels on which Coring is applied
|
||||
|
@ -196,7 +196,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w coring(
|
|||
tvector1w filt_input,
|
||||
tscalar1w m_CnrCoring0 );
|
||||
|
||||
/** @brief Normalised FIR with coefficients [3,4,1]
|
||||
/* @brief Normalised FIR with coefficients [3,4,1]
|
||||
*
|
||||
* @param[in] m 1x3 matrix with pixels
|
||||
*
|
||||
|
@ -209,7 +209,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w coring(
|
|||
STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w fir1x3m_5dB_m90_nrm (
|
||||
const s_1w_1x3_matrix m);
|
||||
|
||||
/** @brief Normalised FIR with coefficients [1,4,3]
|
||||
/* @brief Normalised FIR with coefficients [1,4,3]
|
||||
*
|
||||
* @param[in] m 1x3 matrix with pixels
|
||||
*
|
||||
|
@ -222,7 +222,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w fir1x3m_5dB_m90_nrm (
|
|||
STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w fir1x3m_5dB_p90_nrm (
|
||||
const s_1w_1x3_matrix m);
|
||||
|
||||
/** @brief Normalised FIR with coefficients [1,2,1]
|
||||
/* @brief Normalised FIR with coefficients [1,2,1]
|
||||
*
|
||||
* @param[in] m 1x3 matrix with pixels
|
||||
*
|
||||
|
@ -234,7 +234,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w fir1x3m_5dB_p90_nrm (
|
|||
STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w fir1x3m_6dB_nrm (
|
||||
const s_1w_1x3_matrix m);
|
||||
|
||||
/** @brief Normalised FIR with coefficients [13,16,3]
|
||||
/* @brief Normalised FIR with coefficients [13,16,3]
|
||||
*
|
||||
* @param[in] m 1x3 matrix with pixels
|
||||
*
|
||||
|
@ -246,7 +246,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w fir1x3m_6dB_nrm (
|
|||
STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w fir1x3m_6dB_nrm_ph0 (
|
||||
const s_1w_1x3_matrix m);
|
||||
|
||||
/** @brief Normalised FIR with coefficients [9,16,7]
|
||||
/* @brief Normalised FIR with coefficients [9,16,7]
|
||||
*
|
||||
* @param[in] m 1x3 matrix with pixels
|
||||
*
|
||||
|
@ -258,7 +258,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w fir1x3m_6dB_nrm_ph0 (
|
|||
STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w fir1x3m_6dB_nrm_ph1 (
|
||||
const s_1w_1x3_matrix m);
|
||||
|
||||
/** @brief Normalised FIR with coefficients [5,16,11]
|
||||
/* @brief Normalised FIR with coefficients [5,16,11]
|
||||
*
|
||||
* @param[in] m 1x3 matrix with pixels
|
||||
*
|
||||
|
@ -270,7 +270,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w fir1x3m_6dB_nrm_ph1 (
|
|||
STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w fir1x3m_6dB_nrm_ph2 (
|
||||
const s_1w_1x3_matrix m);
|
||||
|
||||
/** @brief Normalised FIR with coefficients [1,16,15]
|
||||
/* @brief Normalised FIR with coefficients [1,16,15]
|
||||
*
|
||||
* @param[in] m 1x3 matrix with pixels
|
||||
*
|
||||
|
@ -282,7 +282,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w fir1x3m_6dB_nrm_ph2 (
|
|||
STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w fir1x3m_6dB_nrm_ph3 (
|
||||
const s_1w_1x3_matrix m);
|
||||
|
||||
/** @brief Normalised FIR with programable phase shift
|
||||
/* @brief Normalised FIR with programable phase shift
|
||||
*
|
||||
* @param[in] m 1x3 matrix with pixels
|
||||
* @param[in] coeff phase shift
|
||||
|
@ -295,7 +295,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w fir1x3m_6dB_nrm_ph3 (
|
|||
STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w fir1x3m_6dB_nrm_calc_coeff (
|
||||
const s_1w_1x3_matrix m, tscalar1w_3bit coeff);
|
||||
|
||||
/** @brief 3 tap FIR with coefficients [1,1,1]
|
||||
/* @brief 3 tap FIR with coefficients [1,1,1]
|
||||
*
|
||||
* @param[in] m 1x3 matrix with pixels
|
||||
*
|
||||
|
@ -308,7 +308,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w fir1x3m_9dB_nrm (
|
|||
const s_1w_1x3_matrix m);
|
||||
|
||||
#ifdef ISP2401
|
||||
/** @brief symmetric 3 tap FIR acts as LPF or BSF
|
||||
/* @brief symmetric 3 tap FIR acts as LPF or BSF
|
||||
*
|
||||
* @param[in] m 1x3 matrix with pixels
|
||||
* @param[in] k filter coefficient shift
|
||||
|
@ -336,7 +336,7 @@ sym_fir1x3m_lpf_bsf(s_1w_1x3_matrix m,
|
|||
tscalar_bool bsf_flag);
|
||||
#endif
|
||||
|
||||
/** @brief Normalised 2D FIR with coefficients [1;2;1] * [1,2,1]
|
||||
/* @brief Normalised 2D FIR with coefficients [1;2;1] * [1,2,1]
|
||||
*
|
||||
* @param[in] m 3x3 matrix with pixels
|
||||
*
|
||||
|
@ -353,7 +353,7 @@ sym_fir1x3m_lpf_bsf(s_1w_1x3_matrix m,
|
|||
STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w fir3x3m_6dB_nrm (
|
||||
const s_1w_3x3_matrix m);
|
||||
|
||||
/** @brief Normalised 2D FIR with coefficients [1;1;1] * [1,1,1]
|
||||
/* @brief Normalised 2D FIR with coefficients [1;1;1] * [1,1,1]
|
||||
*
|
||||
* @param[in] m 3x3 matrix with pixels
|
||||
*
|
||||
|
@ -371,7 +371,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w fir3x3m_6dB_nrm (
|
|||
STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w fir3x3m_9dB_nrm (
|
||||
const s_1w_3x3_matrix m);
|
||||
|
||||
/** @brief Normalised dual output 2D FIR with coefficients [1;2;1] * [1,2,1]
|
||||
/* @brief Normalised dual output 2D FIR with coefficients [1;2;1] * [1,2,1]
|
||||
*
|
||||
* @param[in] m 4x3 matrix with pixels
|
||||
*
|
||||
|
@ -391,7 +391,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w fir3x3m_9dB_nrm (
|
|||
STORAGE_CLASS_REF_VECTOR_FUNC_H s_1w_2x1_matrix fir3x3m_6dB_out2x1_nrm (
|
||||
const s_1w_4x3_matrix m);
|
||||
|
||||
/** @brief Normalised dual output 2D FIR with coefficients [1;1;1] * [1,1,1]
|
||||
/* @brief Normalised dual output 2D FIR with coefficients [1;1;1] * [1,1,1]
|
||||
*
|
||||
* @param[in] m 4x3 matrix with pixels
|
||||
*
|
||||
|
@ -411,7 +411,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w fir3x3m_9dB_nrm (
|
|||
STORAGE_CLASS_REF_VECTOR_FUNC_H s_1w_2x1_matrix fir3x3m_9dB_out2x1_nrm (
|
||||
const s_1w_4x3_matrix m);
|
||||
|
||||
/** @brief Normalised 2D FIR 5x5
|
||||
/* @brief Normalised 2D FIR 5x5
|
||||
*
|
||||
* @param[in] m 5x5 matrix with pixels
|
||||
*
|
||||
|
@ -429,7 +429,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H s_1w_2x1_matrix fir3x3m_9dB_out2x1_nrm (
|
|||
STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w fir5x5m_15dB_nrm (
|
||||
const s_1w_5x5_matrix m);
|
||||
|
||||
/** @brief Normalised FIR 1x5
|
||||
/* @brief Normalised FIR 1x5
|
||||
*
|
||||
* @param[in] m 1x5 matrix with pixels
|
||||
*
|
||||
|
@ -447,7 +447,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w fir5x5m_15dB_nrm (
|
|||
STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w fir1x5m_12dB_nrm (
|
||||
const s_1w_1x5_matrix m);
|
||||
|
||||
/** @brief Normalised 2D FIR 5x5
|
||||
/* @brief Normalised 2D FIR 5x5
|
||||
*
|
||||
* @param[in] m 5x5 matrix with pixels
|
||||
*
|
||||
|
@ -465,7 +465,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w fir1x5m_12dB_nrm (
|
|||
STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w fir5x5m_12dB_nrm (
|
||||
const s_1w_5x5_matrix m);
|
||||
|
||||
/** @brief Approximate averaging FIR 1x5
|
||||
/* @brief Approximate averaging FIR 1x5
|
||||
*
|
||||
* @param[in] m 1x5 matrix with pixels
|
||||
*
|
||||
|
@ -479,7 +479,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w fir5x5m_12dB_nrm (
|
|||
STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w fir1x5m_box (
|
||||
s_1w_1x5_matrix m);
|
||||
|
||||
/** @brief Approximate averaging FIR 1x9
|
||||
/* @brief Approximate averaging FIR 1x9
|
||||
*
|
||||
* @param[in] m 1x9 matrix with pixels
|
||||
*
|
||||
|
@ -493,7 +493,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w fir1x5m_box (
|
|||
STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w fir1x9m_box (
|
||||
s_1w_1x9_matrix m);
|
||||
|
||||
/** @brief Approximate averaging FIR 1x11
|
||||
/* @brief Approximate averaging FIR 1x11
|
||||
*
|
||||
* @param[in] m 1x11 matrix with pixels
|
||||
*
|
||||
|
@ -507,7 +507,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w fir1x9m_box (
|
|||
STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w fir1x11m_box (
|
||||
s_1w_1x11_matrix m);
|
||||
|
||||
/** @brief Symmetric 7 tap filter with normalization
|
||||
/* @brief Symmetric 7 tap filter with normalization
|
||||
*
|
||||
* @param[in] in 1x7 matrix with pixels
|
||||
* @param[in] coeff 1x4 matrix with coefficients
|
||||
|
@ -528,7 +528,7 @@ fir1x7m_sym_nrm(s_1w_1x7_matrix in,
|
|||
s_1w_1x4_matrix coeff,
|
||||
tvector1w out_shift);
|
||||
|
||||
/** @brief Symmetric 7 tap filter with normalization at input side
|
||||
/* @brief Symmetric 7 tap filter with normalization at input side
|
||||
*
|
||||
* @param[in] in 1x7 matrix with pixels
|
||||
* @param[in] coeff 1x4 matrix with coefficients
|
||||
|
@ -549,7 +549,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w
|
|||
fir1x7m_sym_innrm_approx(s_1w_1x7_matrix in,
|
||||
s_1w_1x4_matrix coeff);
|
||||
|
||||
/** @brief Symmetric 7 tap filter with normalization at output side
|
||||
/* @brief Symmetric 7 tap filter with normalization at output side
|
||||
*
|
||||
* @param[in] in 1x7 matrix with pixels
|
||||
* @param[in] coeff 1x4 matrix with coefficients
|
||||
|
@ -571,7 +571,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w
|
|||
fir1x7m_sym_outnrm_approx(s_1w_1x7_matrix in,
|
||||
s_1w_1x4_matrix coeff);
|
||||
|
||||
/** @brief 4 tap filter with normalization
|
||||
/* @brief 4 tap filter with normalization
|
||||
*
|
||||
* @param[in] in 1x4 matrix with pixels
|
||||
* @param[in] coeff 1x4 matrix with coefficients
|
||||
|
@ -588,7 +588,7 @@ fir1x4m_nrm(s_1w_1x4_matrix in,
|
|||
s_1w_1x4_matrix coeff,
|
||||
tvector1w out_shift);
|
||||
|
||||
/** @brief 4 tap filter with normalization for half pixel interpolation
|
||||
/* @brief 4 tap filter with normalization for half pixel interpolation
|
||||
*
|
||||
* @param[in] in 1x4 matrix with pixels
|
||||
*
|
||||
|
@ -604,7 +604,7 @@ fir1x4m_nrm(s_1w_1x4_matrix in,
|
|||
STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w
|
||||
fir1x4m_bicubic_bezier_half(s_1w_1x4_matrix in);
|
||||
|
||||
/** @brief 4 tap filter with normalization for quarter pixel interpolation
|
||||
/* @brief 4 tap filter with normalization for quarter pixel interpolation
|
||||
*
|
||||
* @param[in] in 1x4 matrix with pixels
|
||||
* @param[in] coeff 1x4 matrix with coefficients
|
||||
|
@ -626,7 +626,7 @@ fir1x4m_bicubic_bezier_quarter(s_1w_1x4_matrix in,
|
|||
s_1w_1x4_matrix coeff);
|
||||
|
||||
|
||||
/** @brief Symmetric 3 tap filter with normalization
|
||||
/* @brief Symmetric 3 tap filter with normalization
|
||||
*
|
||||
* @param[in] in 1x3 matrix with pixels
|
||||
* @param[in] coeff 1x2 matrix with coefficients
|
||||
|
@ -646,7 +646,7 @@ fir1x3m_sym_nrm(s_1w_1x3_matrix in,
|
|||
s_1w_1x2_matrix coeff,
|
||||
tvector1w out_shift);
|
||||
|
||||
/** @brief Symmetric 3 tap filter with normalization
|
||||
/* @brief Symmetric 3 tap filter with normalization
|
||||
*
|
||||
* @param[in] in 1x3 matrix with pixels
|
||||
* @param[in] coeff 1x2 matrix with coefficients
|
||||
|
@ -666,7 +666,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w
|
|||
fir1x3m_sym_nrm_approx(s_1w_1x3_matrix in,
|
||||
s_1w_1x2_matrix coeff);
|
||||
|
||||
/** @brief Mean of 1x3 matrix
|
||||
/* @brief Mean of 1x3 matrix
|
||||
*
|
||||
* @param[in] m 1x3 matrix with pixels
|
||||
*
|
||||
|
@ -678,7 +678,7 @@ fir1x3m_sym_nrm_approx(s_1w_1x3_matrix in,
|
|||
STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w mean1x3m(
|
||||
s_1w_1x3_matrix m);
|
||||
|
||||
/** @brief Mean of 3x3 matrix
|
||||
/* @brief Mean of 3x3 matrix
|
||||
*
|
||||
* @param[in] m 3x3 matrix with pixels
|
||||
*
|
||||
|
@ -690,7 +690,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w mean1x3m(
|
|||
STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w mean3x3m(
|
||||
s_1w_3x3_matrix m);
|
||||
|
||||
/** @brief Mean of 1x4 matrix
|
||||
/* @brief Mean of 1x4 matrix
|
||||
*
|
||||
* @param[in] m 1x4 matrix with pixels
|
||||
*
|
||||
|
@ -701,7 +701,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w mean3x3m(
|
|||
STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w mean1x4m(
|
||||
s_1w_1x4_matrix m);
|
||||
|
||||
/** @brief Mean of 4x4 matrix
|
||||
/* @brief Mean of 4x4 matrix
|
||||
*
|
||||
* @param[in] m 4x4 matrix with pixels
|
||||
*
|
||||
|
@ -712,7 +712,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w mean1x4m(
|
|||
STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w mean4x4m(
|
||||
s_1w_4x4_matrix m);
|
||||
|
||||
/** @brief Mean of 2x3 matrix
|
||||
/* @brief Mean of 2x3 matrix
|
||||
*
|
||||
* @param[in] m 2x3 matrix with pixels
|
||||
*
|
||||
|
@ -724,7 +724,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w mean4x4m(
|
|||
STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w mean2x3m(
|
||||
s_1w_2x3_matrix m);
|
||||
|
||||
/** @brief Mean of 1x5 matrix
|
||||
/* @brief Mean of 1x5 matrix
|
||||
*
|
||||
* @param[in] m 1x5 matrix with pixels
|
||||
*
|
||||
|
@ -735,7 +735,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w mean2x3m(
|
|||
*/
|
||||
STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w mean1x5m(s_1w_1x5_matrix m);
|
||||
|
||||
/** @brief Mean of 1x6 matrix
|
||||
/* @brief Mean of 1x6 matrix
|
||||
*
|
||||
* @param[in] m 1x6 matrix with pixels
|
||||
*
|
||||
|
@ -747,7 +747,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w mean1x5m(s_1w_1x5_matrix m);
|
|||
STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w mean1x6m(
|
||||
s_1w_1x6_matrix m);
|
||||
|
||||
/** @brief Mean of 5x5 matrix
|
||||
/* @brief Mean of 5x5 matrix
|
||||
*
|
||||
* @param[in] m 5x5 matrix with pixels
|
||||
*
|
||||
|
@ -759,7 +759,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w mean1x6m(
|
|||
STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w mean5x5m(
|
||||
s_1w_5x5_matrix m);
|
||||
|
||||
/** @brief Mean of 6x6 matrix
|
||||
/* @brief Mean of 6x6 matrix
|
||||
*
|
||||
* @param[in] m 6x6 matrix with pixels
|
||||
*
|
||||
|
@ -771,7 +771,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w mean5x5m(
|
|||
STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w mean6x6m(
|
||||
s_1w_6x6_matrix m);
|
||||
|
||||
/** @brief Minimum of 4x4 matrix
|
||||
/* @brief Minimum of 4x4 matrix
|
||||
*
|
||||
* @param[in] m 4x4 matrix with pixels
|
||||
*
|
||||
|
@ -783,7 +783,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w mean6x6m(
|
|||
STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w min4x4m(
|
||||
s_1w_4x4_matrix m);
|
||||
|
||||
/** @brief Maximum of 4x4 matrix
|
||||
/* @brief Maximum of 4x4 matrix
|
||||
*
|
||||
* @param[in] m 4x4 matrix with pixels
|
||||
*
|
||||
|
@ -795,7 +795,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w min4x4m(
|
|||
STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w max4x4m(
|
||||
s_1w_4x4_matrix m);
|
||||
|
||||
/** @brief SAD between two 3x3 matrices
|
||||
/* @brief SAD between two 3x3 matrices
|
||||
*
|
||||
* @param[in] a 3x3 matrix with pixels
|
||||
*
|
||||
|
@ -813,7 +813,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w sad3x3m_precise(
|
|||
s_1w_3x3_matrix a,
|
||||
s_1w_3x3_matrix b);
|
||||
|
||||
/** @brief SAD between two 3x3 matrices
|
||||
/* @brief SAD between two 3x3 matrices
|
||||
*
|
||||
* @param[in] a 3x3 matrix with pixels
|
||||
*
|
||||
|
@ -833,7 +833,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w sad3x3m(
|
|||
s_1w_3x3_matrix a,
|
||||
s_1w_3x3_matrix b);
|
||||
|
||||
/** @brief SAD between two 5x5 matrices
|
||||
/* @brief SAD between two 5x5 matrices
|
||||
*
|
||||
* @param[in] a 5x5 matrix with pixels
|
||||
*
|
||||
|
@ -847,7 +847,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w sad5x5m(
|
|||
s_1w_5x5_matrix a,
|
||||
s_1w_5x5_matrix b);
|
||||
|
||||
/** @brief Absolute gradient between two sets of 1x5 matrices
|
||||
/* @brief Absolute gradient between two sets of 1x5 matrices
|
||||
*
|
||||
* @param[in] m0 first set of 1x5 matrix with pixels
|
||||
* @param[in] m1 second set of 1x5 matrix with pixels
|
||||
|
@ -860,7 +860,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w sad5x5m(
|
|||
STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w
|
||||
absgrad1x5m(s_1w_1x5_matrix m0, s_1w_1x5_matrix m1);
|
||||
|
||||
/** @brief Bi-linear Interpolation optimized(approximate)
|
||||
/* @brief Bi-linear Interpolation optimized(approximate)
|
||||
*
|
||||
* @param[in] a input0
|
||||
* @param[in] b input1
|
||||
|
@ -882,7 +882,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w OP_1w_bilinear_interpol_approx_c(
|
|||
tvector1w b,
|
||||
tscalar1w_weight c);
|
||||
|
||||
/** @brief Bi-linear Interpolation optimized(approximate)
|
||||
/* @brief Bi-linear Interpolation optimized(approximate)
|
||||
*
|
||||
* @param[in] a input0
|
||||
* @param[in] b input1
|
||||
|
@ -904,7 +904,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w OP_1w_bilinear_interpol_approx(
|
|||
tvector1w b,
|
||||
tvector1w_weight c);
|
||||
|
||||
/** @brief Bi-linear Interpolation
|
||||
/* @brief Bi-linear Interpolation
|
||||
*
|
||||
* @param[in] a input0
|
||||
* @param[in] b input1
|
||||
|
@ -925,7 +925,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w OP_1w_bilinear_interpol(
|
|||
tvector1w b,
|
||||
tscalar1w_weight c);
|
||||
|
||||
/** @brief Generic Block Matching Algorithm
|
||||
/* @brief Generic Block Matching Algorithm
|
||||
* @param[in] search_window pointer to input search window of 16x16 pixels
|
||||
* @param[in] ref_block pointer to input reference block of 8x8 pixels, where N<=M
|
||||
* @param[in] output pointer to output sads
|
||||
|
@ -954,9 +954,9 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H int generic_block_matching_algorithm(
|
|||
tscalar1w_4bit_bma_shift shift);
|
||||
|
||||
#ifndef ISP2401
|
||||
/** @brief OP_1w_asp_bma_16_1_32way
|
||||
/* @brief OP_1w_asp_bma_16_1_32way
|
||||
#else
|
||||
/** @brief OP_1w_asp_bma_16_1_32way_nomask
|
||||
/* @brief OP_1w_asp_bma_16_1_32way_nomask
|
||||
#endif
|
||||
*
|
||||
* @param[in] search_area input search window of 16x16 pixels
|
||||
|
@ -984,9 +984,9 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H bma_output_16_1 OP_1w_asp_bma_16_1_32way_nomask(
|
|||
tscalar1w_4bit_bma_shift shift);
|
||||
|
||||
#ifndef ISP2401
|
||||
/** @brief OP_1w_asp_bma_16_2_32way
|
||||
/* @brief OP_1w_asp_bma_16_2_32way
|
||||
#else
|
||||
/** @brief OP_1w_asp_bma_16_2_32way_nomask
|
||||
/* @brief OP_1w_asp_bma_16_2_32way_nomask
|
||||
#endif
|
||||
*
|
||||
* @param[in] search_area input search window of 16x16 pixels
|
||||
|
@ -1011,9 +1011,9 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H bma_output_16_2 OP_1w_asp_bma_16_2_32way_nomask(
|
|||
ref_block_8x8 input_block,
|
||||
tscalar1w_4bit_bma_shift shift);
|
||||
#ifndef ISP2401
|
||||
/** @brief OP_1w_asp_bma_14_1_32way
|
||||
/* @brief OP_1w_asp_bma_14_1_32way
|
||||
#else
|
||||
/** @brief OP_1w_asp_bma_14_1_32way_nomask
|
||||
/* @brief OP_1w_asp_bma_14_1_32way_nomask
|
||||
#endif
|
||||
*
|
||||
* @param[in] search_area input search block of 16x16 pixels with search window of 14x14 pixels
|
||||
|
@ -1041,9 +1041,9 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H bma_output_14_1 OP_1w_asp_bma_14_1_32way_nomask(
|
|||
tscalar1w_4bit_bma_shift shift);
|
||||
|
||||
#ifndef ISP2401
|
||||
/** @brief OP_1w_asp_bma_14_2_32way
|
||||
/* @brief OP_1w_asp_bma_14_2_32way
|
||||
#else
|
||||
/** @brief OP_1w_asp_bma_14_2_32way_nomask
|
||||
/* @brief OP_1w_asp_bma_14_2_32way_nomask
|
||||
#endif
|
||||
*
|
||||
* @param[in] search_area input search block of 16x16 pixels with search window of 14x14 pixels
|
||||
|
@ -1069,7 +1069,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H bma_output_14_2 OP_1w_asp_bma_14_2_32way_nomask(
|
|||
tscalar1w_4bit_bma_shift shift);
|
||||
|
||||
#ifdef ISP2401
|
||||
/** @brief multiplex addition and passing
|
||||
/* @brief multiplex addition and passing
|
||||
*
|
||||
* @param[in] _a first pixel
|
||||
* @param[in] _b second pixel
|
||||
|
@ -1087,7 +1087,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H tvector1w OP_1w_cond_add(
|
|||
|
||||
#endif
|
||||
#ifdef HAS_bfa_unit
|
||||
/** @brief OP_1w_single_bfa_7x7
|
||||
/* @brief OP_1w_single_bfa_7x7
|
||||
*
|
||||
* @param[in] weights - spatial and range weight lut
|
||||
* @param[in] threshold - threshold plane, for range weight scaling
|
||||
|
@ -1115,7 +1115,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H bfa_7x7_output OP_1w_single_bfa_7x7(
|
|||
tvector1w central_pix,
|
||||
s_1w_7x7_matrix src_plane);
|
||||
|
||||
/** @brief OP_1w_joint_bfa_7x7
|
||||
/* @brief OP_1w_joint_bfa_7x7
|
||||
*
|
||||
* @param[in] weights - spatial and range weight lut
|
||||
* @param[in] threshold0 - 1st threshold plane, for range weight scaling
|
||||
|
@ -1149,7 +1149,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H bfa_7x7_output OP_1w_joint_bfa_7x7(
|
|||
tvector1w central_pix1,
|
||||
s_1w_7x7_matrix src1_plane);
|
||||
|
||||
/** @brief bbb_bfa_gen_spatial_weight_lut
|
||||
/* @brief bbb_bfa_gen_spatial_weight_lut
|
||||
*
|
||||
* @param[in] in - 7x7 matrix of spatial weights
|
||||
* @param[in] out - generated LUT
|
||||
|
@ -1163,7 +1163,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H void bbb_bfa_gen_spatial_weight_lut(
|
|||
s_1w_7x7_matrix in,
|
||||
tvector1w out[BFA_MAX_KWAY]);
|
||||
|
||||
/** @brief bbb_bfa_gen_range_weight_lut
|
||||
/* @brief bbb_bfa_gen_range_weight_lut
|
||||
*
|
||||
* @param[in] in - input range weight,
|
||||
* @param[in] out - generated LUT
|
||||
|
@ -1184,7 +1184,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H void bbb_bfa_gen_range_weight_lut(
|
|||
#endif
|
||||
|
||||
#ifdef ISP2401
|
||||
/** @brief OP_1w_imax32
|
||||
/* @brief OP_1w_imax32
|
||||
*
|
||||
* @param[in] src - structure that holds an array of 32 elements.
|
||||
*
|
||||
|
@ -1195,7 +1195,7 @@ STORAGE_CLASS_REF_VECTOR_FUNC_H void bbb_bfa_gen_range_weight_lut(
|
|||
STORAGE_CLASS_REF_VECTOR_FUNC_H int OP_1w_imax32(
|
||||
imax32_ref_in_vector src);
|
||||
|
||||
/** @brief OP_1w_imaxidx32
|
||||
/* @brief OP_1w_imaxidx32
|
||||
*
|
||||
* @param[in] src - structure that holds a vector of elements.
|
||||
*
|
||||
|
|
|
@ -168,7 +168,7 @@ static inline unsigned int round_half_down_mul(unsigned int a, unsigned int b)
|
|||
}
|
||||
#endif
|
||||
|
||||
/** @brief Next Power of Two
|
||||
/* @brief Next Power of Two
|
||||
*
|
||||
* @param[in] unsigned number
|
||||
*
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
*/
|
||||
|
||||
|
||||
/** @brief Copy from src_buf to dest_buf.
|
||||
/* @brief Copy from src_buf to dest_buf.
|
||||
*
|
||||
* @param[out] dest_buf. Destination buffer to copy to
|
||||
* @param[in] dest_size. The size of the destination buffer in bytes
|
||||
|
@ -53,7 +53,7 @@ static inline int memcpy_s(
|
|||
return 0;
|
||||
}
|
||||
|
||||
/** @brief Get the length of the string, excluding the null terminator
|
||||
/* @brief Get the length of the string, excluding the null terminator
|
||||
*
|
||||
* @param[in] src_str. The source string
|
||||
* @param[in] max_len. Look only for max_len bytes in the string
|
||||
|
@ -78,7 +78,7 @@ static size_t strnlen_s(
|
|||
return ix;
|
||||
}
|
||||
|
||||
/** @brief Copy string from src_str to dest_str
|
||||
/* @brief Copy string from src_str to dest_str
|
||||
*
|
||||
* @param[out] dest_str. Destination buffer to copy to
|
||||
* @param[in] dest_size. The size of the destination buffer in bytes
|
||||
|
@ -120,7 +120,7 @@ static inline int strncpy_s(
|
|||
return 0;
|
||||
}
|
||||
|
||||
/** @brief Copy string from src_str to dest_str
|
||||
/* @brief Copy string from src_str to dest_str
|
||||
*
|
||||
* @param[out] dest_str. Destination buffer to copy to
|
||||
* @param[in] dest_size. The size of the destination buffer in bytes
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
#include <assert_support.h>
|
||||
#include "tag_local.h"
|
||||
|
||||
/**
|
||||
/*
|
||||
* @brief Creates the tag description from the given parameters.
|
||||
* @param[in] num_captures
|
||||
* @param[in] skip
|
||||
|
@ -39,7 +39,7 @@ sh_css_create_tag_descr(int num_captures,
|
|||
tag_descr->exp_id = exp_id;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* @brief Encodes the members of tag description into a 32-bit value.
|
||||
* @param[in] tag Pointer to the tag description
|
||||
* @return (unsigned int) Encoded 32-bit tag-info
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
#ifndef _IA_CSS_H_
|
||||
#define _IA_CSS_H_
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* This file is the starting point of the CSS-API. It includes all CSS-API
|
||||
* header files.
|
||||
*/
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
#ifndef __IA_CSS_3A_H
|
||||
#define __IA_CSS_3A_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* This file contains types used for 3A statistics
|
||||
*/
|
||||
|
||||
|
@ -31,7 +31,7 @@ enum ia_css_3a_tables {
|
|||
IA_CSS_NUM_3A_TABLES
|
||||
};
|
||||
|
||||
/** Structure that holds 3A statistics in the ISP internal
|
||||
/* Structure that holds 3A statistics in the ISP internal
|
||||
* format. Use ia_css_get_3a_statistics() to translate
|
||||
* this to the format used on the host (3A library).
|
||||
* */
|
||||
|
@ -48,13 +48,13 @@ struct ia_css_isp_3a_statistics {
|
|||
struct {
|
||||
ia_css_ptr rgby_tbl;
|
||||
} data_hmem;
|
||||
uint32_t exp_id; /**< exposure id, to match statistics to a frame,
|
||||
uint32_t exp_id; /** exposure id, to match statistics to a frame,
|
||||
see ia_css_event_public.h for more detail. */
|
||||
uint32_t isp_config_id;/**< Unique ID to track which config was actually applied to a particular frame */
|
||||
ia_css_ptr data_ptr; /**< pointer to base of all data */
|
||||
uint32_t size; /**< total size of all data */
|
||||
uint32_t isp_config_id;/** Unique ID to track which config was actually applied to a particular frame */
|
||||
ia_css_ptr data_ptr; /** pointer to base of all data */
|
||||
uint32_t size; /** total size of all data */
|
||||
uint32_t dmem_size;
|
||||
uint32_t vmem_size; /**< both lo and hi have this size */
|
||||
uint32_t vmem_size; /** both lo and hi have this size */
|
||||
uint32_t hmem_size;
|
||||
};
|
||||
#define SIZE_OF_DMEM_STRUCT \
|
||||
|
@ -77,7 +77,7 @@ struct ia_css_isp_3a_statistics {
|
|||
SIZE_OF_IA_CSS_PTR + \
|
||||
4 * sizeof(uint32_t))
|
||||
|
||||
/** Map with host-side pointers to ISP-format statistics.
|
||||
/* Map with host-side pointers to ISP-format statistics.
|
||||
* These pointers can either be copies of ISP data or memory mapped
|
||||
* ISP pointers.
|
||||
* All of the data behind these pointers is allocated contiguously, the
|
||||
|
@ -85,17 +85,17 @@ struct ia_css_isp_3a_statistics {
|
|||
* point into this one block of data.
|
||||
*/
|
||||
struct ia_css_isp_3a_statistics_map {
|
||||
void *data_ptr; /**< Pointer to start of memory */
|
||||
void *data_ptr; /** Pointer to start of memory */
|
||||
struct ia_css_3a_output *dmem_stats;
|
||||
uint16_t *vmem_stats_hi;
|
||||
uint16_t *vmem_stats_lo;
|
||||
struct ia_css_bh_table *hmem_stats;
|
||||
uint32_t size; /**< total size in bytes of data_ptr */
|
||||
uint32_t data_allocated; /**< indicate whether data_ptr
|
||||
uint32_t size; /** total size in bytes of data_ptr */
|
||||
uint32_t data_allocated; /** indicate whether data_ptr
|
||||
was allocated or not. */
|
||||
};
|
||||
|
||||
/** @brief Copy and translate 3A statistics from an ISP buffer to a host buffer
|
||||
/* @brief Copy and translate 3A statistics from an ISP buffer to a host buffer
|
||||
* @param[out] host_stats Host buffer.
|
||||
* @param[in] isp_stats ISP buffer.
|
||||
* @return error value if temporary memory cannot be allocated
|
||||
|
@ -109,7 +109,7 @@ enum ia_css_err
|
|||
ia_css_get_3a_statistics(struct ia_css_3a_statistics *host_stats,
|
||||
const struct ia_css_isp_3a_statistics *isp_stats);
|
||||
|
||||
/** @brief Translate 3A statistics from ISP format to host format.
|
||||
/* @brief Translate 3A statistics from ISP format to host format.
|
||||
* @param[out] host_stats host-format statistics
|
||||
* @param[in] isp_stats ISP-format statistics
|
||||
* @return None
|
||||
|
@ -125,35 +125,35 @@ ia_css_translate_3a_statistics(
|
|||
|
||||
/* Convenience functions for alloc/free of certain datatypes */
|
||||
|
||||
/** @brief Allocate memory for the 3a statistics on the ISP
|
||||
/* @brief Allocate memory for the 3a statistics on the ISP
|
||||
* @param[in] grid The grid.
|
||||
* @return Pointer to the allocated 3a statistics buffer on the ISP
|
||||
*/
|
||||
struct ia_css_isp_3a_statistics *
|
||||
ia_css_isp_3a_statistics_allocate(const struct ia_css_3a_grid_info *grid);
|
||||
|
||||
/** @brief Free the 3a statistics memory on the isp
|
||||
/* @brief Free the 3a statistics memory on the isp
|
||||
* @param[in] me Pointer to the 3a statistics buffer on the ISP.
|
||||
* @return None
|
||||
*/
|
||||
void
|
||||
ia_css_isp_3a_statistics_free(struct ia_css_isp_3a_statistics *me);
|
||||
|
||||
/** @brief Allocate memory for the 3a statistics on the host
|
||||
/* @brief Allocate memory for the 3a statistics on the host
|
||||
* @param[in] grid The grid.
|
||||
* @return Pointer to the allocated 3a statistics buffer on the host
|
||||
*/
|
||||
struct ia_css_3a_statistics *
|
||||
ia_css_3a_statistics_allocate(const struct ia_css_3a_grid_info *grid);
|
||||
|
||||
/** @brief Free the 3a statistics memory on the host
|
||||
/* @brief Free the 3a statistics memory on the host
|
||||
* @param[in] me Pointer to the 3a statistics buffer on the host.
|
||||
* @return None
|
||||
*/
|
||||
void
|
||||
ia_css_3a_statistics_free(struct ia_css_3a_statistics *me);
|
||||
|
||||
/** @brief Allocate a 3a statistics map structure
|
||||
/* @brief Allocate a 3a statistics map structure
|
||||
* @param[in] isp_stats pointer to ISP 3a statistis struct
|
||||
* @param[in] data_ptr host-side pointer to ISP 3a statistics.
|
||||
* @return Pointer to the allocated 3a statistics map
|
||||
|
@ -174,7 +174,7 @@ ia_css_isp_3a_statistics_map_allocate(
|
|||
const struct ia_css_isp_3a_statistics *isp_stats,
|
||||
void *data_ptr);
|
||||
|
||||
/** @brief Free the 3a statistics map
|
||||
/* @brief Free the 3a statistics map
|
||||
* @param[in] me Pointer to the 3a statistics map
|
||||
* @return None
|
||||
*
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
#ifndef _IA_CSS_ACC_TYPES_H
|
||||
#define _IA_CSS_ACC_TYPES_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* This file contains types used for acceleration
|
||||
*/
|
||||
|
||||
|
@ -40,16 +40,16 @@
|
|||
* in the kernel and HAL.
|
||||
*/
|
||||
|
||||
/** Type of acceleration.
|
||||
/* Type of acceleration.
|
||||
*/
|
||||
enum ia_css_acc_type {
|
||||
IA_CSS_ACC_NONE, /**< Normal binary */
|
||||
IA_CSS_ACC_OUTPUT, /**< Accelerator stage on output frame */
|
||||
IA_CSS_ACC_VIEWFINDER, /**< Accelerator stage on viewfinder frame */
|
||||
IA_CSS_ACC_STANDALONE, /**< Stand-alone acceleration */
|
||||
IA_CSS_ACC_NONE, /** Normal binary */
|
||||
IA_CSS_ACC_OUTPUT, /** Accelerator stage on output frame */
|
||||
IA_CSS_ACC_VIEWFINDER, /** Accelerator stage on viewfinder frame */
|
||||
IA_CSS_ACC_STANDALONE, /** Stand-alone acceleration */
|
||||
};
|
||||
|
||||
/** Cells types
|
||||
/* Cells types
|
||||
*/
|
||||
enum ia_css_cell_type {
|
||||
IA_CSS_SP0 = 0,
|
||||
|
@ -58,45 +58,45 @@ enum ia_css_cell_type {
|
|||
MAX_NUM_OF_CELLS
|
||||
};
|
||||
|
||||
/** Firmware types.
|
||||
/* Firmware types.
|
||||
*/
|
||||
enum ia_css_fw_type {
|
||||
ia_css_sp_firmware, /**< Firmware for the SP */
|
||||
ia_css_isp_firmware, /**< Firmware for the ISP */
|
||||
ia_css_bootloader_firmware, /**< Firmware for the BootLoader */
|
||||
ia_css_acc_firmware /**< Firmware for accelrations */
|
||||
ia_css_sp_firmware, /** Firmware for the SP */
|
||||
ia_css_isp_firmware, /** Firmware for the ISP */
|
||||
ia_css_bootloader_firmware, /** Firmware for the BootLoader */
|
||||
ia_css_acc_firmware /** Firmware for accelrations */
|
||||
};
|
||||
|
||||
struct ia_css_blob_descr;
|
||||
|
||||
/** Blob descriptor.
|
||||
/* Blob descriptor.
|
||||
* This structure describes an SP or ISP blob.
|
||||
* It describes the test, data and bss sections as well as position in a
|
||||
* firmware file.
|
||||
* For convenience, it contains dynamic data after loading.
|
||||
*/
|
||||
struct ia_css_blob_info {
|
||||
/**< Static blob data */
|
||||
uint32_t offset; /**< Blob offset in fw file */
|
||||
struct ia_css_isp_param_memory_offsets memory_offsets; /**< offset wrt hdr in bytes */
|
||||
uint32_t prog_name_offset; /**< offset wrt hdr in bytes */
|
||||
uint32_t size; /**< Size of blob */
|
||||
uint32_t padding_size; /**< total cummulative of bytes added due to section alignment */
|
||||
uint32_t icache_source; /**< Position of icache in blob */
|
||||
uint32_t icache_size; /**< Size of icache section */
|
||||
uint32_t icache_padding;/**< bytes added due to icache section alignment */
|
||||
uint32_t text_source; /**< Position of text in blob */
|
||||
uint32_t text_size; /**< Size of text section */
|
||||
uint32_t text_padding; /**< bytes added due to text section alignment */
|
||||
uint32_t data_source; /**< Position of data in blob */
|
||||
uint32_t data_target; /**< Start of data in SP dmem */
|
||||
uint32_t data_size; /**< Size of text section */
|
||||
uint32_t data_padding; /**< bytes added due to data section alignment */
|
||||
uint32_t bss_target; /**< Start position of bss in SP dmem */
|
||||
uint32_t bss_size; /**< Size of bss section */
|
||||
/**< Dynamic data filled by loader */
|
||||
CSS_ALIGN(const void *code, 8); /**< Code section absolute pointer within fw, code = icache + text */
|
||||
CSS_ALIGN(const void *data, 8); /**< Data section absolute pointer within fw, data = data + bss */
|
||||
/** Static blob data */
|
||||
uint32_t offset; /** Blob offset in fw file */
|
||||
struct ia_css_isp_param_memory_offsets memory_offsets; /** offset wrt hdr in bytes */
|
||||
uint32_t prog_name_offset; /** offset wrt hdr in bytes */
|
||||
uint32_t size; /** Size of blob */
|
||||
uint32_t padding_size; /** total cummulative of bytes added due to section alignment */
|
||||
uint32_t icache_source; /** Position of icache in blob */
|
||||
uint32_t icache_size; /** Size of icache section */
|
||||
uint32_t icache_padding;/** bytes added due to icache section alignment */
|
||||
uint32_t text_source; /** Position of text in blob */
|
||||
uint32_t text_size; /** Size of text section */
|
||||
uint32_t text_padding; /** bytes added due to text section alignment */
|
||||
uint32_t data_source; /** Position of data in blob */
|
||||
uint32_t data_target; /** Start of data in SP dmem */
|
||||
uint32_t data_size; /** Size of text section */
|
||||
uint32_t data_padding; /** bytes added due to data section alignment */
|
||||
uint32_t bss_target; /** Start position of bss in SP dmem */
|
||||
uint32_t bss_size; /** Size of bss section */
|
||||
/** Dynamic data filled by loader */
|
||||
CSS_ALIGN(const void *code, 8); /** Code section absolute pointer within fw, code = icache + text */
|
||||
CSS_ALIGN(const void *data, 8); /** Data section absolute pointer within fw, data = data + bss */
|
||||
};
|
||||
|
||||
struct ia_css_binary_input_info {
|
||||
|
@ -140,9 +140,9 @@ struct ia_css_binary_s3a_info {
|
|||
uint32_t fixed_s3a_deci_log;
|
||||
};
|
||||
|
||||
/** DPC related binary info */
|
||||
/* DPC related binary info */
|
||||
struct ia_css_binary_dpc_info {
|
||||
uint32_t bnr_lite; /**< bnr lite enable flag */
|
||||
uint32_t bnr_lite; /** bnr lite enable flag */
|
||||
};
|
||||
|
||||
struct ia_css_binary_iterator_info {
|
||||
|
@ -193,7 +193,7 @@ struct ia_css_binary_block_info {
|
|||
uint32_t output_block_height;
|
||||
};
|
||||
|
||||
/** Structure describing an ISP binary.
|
||||
/* Structure describing an ISP binary.
|
||||
* It describes the capabilities of a binary, like the maximum resolution,
|
||||
* support features, dma channels, uds features, etc.
|
||||
* This part is to be used by the SP.
|
||||
|
@ -210,7 +210,7 @@ struct ia_css_binary_info {
|
|||
struct ia_css_binary_dvs_info dvs;
|
||||
struct ia_css_binary_vf_dec_info vf_dec;
|
||||
struct ia_css_binary_s3a_info s3a;
|
||||
struct ia_css_binary_dpc_info dpc_bnr; /**< DPC related binary info */
|
||||
struct ia_css_binary_dpc_info dpc_bnr; /** DPC related binary info */
|
||||
struct ia_css_binary_iterator_info iterator;
|
||||
struct ia_css_binary_address_info addresses;
|
||||
struct ia_css_binary_uds_info uds;
|
||||
|
@ -269,7 +269,7 @@ struct ia_css_binary_info {
|
|||
} dma;
|
||||
};
|
||||
|
||||
/** Structure describing an ISP binary.
|
||||
/* Structure describing an ISP binary.
|
||||
* It describes the capabilities of a binary, like the maximum resolution,
|
||||
* support features, dma channels, uds features, etc.
|
||||
*/
|
||||
|
@ -281,8 +281,8 @@ struct ia_css_binary_xinfo {
|
|||
enum ia_css_acc_type type;
|
||||
CSS_ALIGN(int32_t num_output_formats, 8);
|
||||
enum ia_css_frame_format output_formats[IA_CSS_FRAME_FORMAT_NUM];
|
||||
CSS_ALIGN(int32_t num_vf_formats, 8); /**< number of supported vf formats */
|
||||
enum ia_css_frame_format vf_formats[IA_CSS_FRAME_FORMAT_NUM]; /**< types of supported vf formats */
|
||||
CSS_ALIGN(int32_t num_vf_formats, 8); /** number of supported vf formats */
|
||||
enum ia_css_frame_format vf_formats[IA_CSS_FRAME_FORMAT_NUM]; /** types of supported vf formats */
|
||||
uint8_t num_output_pins;
|
||||
ia_css_ptr xmem_addr;
|
||||
CSS_ALIGN(const struct ia_css_blob_descr *blob, 8);
|
||||
|
@ -291,55 +291,55 @@ struct ia_css_binary_xinfo {
|
|||
CSS_ALIGN(struct ia_css_binary_xinfo *next, 8);
|
||||
};
|
||||
|
||||
/** Structure describing the Bootloader (an ISP binary).
|
||||
/* Structure describing the Bootloader (an ISP binary).
|
||||
* It contains several address, either in ddr, isp_dmem or
|
||||
* the entry function in icache.
|
||||
*/
|
||||
struct ia_css_bl_info {
|
||||
uint32_t num_dma_cmds; /**< Number of cmds sent by CSS */
|
||||
uint32_t dma_cmd_list; /**< Dma command list sent by CSS */
|
||||
uint32_t sw_state; /**< Polled from css */
|
||||
uint32_t num_dma_cmds; /** Number of cmds sent by CSS */
|
||||
uint32_t dma_cmd_list; /** Dma command list sent by CSS */
|
||||
uint32_t sw_state; /** Polled from css */
|
||||
/* Entry functions */
|
||||
uint32_t bl_entry; /**< The SP entry function */
|
||||
uint32_t bl_entry; /** The SP entry function */
|
||||
};
|
||||
|
||||
/** Structure describing the SP binary.
|
||||
/* Structure describing the SP binary.
|
||||
* It contains several address, either in ddr, sp_dmem or
|
||||
* the entry function in pmem.
|
||||
*/
|
||||
struct ia_css_sp_info {
|
||||
uint32_t init_dmem_data; /**< data sect config, stored to dmem */
|
||||
uint32_t per_frame_data; /**< Per frame data, stored to dmem */
|
||||
uint32_t group; /**< Per pipeline data, loaded by dma */
|
||||
uint32_t output; /**< SP output data, loaded by dmem */
|
||||
uint32_t host_sp_queue; /**< Host <-> SP queues */
|
||||
uint32_t host_sp_com;/**< Host <-> SP commands */
|
||||
uint32_t isp_started; /**< Polled from sensor thread, csim only */
|
||||
uint32_t sw_state; /**< Polled from css */
|
||||
uint32_t host_sp_queues_initialized; /**< Polled from the SP */
|
||||
uint32_t sleep_mode; /**< different mode to halt SP */
|
||||
uint32_t invalidate_tlb; /**< inform SP to invalidate mmu TLB */
|
||||
uint32_t init_dmem_data; /** data sect config, stored to dmem */
|
||||
uint32_t per_frame_data; /** Per frame data, stored to dmem */
|
||||
uint32_t group; /** Per pipeline data, loaded by dma */
|
||||
uint32_t output; /** SP output data, loaded by dmem */
|
||||
uint32_t host_sp_queue; /** Host <-> SP queues */
|
||||
uint32_t host_sp_com;/** Host <-> SP commands */
|
||||
uint32_t isp_started; /** Polled from sensor thread, csim only */
|
||||
uint32_t sw_state; /** Polled from css */
|
||||
uint32_t host_sp_queues_initialized; /** Polled from the SP */
|
||||
uint32_t sleep_mode; /** different mode to halt SP */
|
||||
uint32_t invalidate_tlb; /** inform SP to invalidate mmu TLB */
|
||||
#ifndef ISP2401
|
||||
uint32_t stop_copy_preview; /**< suspend copy and preview pipe when capture */
|
||||
uint32_t stop_copy_preview; /** suspend copy and preview pipe when capture */
|
||||
#endif
|
||||
uint32_t debug_buffer_ddr_address; /**< inform SP the address
|
||||
uint32_t debug_buffer_ddr_address; /** inform SP the address
|
||||
of DDR debug queue */
|
||||
uint32_t perf_counter_input_system_error; /**< input system perf
|
||||
uint32_t perf_counter_input_system_error; /** input system perf
|
||||
counter array */
|
||||
#ifdef HAS_WATCHDOG_SP_THREAD_DEBUG
|
||||
uint32_t debug_wait; /**< thread/pipe post mortem debug */
|
||||
uint32_t debug_stage; /**< thread/pipe post mortem debug */
|
||||
uint32_t debug_stripe; /**< thread/pipe post mortem debug */
|
||||
uint32_t debug_wait; /** thread/pipe post mortem debug */
|
||||
uint32_t debug_stage; /** thread/pipe post mortem debug */
|
||||
uint32_t debug_stripe; /** thread/pipe post mortem debug */
|
||||
#endif
|
||||
uint32_t threads_stack; /**< sp thread's stack pointers */
|
||||
uint32_t threads_stack_size; /**< sp thread's stack sizes */
|
||||
uint32_t curr_binary_id; /**< current binary id */
|
||||
uint32_t raw_copy_line_count; /**< raw copy line counter */
|
||||
uint32_t ddr_parameter_address; /**< acc param ddrptr, sp dmem */
|
||||
uint32_t ddr_parameter_size; /**< acc param size, sp dmem */
|
||||
uint32_t threads_stack; /** sp thread's stack pointers */
|
||||
uint32_t threads_stack_size; /** sp thread's stack sizes */
|
||||
uint32_t curr_binary_id; /** current binary id */
|
||||
uint32_t raw_copy_line_count; /** raw copy line counter */
|
||||
uint32_t ddr_parameter_address; /** acc param ddrptr, sp dmem */
|
||||
uint32_t ddr_parameter_size; /** acc param size, sp dmem */
|
||||
/* Entry functions */
|
||||
uint32_t sp_entry; /**< The SP entry function */
|
||||
uint32_t tagger_frames_addr; /**< Base address of tagger state */
|
||||
uint32_t sp_entry; /** The SP entry function */
|
||||
uint32_t tagger_frames_addr; /** Base address of tagger state */
|
||||
};
|
||||
|
||||
/* The following #if is there because this header file is also included
|
||||
|
@ -348,37 +348,37 @@ struct ia_css_sp_info {
|
|||
More permanent solution will be to refactor this include.
|
||||
*/
|
||||
#if !defined(__ISP)
|
||||
/** Accelerator firmware information.
|
||||
/* Accelerator firmware information.
|
||||
*/
|
||||
struct ia_css_acc_info {
|
||||
uint32_t per_frame_data; /**< Dummy for now */
|
||||
uint32_t per_frame_data; /** Dummy for now */
|
||||
};
|
||||
|
||||
/** Firmware information.
|
||||
/* Firmware information.
|
||||
*/
|
||||
union ia_css_fw_union {
|
||||
struct ia_css_binary_xinfo isp; /**< ISP info */
|
||||
struct ia_css_sp_info sp; /**< SP info */
|
||||
struct ia_css_bl_info bl; /**< Bootloader info */
|
||||
struct ia_css_acc_info acc; /**< Accelerator info */
|
||||
struct ia_css_binary_xinfo isp; /** ISP info */
|
||||
struct ia_css_sp_info sp; /** SP info */
|
||||
struct ia_css_bl_info bl; /** Bootloader info */
|
||||
struct ia_css_acc_info acc; /** Accelerator info */
|
||||
};
|
||||
|
||||
/** Firmware information.
|
||||
/* Firmware information.
|
||||
*/
|
||||
struct ia_css_fw_info {
|
||||
size_t header_size; /**< size of fw header */
|
||||
size_t header_size; /** size of fw header */
|
||||
CSS_ALIGN(uint32_t type, 8);
|
||||
union ia_css_fw_union info; /**< Binary info */
|
||||
struct ia_css_blob_info blob; /**< Blob info */
|
||||
union ia_css_fw_union info; /** Binary info */
|
||||
struct ia_css_blob_info blob; /** Blob info */
|
||||
/* Dynamic part */
|
||||
struct ia_css_fw_info *next;
|
||||
CSS_ALIGN(uint32_t loaded, 8); /**< Firmware has been loaded */
|
||||
CSS_ALIGN(const uint8_t *isp_code, 8); /**< ISP pointer to code */
|
||||
/**< Firmware handle between user space and kernel */
|
||||
CSS_ALIGN(uint32_t loaded, 8); /** Firmware has been loaded */
|
||||
CSS_ALIGN(const uint8_t *isp_code, 8); /** ISP pointer to code */
|
||||
/** Firmware handle between user space and kernel */
|
||||
CSS_ALIGN(uint32_t handle, 8);
|
||||
/**< Sections to copy from/to ISP */
|
||||
/** Sections to copy from/to ISP */
|
||||
struct ia_css_isp_param_css_segments mem_initializers;
|
||||
/**< Initializer for local ISP memories */
|
||||
/** Initializer for local ISP memories */
|
||||
};
|
||||
|
||||
struct ia_css_blob_descr {
|
||||
|
@ -390,39 +390,39 @@ struct ia_css_blob_descr {
|
|||
|
||||
struct ia_css_acc_fw;
|
||||
|
||||
/** Structure describing the SP binary of a stand-alone accelerator.
|
||||
/* Structure describing the SP binary of a stand-alone accelerator.
|
||||
*/
|
||||
struct ia_css_acc_sp {
|
||||
void (*init)(struct ia_css_acc_fw *); /**< init for crun */
|
||||
uint32_t sp_prog_name_offset; /**< program name offset wrt hdr in bytes */
|
||||
uint32_t sp_blob_offset; /**< blob offset wrt hdr in bytes */
|
||||
void *entry; /**< Address of sp entry point */
|
||||
uint32_t *css_abort; /**< SP dmem abort flag */
|
||||
void *isp_code; /**< SP dmem address holding xmem
|
||||
void (*init)(struct ia_css_acc_fw *); /** init for crun */
|
||||
uint32_t sp_prog_name_offset; /** program name offset wrt hdr in bytes */
|
||||
uint32_t sp_blob_offset; /** blob offset wrt hdr in bytes */
|
||||
void *entry; /** Address of sp entry point */
|
||||
uint32_t *css_abort; /** SP dmem abort flag */
|
||||
void *isp_code; /** SP dmem address holding xmem
|
||||
address of isp code */
|
||||
struct ia_css_fw_info fw; /**< SP fw descriptor */
|
||||
const uint8_t *code; /**< ISP pointer of allocated SP code */
|
||||
struct ia_css_fw_info fw; /** SP fw descriptor */
|
||||
const uint8_t *code; /** ISP pointer of allocated SP code */
|
||||
};
|
||||
|
||||
/** Acceleration firmware descriptor.
|
||||
/* Acceleration firmware descriptor.
|
||||
* This descriptor descibes either SP code (stand-alone), or
|
||||
* ISP code (a separate pipeline stage).
|
||||
*/
|
||||
struct ia_css_acc_fw_hdr {
|
||||
enum ia_css_acc_type type; /**< Type of accelerator */
|
||||
uint32_t isp_prog_name_offset; /**< program name offset wrt
|
||||
enum ia_css_acc_type type; /** Type of accelerator */
|
||||
uint32_t isp_prog_name_offset; /** program name offset wrt
|
||||
header in bytes */
|
||||
uint32_t isp_blob_offset; /**< blob offset wrt header
|
||||
uint32_t isp_blob_offset; /** blob offset wrt header
|
||||
in bytes */
|
||||
uint32_t isp_size; /**< Size of isp blob */
|
||||
const uint8_t *isp_code; /**< ISP pointer to code */
|
||||
struct ia_css_acc_sp sp; /**< Standalone sp code */
|
||||
/**< Firmware handle between user space and kernel */
|
||||
uint32_t isp_size; /** Size of isp blob */
|
||||
const uint8_t *isp_code; /** ISP pointer to code */
|
||||
struct ia_css_acc_sp sp; /** Standalone sp code */
|
||||
/** Firmware handle between user space and kernel */
|
||||
uint32_t handle;
|
||||
struct ia_css_data parameters; /**< Current SP parameters */
|
||||
struct ia_css_data parameters; /** Current SP parameters */
|
||||
};
|
||||
|
||||
/** Firmware structure.
|
||||
/* Firmware structure.
|
||||
* This contains the header and actual blobs.
|
||||
* For standalone, it contains SP and ISP blob.
|
||||
* For a pipeline stage accelerator, it contains ISP code only.
|
||||
|
@ -430,7 +430,7 @@ struct ia_css_acc_fw_hdr {
|
|||
* header and computed using the access macros below.
|
||||
*/
|
||||
struct ia_css_acc_fw {
|
||||
struct ia_css_acc_fw_hdr header; /**< firmware header */
|
||||
struct ia_css_acc_fw_hdr header; /** firmware header */
|
||||
/*
|
||||
int8_t isp_progname[]; **< ISP program name
|
||||
int8_t sp_progname[]; **< SP program name, stand-alone only
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
#ifndef __IA_CSS_BUFFER_H
|
||||
#define __IA_CSS_BUFFER_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* This file contains datastructures and types for buffers used in CSS
|
||||
*/
|
||||
|
||||
|
@ -23,7 +23,7 @@
|
|||
#include "ia_css_types.h"
|
||||
#include "ia_css_timer.h"
|
||||
|
||||
/** Enumeration of buffer types. Buffers can be queued and de-queued
|
||||
/* Enumeration of buffer types. Buffers can be queued and de-queued
|
||||
* to hand them over between IA and ISP.
|
||||
*/
|
||||
enum ia_css_buffer_type {
|
||||
|
@ -48,28 +48,28 @@ enum ia_css_buffer_type {
|
|||
|
||||
/* Driver API is not SP/ISP visible, 64 bit types not supported on hivecc */
|
||||
#if !defined(__ISP)
|
||||
/** Buffer structure. This is a container structure that enables content
|
||||
/* Buffer structure. This is a container structure that enables content
|
||||
* independent buffer queues and access functions.
|
||||
*/
|
||||
struct ia_css_buffer {
|
||||
enum ia_css_buffer_type type; /**< Buffer type. */
|
||||
enum ia_css_buffer_type type; /** Buffer type. */
|
||||
unsigned int exp_id;
|
||||
/**< exposure id for this buffer; 0 = not available
|
||||
/** exposure id for this buffer; 0 = not available
|
||||
see ia_css_event_public.h for more detail. */
|
||||
union {
|
||||
struct ia_css_isp_3a_statistics *stats_3a; /**< 3A statistics & optionally RGBY statistics. */
|
||||
struct ia_css_isp_dvs_statistics *stats_dvs; /**< DVS statistics. */
|
||||
struct ia_css_isp_skc_dvs_statistics *stats_skc_dvs; /**< SKC DVS statistics. */
|
||||
struct ia_css_frame *frame; /**< Frame buffer. */
|
||||
struct ia_css_acc_param *custom_data; /**< Custom buffer. */
|
||||
struct ia_css_metadata *metadata; /**< Sensor metadata. */
|
||||
} data; /**< Buffer data pointer. */
|
||||
uint64_t driver_cookie; /**< cookie for the driver */
|
||||
struct ia_css_time_meas timing_data; /**< timing data (readings from the timer) */
|
||||
struct ia_css_clock_tick isys_eof_clock_tick; /**< ISYS's end of frame timer tick*/
|
||||
struct ia_css_isp_3a_statistics *stats_3a; /** 3A statistics & optionally RGBY statistics. */
|
||||
struct ia_css_isp_dvs_statistics *stats_dvs; /** DVS statistics. */
|
||||
struct ia_css_isp_skc_dvs_statistics *stats_skc_dvs; /** SKC DVS statistics. */
|
||||
struct ia_css_frame *frame; /** Frame buffer. */
|
||||
struct ia_css_acc_param *custom_data; /** Custom buffer. */
|
||||
struct ia_css_metadata *metadata; /** Sensor metadata. */
|
||||
} data; /** Buffer data pointer. */
|
||||
uint64_t driver_cookie; /** cookie for the driver */
|
||||
struct ia_css_time_meas timing_data; /** timing data (readings from the timer) */
|
||||
struct ia_css_clock_tick isys_eof_clock_tick; /** ISYS's end of frame timer tick*/
|
||||
};
|
||||
|
||||
/** @brief Dequeue param buffers from sp2host_queue
|
||||
/* @brief Dequeue param buffers from sp2host_queue
|
||||
*
|
||||
* @return None
|
||||
*
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
#ifndef __IA_CSS_CONTROL_H
|
||||
#define __IA_CSS_CONTROL_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* This file contains functionality for starting and controlling CSS
|
||||
*/
|
||||
|
||||
|
@ -24,7 +24,7 @@
|
|||
#include <ia_css_firmware.h>
|
||||
#include <ia_css_irq.h>
|
||||
|
||||
/** @brief Initialize the CSS API.
|
||||
/* @brief Initialize the CSS API.
|
||||
* @param[in] env Environment, provides functions to access the
|
||||
* environment in which the CSS code runs. This is
|
||||
* used for host side memory access and message
|
||||
|
@ -51,7 +51,7 @@ enum ia_css_err ia_css_init(
|
|||
uint32_t l1_base,
|
||||
enum ia_css_irq_type irq_type);
|
||||
|
||||
/** @brief Un-initialize the CSS API.
|
||||
/* @brief Un-initialize the CSS API.
|
||||
* @return None
|
||||
*
|
||||
* This function deallocates all memory that has been allocated by the CSS API
|
||||
|
@ -66,7 +66,7 @@ enum ia_css_err ia_css_init(
|
|||
void
|
||||
ia_css_uninit(void);
|
||||
|
||||
/** @brief Suspend CSS API for power down
|
||||
/* @brief Suspend CSS API for power down
|
||||
* @return success or faulure code
|
||||
*
|
||||
* suspend shuts down the system by:
|
||||
|
@ -80,7 +80,7 @@ ia_css_uninit(void);
|
|||
enum ia_css_err
|
||||
ia_css_suspend(void);
|
||||
|
||||
/** @brief Resume CSS API from power down
|
||||
/* @brief Resume CSS API from power down
|
||||
* @return success or failure code
|
||||
*
|
||||
* After a power cycle, this function will bring the CSS API back into
|
||||
|
@ -91,7 +91,7 @@ ia_css_suspend(void);
|
|||
enum ia_css_err
|
||||
ia_css_resume(void);
|
||||
|
||||
/** @brief Enable use of a separate queue for ISYS events.
|
||||
/* @brief Enable use of a separate queue for ISYS events.
|
||||
*
|
||||
* @param[in] enable: enable or disable use of separate ISYS event queues.
|
||||
* @return error if called when SP is running.
|
||||
|
@ -105,7 +105,7 @@ ia_css_resume(void);
|
|||
enum ia_css_err
|
||||
ia_css_enable_isys_event_queue(bool enable);
|
||||
|
||||
/** @brief Test whether the ISP has started.
|
||||
/* @brief Test whether the ISP has started.
|
||||
*
|
||||
* @return Boolean flag true if the ISP has started or false otherwise.
|
||||
*
|
||||
|
@ -114,7 +114,7 @@ ia_css_enable_isys_event_queue(bool enable);
|
|||
bool
|
||||
ia_css_isp_has_started(void);
|
||||
|
||||
/** @brief Test whether the SP has initialized.
|
||||
/* @brief Test whether the SP has initialized.
|
||||
*
|
||||
* @return Boolean flag true if the SP has initialized or false otherwise.
|
||||
*
|
||||
|
@ -123,7 +123,7 @@ ia_css_isp_has_started(void);
|
|||
bool
|
||||
ia_css_sp_has_initialized(void);
|
||||
|
||||
/** @brief Test whether the SP has terminated.
|
||||
/* @brief Test whether the SP has terminated.
|
||||
*
|
||||
* @return Boolean flag true if the SP has terminated or false otherwise.
|
||||
*
|
||||
|
@ -132,7 +132,7 @@ ia_css_sp_has_initialized(void);
|
|||
bool
|
||||
ia_css_sp_has_terminated(void);
|
||||
|
||||
/** @brief start SP hardware
|
||||
/* @brief start SP hardware
|
||||
*
|
||||
* @return IA_CSS_SUCCESS or error code upon error.
|
||||
*
|
||||
|
@ -144,7 +144,7 @@ enum ia_css_err
|
|||
ia_css_start_sp(void);
|
||||
|
||||
|
||||
/** @brief stop SP hardware
|
||||
/* @brief stop SP hardware
|
||||
*
|
||||
* @return IA_CSS_SUCCESS or error code upon error.
|
||||
*
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
#ifndef _IA_CSS_DEVICE_ACCESS_H
|
||||
#define _IA_CSS_DEVICE_ACCESS_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* File containing internal functions for the CSS-API to access the CSS device.
|
||||
*/
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
#ifndef __IA_CSS_DVS_H
|
||||
#define __IA_CSS_DVS_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* This file contains types for DVS statistics
|
||||
*/
|
||||
|
||||
|
@ -31,7 +31,7 @@ enum dvs_statistics_type {
|
|||
};
|
||||
|
||||
|
||||
/** Structure that holds DVS statistics in the ISP internal
|
||||
/* Structure that holds DVS statistics in the ISP internal
|
||||
* format. Use ia_css_get_dvs_statistics() to translate
|
||||
* this to the format used on the host (DVS engine).
|
||||
* */
|
||||
|
@ -40,12 +40,12 @@ struct ia_css_isp_dvs_statistics {
|
|||
ia_css_ptr ver_proj;
|
||||
uint32_t hor_size;
|
||||
uint32_t ver_size;
|
||||
uint32_t exp_id; /**< see ia_css_event_public.h for more detail */
|
||||
uint32_t exp_id; /** see ia_css_event_public.h for more detail */
|
||||
ia_css_ptr data_ptr; /* base pointer containing all memory */
|
||||
uint32_t size; /* size of allocated memory in data_ptr */
|
||||
};
|
||||
|
||||
/** Structure that holds SKC DVS statistics in the ISP internal
|
||||
/* Structure that holds SKC DVS statistics in the ISP internal
|
||||
* format. Use ia_css_dvs_statistics_get() to translate this to
|
||||
* the format used on the host.
|
||||
* */
|
||||
|
@ -82,7 +82,7 @@ union ia_css_dvs_statistics_host {
|
|||
struct ia_css_skc_dvs_statistics *p_skc_dvs_statistics_host;
|
||||
};
|
||||
|
||||
/** @brief Copy DVS statistics from an ISP buffer to a host buffer.
|
||||
/* @brief Copy DVS statistics from an ISP buffer to a host buffer.
|
||||
* @param[in] host_stats Host buffer
|
||||
* @param[in] isp_stats ISP buffer
|
||||
* @return error value if temporary memory cannot be allocated
|
||||
|
@ -100,7 +100,7 @@ enum ia_css_err
|
|||
ia_css_get_dvs_statistics(struct ia_css_dvs_statistics *host_stats,
|
||||
const struct ia_css_isp_dvs_statistics *isp_stats);
|
||||
|
||||
/** @brief Translate DVS statistics from ISP format to host format
|
||||
/* @brief Translate DVS statistics from ISP format to host format
|
||||
* @param[in] host_stats Host buffer
|
||||
* @param[in] isp_stats ISP buffer
|
||||
* @return None
|
||||
|
@ -116,7 +116,7 @@ ia_css_translate_dvs_statistics(
|
|||
struct ia_css_dvs_statistics *host_stats,
|
||||
const struct ia_css_isp_dvs_statistics_map *isp_stats);
|
||||
|
||||
/** @brief Copy DVS 2.0 statistics from an ISP buffer to a host buffer.
|
||||
/* @brief Copy DVS 2.0 statistics from an ISP buffer to a host buffer.
|
||||
* @param[in] host_stats Host buffer
|
||||
* @param[in] isp_stats ISP buffer
|
||||
* @return error value if temporary memory cannot be allocated
|
||||
|
@ -134,7 +134,7 @@ enum ia_css_err
|
|||
ia_css_get_dvs2_statistics(struct ia_css_dvs2_statistics *host_stats,
|
||||
const struct ia_css_isp_dvs_statistics *isp_stats);
|
||||
|
||||
/** @brief Translate DVS2 statistics from ISP format to host format
|
||||
/* @brief Translate DVS2 statistics from ISP format to host format
|
||||
* @param[in] host_stats Host buffer
|
||||
* @param[in] isp_stats ISP buffer
|
||||
* @return None
|
||||
|
@ -150,7 +150,7 @@ ia_css_translate_dvs2_statistics(
|
|||
struct ia_css_dvs2_statistics *host_stats,
|
||||
const struct ia_css_isp_dvs_statistics_map *isp_stats);
|
||||
|
||||
/** @brief Copy DVS statistics from an ISP buffer to a host buffer.
|
||||
/* @brief Copy DVS statistics from an ISP buffer to a host buffer.
|
||||
* @param[in] type - DVS statistics type
|
||||
* @param[in] host_stats Host buffer
|
||||
* @param[in] isp_stats ISP buffer
|
||||
|
@ -161,105 +161,105 @@ ia_css_dvs_statistics_get(enum dvs_statistics_type type,
|
|||
union ia_css_dvs_statistics_host *host_stats,
|
||||
const union ia_css_dvs_statistics_isp *isp_stats);
|
||||
|
||||
/** @brief Allocate the DVS statistics memory on the ISP
|
||||
/* @brief Allocate the DVS statistics memory on the ISP
|
||||
* @param[in] grid The grid.
|
||||
* @return Pointer to the allocated DVS statistics buffer on the ISP
|
||||
*/
|
||||
struct ia_css_isp_dvs_statistics *
|
||||
ia_css_isp_dvs_statistics_allocate(const struct ia_css_dvs_grid_info *grid);
|
||||
|
||||
/** @brief Free the DVS statistics memory on the ISP
|
||||
/* @brief Free the DVS statistics memory on the ISP
|
||||
* @param[in] me Pointer to the DVS statistics buffer on the ISP.
|
||||
* @return None
|
||||
*/
|
||||
void
|
||||
ia_css_isp_dvs_statistics_free(struct ia_css_isp_dvs_statistics *me);
|
||||
|
||||
/** @brief Allocate the DVS 2.0 statistics memory
|
||||
/* @brief Allocate the DVS 2.0 statistics memory
|
||||
* @param[in] grid The grid.
|
||||
* @return Pointer to the allocated DVS statistics buffer on the ISP
|
||||
*/
|
||||
struct ia_css_isp_dvs_statistics *
|
||||
ia_css_isp_dvs2_statistics_allocate(const struct ia_css_dvs_grid_info *grid);
|
||||
|
||||
/** @brief Free the DVS 2.0 statistics memory
|
||||
/* @brief Free the DVS 2.0 statistics memory
|
||||
* @param[in] me Pointer to the DVS statistics buffer on the ISP.
|
||||
* @return None
|
||||
*/
|
||||
void
|
||||
ia_css_isp_dvs2_statistics_free(struct ia_css_isp_dvs_statistics *me);
|
||||
|
||||
/** @brief Allocate the DVS statistics memory on the host
|
||||
/* @brief Allocate the DVS statistics memory on the host
|
||||
* @param[in] grid The grid.
|
||||
* @return Pointer to the allocated DVS statistics buffer on the host
|
||||
*/
|
||||
struct ia_css_dvs_statistics *
|
||||
ia_css_dvs_statistics_allocate(const struct ia_css_dvs_grid_info *grid);
|
||||
|
||||
/** @brief Free the DVS statistics memory on the host
|
||||
/* @brief Free the DVS statistics memory on the host
|
||||
* @param[in] me Pointer to the DVS statistics buffer on the host.
|
||||
* @return None
|
||||
*/
|
||||
void
|
||||
ia_css_dvs_statistics_free(struct ia_css_dvs_statistics *me);
|
||||
|
||||
/** @brief Allocate the DVS coefficients memory
|
||||
/* @brief Allocate the DVS coefficients memory
|
||||
* @param[in] grid The grid.
|
||||
* @return Pointer to the allocated DVS coefficients buffer
|
||||
*/
|
||||
struct ia_css_dvs_coefficients *
|
||||
ia_css_dvs_coefficients_allocate(const struct ia_css_dvs_grid_info *grid);
|
||||
|
||||
/** @brief Free the DVS coefficients memory
|
||||
/* @brief Free the DVS coefficients memory
|
||||
* @param[in] me Pointer to the DVS coefficients buffer.
|
||||
* @return None
|
||||
*/
|
||||
void
|
||||
ia_css_dvs_coefficients_free(struct ia_css_dvs_coefficients *me);
|
||||
|
||||
/** @brief Allocate the DVS 2.0 statistics memory on the host
|
||||
/* @brief Allocate the DVS 2.0 statistics memory on the host
|
||||
* @param[in] grid The grid.
|
||||
* @return Pointer to the allocated DVS 2.0 statistics buffer on the host
|
||||
*/
|
||||
struct ia_css_dvs2_statistics *
|
||||
ia_css_dvs2_statistics_allocate(const struct ia_css_dvs_grid_info *grid);
|
||||
|
||||
/** @brief Free the DVS 2.0 statistics memory
|
||||
/* @brief Free the DVS 2.0 statistics memory
|
||||
* @param[in] me Pointer to the DVS 2.0 statistics buffer on the host.
|
||||
* @return None
|
||||
*/
|
||||
void
|
||||
ia_css_dvs2_statistics_free(struct ia_css_dvs2_statistics *me);
|
||||
|
||||
/** @brief Allocate the DVS 2.0 coefficients memory
|
||||
/* @brief Allocate the DVS 2.0 coefficients memory
|
||||
* @param[in] grid The grid.
|
||||
* @return Pointer to the allocated DVS 2.0 coefficients buffer
|
||||
*/
|
||||
struct ia_css_dvs2_coefficients *
|
||||
ia_css_dvs2_coefficients_allocate(const struct ia_css_dvs_grid_info *grid);
|
||||
|
||||
/** @brief Free the DVS 2.0 coefficients memory
|
||||
/* @brief Free the DVS 2.0 coefficients memory
|
||||
* @param[in] me Pointer to the DVS 2.0 coefficients buffer.
|
||||
* @return None
|
||||
*/
|
||||
void
|
||||
ia_css_dvs2_coefficients_free(struct ia_css_dvs2_coefficients *me);
|
||||
|
||||
/** @brief Allocate the DVS 2.0 6-axis config memory
|
||||
/* @brief Allocate the DVS 2.0 6-axis config memory
|
||||
* @param[in] stream The stream.
|
||||
* @return Pointer to the allocated DVS 6axis configuration buffer
|
||||
*/
|
||||
struct ia_css_dvs_6axis_config *
|
||||
ia_css_dvs2_6axis_config_allocate(const struct ia_css_stream *stream);
|
||||
|
||||
/** @brief Free the DVS 2.0 6-axis config memory
|
||||
/* @brief Free the DVS 2.0 6-axis config memory
|
||||
* @param[in] dvs_6axis_config Pointer to the DVS 6axis configuration buffer
|
||||
* @return None
|
||||
*/
|
||||
void
|
||||
ia_css_dvs2_6axis_config_free(struct ia_css_dvs_6axis_config *dvs_6axis_config);
|
||||
|
||||
/** @brief Allocate a dvs statistics map structure
|
||||
/* @brief Allocate a dvs statistics map structure
|
||||
* @param[in] isp_stats pointer to ISP dvs statistis struct
|
||||
* @param[in] data_ptr host-side pointer to ISP dvs statistics.
|
||||
* @return Pointer to the allocated dvs statistics map
|
||||
|
@ -280,7 +280,7 @@ ia_css_isp_dvs_statistics_map_allocate(
|
|||
const struct ia_css_isp_dvs_statistics *isp_stats,
|
||||
void *data_ptr);
|
||||
|
||||
/** @brief Free the dvs statistics map
|
||||
/* @brief Free the dvs statistics map
|
||||
* @param[in] me Pointer to the dvs statistics map
|
||||
* @return None
|
||||
*
|
||||
|
@ -291,7 +291,7 @@ ia_css_isp_dvs_statistics_map_allocate(
|
|||
void
|
||||
ia_css_isp_dvs_statistics_map_free(struct ia_css_isp_dvs_statistics_map *me);
|
||||
|
||||
/** @brief Allocate memory for the SKC DVS statistics on the ISP
|
||||
/* @brief Allocate memory for the SKC DVS statistics on the ISP
|
||||
* @return Pointer to the allocated ACC DVS statistics buffer on the ISP
|
||||
*/
|
||||
struct ia_css_isp_skc_dvs_statistics *ia_css_skc_dvs_statistics_allocate(void);
|
||||
|
|
|
@ -20,12 +20,12 @@
|
|||
#include "ia_css_types.h"
|
||||
#include "ia_css_acc_types.h"
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* This file contains prototypes for functions that need to be provided to the
|
||||
* CSS-API host-code by the environment in which the CSS-API code runs.
|
||||
*/
|
||||
|
||||
/** Memory allocation attributes, for use in ia_css_css_mem_env. */
|
||||
/* Memory allocation attributes, for use in ia_css_css_mem_env. */
|
||||
enum ia_css_mem_attr {
|
||||
IA_CSS_MEM_ATTR_CACHED = 1 << 0,
|
||||
IA_CSS_MEM_ATTR_ZEROED = 1 << 1,
|
||||
|
@ -33,62 +33,62 @@ enum ia_css_mem_attr {
|
|||
IA_CSS_MEM_ATTR_CONTIGUOUS = 1 << 3,
|
||||
};
|
||||
|
||||
/** Environment with function pointers for local IA memory allocation.
|
||||
/* Environment with function pointers for local IA memory allocation.
|
||||
* This provides the CSS code with environment specific functionality
|
||||
* for memory allocation of small local buffers such as local data structures.
|
||||
* This is never expected to allocate more than one page of memory (4K bytes).
|
||||
*/
|
||||
struct ia_css_cpu_mem_env {
|
||||
void (*flush)(struct ia_css_acc_fw *fw);
|
||||
/**< Flush function to flush the cache for given accelerator. */
|
||||
/** Flush function to flush the cache for given accelerator. */
|
||||
};
|
||||
|
||||
/** Environment with function pointers to access the CSS hardware. This includes
|
||||
/* Environment with function pointers to access the CSS hardware. This includes
|
||||
* registers and local memories.
|
||||
*/
|
||||
struct ia_css_hw_access_env {
|
||||
void (*store_8)(hrt_address addr, uint8_t data);
|
||||
/**< Store an 8 bit value into an address in the CSS HW address space.
|
||||
/** Store an 8 bit value into an address in the CSS HW address space.
|
||||
The address must be an 8 bit aligned address. */
|
||||
void (*store_16)(hrt_address addr, uint16_t data);
|
||||
/**< Store a 16 bit value into an address in the CSS HW address space.
|
||||
/** Store a 16 bit value into an address in the CSS HW address space.
|
||||
The address must be a 16 bit aligned address. */
|
||||
void (*store_32)(hrt_address addr, uint32_t data);
|
||||
/**< Store a 32 bit value into an address in the CSS HW address space.
|
||||
/** Store a 32 bit value into an address in the CSS HW address space.
|
||||
The address must be a 32 bit aligned address. */
|
||||
uint8_t (*load_8)(hrt_address addr);
|
||||
/**< Load an 8 bit value from an address in the CSS HW address
|
||||
/** Load an 8 bit value from an address in the CSS HW address
|
||||
space. The address must be an 8 bit aligned address. */
|
||||
uint16_t (*load_16)(hrt_address addr);
|
||||
/**< Load a 16 bit value from an address in the CSS HW address
|
||||
/** Load a 16 bit value from an address in the CSS HW address
|
||||
space. The address must be a 16 bit aligned address. */
|
||||
uint32_t (*load_32)(hrt_address addr);
|
||||
/**< Load a 32 bit value from an address in the CSS HW address
|
||||
/** Load a 32 bit value from an address in the CSS HW address
|
||||
space. The address must be a 32 bit aligned address. */
|
||||
void (*store)(hrt_address addr, const void *data, uint32_t bytes);
|
||||
/**< Store a number of bytes into a byte-aligned address in the CSS HW address space. */
|
||||
/** Store a number of bytes into a byte-aligned address in the CSS HW address space. */
|
||||
void (*load)(hrt_address addr, void *data, uint32_t bytes);
|
||||
/**< Load a number of bytes from a byte-aligned address in the CSS HW address space. */
|
||||
/** Load a number of bytes from a byte-aligned address in the CSS HW address space. */
|
||||
};
|
||||
|
||||
/** Environment with function pointers to print error and debug messages.
|
||||
/* Environment with function pointers to print error and debug messages.
|
||||
*/
|
||||
struct ia_css_print_env {
|
||||
int (*debug_print)(const char *fmt, va_list args);
|
||||
/**< Print a debug message. */
|
||||
/** Print a debug message. */
|
||||
int (*error_print)(const char *fmt, va_list args);
|
||||
/**< Print an error message.*/
|
||||
/** Print an error message.*/
|
||||
};
|
||||
|
||||
/** Environment structure. This includes function pointers to access several
|
||||
/* Environment structure. This includes function pointers to access several
|
||||
* features provided by the environment in which the CSS API is used.
|
||||
* This is used to run the camera IP in multiple platforms such as Linux,
|
||||
* Windows and several simulation environments.
|
||||
*/
|
||||
struct ia_css_env {
|
||||
struct ia_css_cpu_mem_env cpu_mem_env; /**< local flush. */
|
||||
struct ia_css_hw_access_env hw_access_env; /**< CSS HW access functions */
|
||||
struct ia_css_print_env print_env; /**< Message printing env. */
|
||||
struct ia_css_cpu_mem_env cpu_mem_env; /** local flush. */
|
||||
struct ia_css_hw_access_env hw_access_env; /** CSS HW access functions */
|
||||
struct ia_css_print_env print_env; /** Message printing env. */
|
||||
};
|
||||
|
||||
#endif /* __IA_CSS_ENV_H */
|
||||
|
|
|
@ -15,12 +15,12 @@
|
|||
#ifndef __IA_CSS_ERR_H
|
||||
#define __IA_CSS_ERR_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* This file contains possible return values for most
|
||||
* functions in the CSS-API.
|
||||
*/
|
||||
|
||||
/** Errors, these values are used as the return value for most
|
||||
/* Errors, these values are used as the return value for most
|
||||
* functions in this API.
|
||||
*/
|
||||
enum ia_css_err {
|
||||
|
@ -41,22 +41,22 @@ enum ia_css_err {
|
|||
IA_CSS_ERR_NOT_SUPPORTED
|
||||
};
|
||||
|
||||
/** FW warnings. This enum contains a value for each warning that
|
||||
/* FW warnings. This enum contains a value for each warning that
|
||||
* the SP FW could indicate potential performance issue
|
||||
*/
|
||||
enum ia_css_fw_warning {
|
||||
IA_CSS_FW_WARNING_NONE,
|
||||
IA_CSS_FW_WARNING_ISYS_QUEUE_FULL, /** < CSS system delayed because of insufficient space in the ISys queue.
|
||||
IA_CSS_FW_WARNING_ISYS_QUEUE_FULL, /* < CSS system delayed because of insufficient space in the ISys queue.
|
||||
This warning can be avoided by de-queing ISYS buffers more timely. */
|
||||
IA_CSS_FW_WARNING_PSYS_QUEUE_FULL, /** < CSS system delayed because of insufficient space in the PSys queue.
|
||||
IA_CSS_FW_WARNING_PSYS_QUEUE_FULL, /* < CSS system delayed because of insufficient space in the PSys queue.
|
||||
This warning can be avoided by de-queing PSYS buffers more timely. */
|
||||
IA_CSS_FW_WARNING_CIRCBUF_ALL_LOCKED, /** < CSS system delayed because of insufficient available buffers.
|
||||
IA_CSS_FW_WARNING_CIRCBUF_ALL_LOCKED, /* < CSS system delayed because of insufficient available buffers.
|
||||
This warning can be avoided by unlocking locked frame-buffers more timely. */
|
||||
IA_CSS_FW_WARNING_EXP_ID_LOCKED, /** < Exposure ID skipped because the frame associated to it was still locked.
|
||||
IA_CSS_FW_WARNING_EXP_ID_LOCKED, /* < Exposure ID skipped because the frame associated to it was still locked.
|
||||
This warning can be avoided by unlocking locked frame-buffers more timely. */
|
||||
IA_CSS_FW_WARNING_TAG_EXP_ID_FAILED, /** < Exposure ID cannot be found on the circular buffer.
|
||||
IA_CSS_FW_WARNING_TAG_EXP_ID_FAILED, /* < Exposure ID cannot be found on the circular buffer.
|
||||
This warning can be avoided by unlocking locked frame-buffers more timely. */
|
||||
IA_CSS_FW_WARNING_FRAME_PARAM_MISMATCH, /** < Frame and param pair mismatched in tagger.
|
||||
IA_CSS_FW_WARNING_FRAME_PARAM_MISMATCH, /* < Frame and param pair mismatched in tagger.
|
||||
This warning can be avoided by providing a param set for each frame. */
|
||||
};
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
#ifndef __IA_CSS_EVENT_PUBLIC_H
|
||||
#define __IA_CSS_EVENT_PUBLIC_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* This file contains CSS-API events functionality
|
||||
*/
|
||||
|
||||
|
@ -24,7 +24,7 @@
|
|||
#include <ia_css_types.h> /* ia_css_pipe */
|
||||
#include <ia_css_timer.h> /* ia_css_timer */
|
||||
|
||||
/** The event type, distinguishes the kind of events that
|
||||
/* The event type, distinguishes the kind of events that
|
||||
* can are generated by the CSS system.
|
||||
*
|
||||
* !!!IMPORTANT!!! KEEP THE FOLLOWING IN SYNC:
|
||||
|
@ -35,43 +35,43 @@
|
|||
*/
|
||||
enum ia_css_event_type {
|
||||
IA_CSS_EVENT_TYPE_OUTPUT_FRAME_DONE = 1 << 0,
|
||||
/**< Output frame ready. */
|
||||
/** Output frame ready. */
|
||||
IA_CSS_EVENT_TYPE_SECOND_OUTPUT_FRAME_DONE = 1 << 1,
|
||||
/**< Second output frame ready. */
|
||||
/** Second output frame ready. */
|
||||
IA_CSS_EVENT_TYPE_VF_OUTPUT_FRAME_DONE = 1 << 2,
|
||||
/**< Viewfinder Output frame ready. */
|
||||
/** Viewfinder Output frame ready. */
|
||||
IA_CSS_EVENT_TYPE_SECOND_VF_OUTPUT_FRAME_DONE = 1 << 3,
|
||||
/**< Second viewfinder Output frame ready. */
|
||||
/** Second viewfinder Output frame ready. */
|
||||
IA_CSS_EVENT_TYPE_3A_STATISTICS_DONE = 1 << 4,
|
||||
/**< Indication that 3A statistics are available. */
|
||||
/** Indication that 3A statistics are available. */
|
||||
IA_CSS_EVENT_TYPE_DIS_STATISTICS_DONE = 1 << 5,
|
||||
/**< Indication that DIS statistics are available. */
|
||||
/** Indication that DIS statistics are available. */
|
||||
IA_CSS_EVENT_TYPE_PIPELINE_DONE = 1 << 6,
|
||||
/**< Pipeline Done event, sent after last pipeline stage. */
|
||||
/** Pipeline Done event, sent after last pipeline stage. */
|
||||
IA_CSS_EVENT_TYPE_FRAME_TAGGED = 1 << 7,
|
||||
/**< Frame tagged. */
|
||||
/** Frame tagged. */
|
||||
IA_CSS_EVENT_TYPE_INPUT_FRAME_DONE = 1 << 8,
|
||||
/**< Input frame ready. */
|
||||
/** Input frame ready. */
|
||||
IA_CSS_EVENT_TYPE_METADATA_DONE = 1 << 9,
|
||||
/**< Metadata ready. */
|
||||
/** Metadata ready. */
|
||||
IA_CSS_EVENT_TYPE_LACE_STATISTICS_DONE = 1 << 10,
|
||||
/**< Indication that LACE statistics are available. */
|
||||
/** Indication that LACE statistics are available. */
|
||||
IA_CSS_EVENT_TYPE_ACC_STAGE_COMPLETE = 1 << 11,
|
||||
/**< Extension stage complete. */
|
||||
/** Extension stage complete. */
|
||||
IA_CSS_EVENT_TYPE_TIMER = 1 << 12,
|
||||
/**< Timer event for measuring the SP side latencies. It contains the
|
||||
/** Timer event for measuring the SP side latencies. It contains the
|
||||
32-bit timer value from the SP */
|
||||
IA_CSS_EVENT_TYPE_PORT_EOF = 1 << 13,
|
||||
/**< End Of Frame event, sent when in buffered sensor mode. */
|
||||
/** End Of Frame event, sent when in buffered sensor mode. */
|
||||
IA_CSS_EVENT_TYPE_FW_WARNING = 1 << 14,
|
||||
/**< Performance warning encounter by FW */
|
||||
/** Performance warning encounter by FW */
|
||||
IA_CSS_EVENT_TYPE_FW_ASSERT = 1 << 15,
|
||||
/**< Assertion hit by FW */
|
||||
/** Assertion hit by FW */
|
||||
};
|
||||
|
||||
#define IA_CSS_EVENT_TYPE_NONE 0
|
||||
|
||||
/** IA_CSS_EVENT_TYPE_ALL is a mask for all pipe related events.
|
||||
/* IA_CSS_EVENT_TYPE_ALL is a mask for all pipe related events.
|
||||
* The other events (such as PORT_EOF) cannot be enabled/disabled
|
||||
* and are hence excluded from this macro.
|
||||
*/
|
||||
|
@ -89,7 +89,7 @@ enum ia_css_event_type {
|
|||
IA_CSS_EVENT_TYPE_LACE_STATISTICS_DONE | \
|
||||
IA_CSS_EVENT_TYPE_ACC_STAGE_COMPLETE)
|
||||
|
||||
/** The event struct, container for the event type and its related values.
|
||||
/* The event struct, container for the event type and its related values.
|
||||
* Depending on the event type, either pipe or port will be filled.
|
||||
* Pipeline related events (like buffer/frame events) will return a valid and filled pipe handle.
|
||||
* For non pipeline related events (but i.e. stream specific, like EOF event), the port will be
|
||||
|
@ -97,14 +97,14 @@ enum ia_css_event_type {
|
|||
*/
|
||||
struct ia_css_event {
|
||||
struct ia_css_pipe *pipe;
|
||||
/**< Pipe handle on which event happened, NULL for non pipe related
|
||||
/** Pipe handle on which event happened, NULL for non pipe related
|
||||
events. */
|
||||
enum ia_css_event_type type;
|
||||
/**< Type of Event, always valid/filled. */
|
||||
/** Type of Event, always valid/filled. */
|
||||
uint8_t port;
|
||||
/**< Port number for EOF event (not valid for other events). */
|
||||
/** Port number for EOF event (not valid for other events). */
|
||||
uint8_t exp_id;
|
||||
/**< Exposure id for EOF/FRAME_TAGGED/FW_WARNING event (not valid for other events)
|
||||
/** Exposure id for EOF/FRAME_TAGGED/FW_WARNING event (not valid for other events)
|
||||
The exposure ID is unique only within a logical stream and it is
|
||||
only generated on systems that have an input system (such as 2400
|
||||
and 2401).
|
||||
|
@ -120,26 +120,26 @@ struct ia_css_event {
|
|||
in the exposure IDs. Therefor applications should not use this
|
||||
to detect frame drops. */
|
||||
uint32_t fw_handle;
|
||||
/**< Firmware Handle for ACC_STAGE_COMPLETE event (not valid for other
|
||||
/** Firmware Handle for ACC_STAGE_COMPLETE event (not valid for other
|
||||
events). */
|
||||
enum ia_css_fw_warning fw_warning;
|
||||
/**< Firmware warning code, only for WARNING events. */
|
||||
/** Firmware warning code, only for WARNING events. */
|
||||
uint8_t fw_assert_module_id;
|
||||
/**< Firmware module id, only for ASSERT events, should be logged by driver. */
|
||||
/** Firmware module id, only for ASSERT events, should be logged by driver. */
|
||||
uint16_t fw_assert_line_no;
|
||||
/**< Firmware line number, only for ASSERT events, should be logged by driver. */
|
||||
/** Firmware line number, only for ASSERT events, should be logged by driver. */
|
||||
clock_value_t timer_data;
|
||||
/**< For storing the full 32-bit of the timer value. Valid only for TIMER
|
||||
/** For storing the full 32-bit of the timer value. Valid only for TIMER
|
||||
event */
|
||||
uint8_t timer_code;
|
||||
/**< For storing the code of the TIMER event. Valid only for
|
||||
/** For storing the code of the TIMER event. Valid only for
|
||||
TIMER event */
|
||||
uint8_t timer_subcode;
|
||||
/**< For storing the subcode of the TIMER event. Valid only
|
||||
/** For storing the subcode of the TIMER event. Valid only
|
||||
for TIMER event */
|
||||
};
|
||||
|
||||
/** @brief Dequeue a PSYS event from the CSS system.
|
||||
/* @brief Dequeue a PSYS event from the CSS system.
|
||||
*
|
||||
* @param[out] event Pointer to the event struct which will be filled by
|
||||
* this function if an event is available.
|
||||
|
@ -156,7 +156,7 @@ struct ia_css_event {
|
|||
enum ia_css_err
|
||||
ia_css_dequeue_psys_event(struct ia_css_event *event);
|
||||
|
||||
/** @brief Dequeue an event from the CSS system.
|
||||
/* @brief Dequeue an event from the CSS system.
|
||||
*
|
||||
* @param[out] event Pointer to the event struct which will be filled by
|
||||
* this function if an event is available.
|
||||
|
@ -171,7 +171,7 @@ ia_css_dequeue_psys_event(struct ia_css_event *event);
|
|||
enum ia_css_err
|
||||
ia_css_dequeue_event(struct ia_css_event *event);
|
||||
|
||||
/** @brief Dequeue an ISYS event from the CSS system.
|
||||
/* @brief Dequeue an ISYS event from the CSS system.
|
||||
*
|
||||
* @param[out] event Pointer to the event struct which will be filled by
|
||||
* this function if an event is available.
|
||||
|
|
|
@ -15,21 +15,21 @@
|
|||
#ifndef __IA_CSS_FIRMWARE_H
|
||||
#define __IA_CSS_FIRMWARE_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* This file contains firmware loading/unloading support functionality
|
||||
*/
|
||||
|
||||
#include "ia_css_err.h"
|
||||
#include "ia_css_env.h"
|
||||
|
||||
/** CSS firmware package structure.
|
||||
/* CSS firmware package structure.
|
||||
*/
|
||||
struct ia_css_fw {
|
||||
void *data; /**< pointer to the firmware data */
|
||||
unsigned int bytes; /**< length in bytes of firmware data */
|
||||
void *data; /** pointer to the firmware data */
|
||||
unsigned int bytes; /** length in bytes of firmware data */
|
||||
};
|
||||
|
||||
/** @brief Loads the firmware
|
||||
/* @brief Loads the firmware
|
||||
* @param[in] env Environment, provides functions to access the
|
||||
* environment in which the CSS code runs. This is
|
||||
* used for host side memory access and message
|
||||
|
@ -51,7 +51,7 @@ enum ia_css_err
|
|||
ia_css_load_firmware(const struct ia_css_env *env,
|
||||
const struct ia_css_fw *fw);
|
||||
|
||||
/** @brief Unloads the firmware
|
||||
/* @brief Unloads the firmware
|
||||
* @return None
|
||||
*
|
||||
* This function unloads the firmware loaded by ia_css_load_firmware.
|
||||
|
@ -61,7 +61,7 @@ ia_css_load_firmware(const struct ia_css_env *env,
|
|||
void
|
||||
ia_css_unload_firmware(void);
|
||||
|
||||
/** @brief Checks firmware version
|
||||
/* @brief Checks firmware version
|
||||
* @param[in] fw Firmware package containing the firmware for all
|
||||
* predefined ISP binaries.
|
||||
* @return Returns true when the firmware version matches with the CSS
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
#ifndef _IA_CSS_FRAC_H
|
||||
#define _IA_CSS_FRAC_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* This file contains typedefs used for fractional numbers
|
||||
*/
|
||||
|
||||
|
@ -25,13 +25,13 @@
|
|||
* NOTE: the 16 bit fixed point types actually occupy 32 bits
|
||||
* to save on extension operations in the ISP code.
|
||||
*/
|
||||
/** Unsigned fixed point value, 0 integer bits, 16 fractional bits */
|
||||
/* Unsigned fixed point value, 0 integer bits, 16 fractional bits */
|
||||
typedef uint32_t ia_css_u0_16;
|
||||
/** Unsigned fixed point value, 5 integer bits, 11 fractional bits */
|
||||
/* Unsigned fixed point value, 5 integer bits, 11 fractional bits */
|
||||
typedef uint32_t ia_css_u5_11;
|
||||
/** Unsigned fixed point value, 8 integer bits, 8 fractional bits */
|
||||
/* Unsigned fixed point value, 8 integer bits, 8 fractional bits */
|
||||
typedef uint32_t ia_css_u8_8;
|
||||
/** Signed fixed point value, 0 integer bits, 15 fractional bits */
|
||||
/* Signed fixed point value, 0 integer bits, 15 fractional bits */
|
||||
typedef int32_t ia_css_s0_15;
|
||||
|
||||
#endif /* _IA_CSS_FRAC_H */
|
||||
|
|
|
@ -15,11 +15,11 @@
|
|||
#ifndef __IA_CSS_FRAME_FORMAT_H
|
||||
#define __IA_CSS_FRAME_FORMAT_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* This file contains information about formats supported in the ISP
|
||||
*/
|
||||
|
||||
/** Frame formats, some of these come from fourcc.org, others are
|
||||
/* Frame formats, some of these come from fourcc.org, others are
|
||||
better explained by video4linux2. The NV11 seems to be described only
|
||||
on MSDN pages, but even those seem to be gone now.
|
||||
Frames can come in many forms, the main categories are RAW, RGB and YUV
|
||||
|
@ -48,45 +48,45 @@
|
|||
- css/bxt_sandbox/isysapi/interface/ia_css_isysapi_fw_types.h
|
||||
*/
|
||||
enum ia_css_frame_format {
|
||||
IA_CSS_FRAME_FORMAT_NV11 = 0, /**< 12 bit YUV 411, Y, UV plane */
|
||||
IA_CSS_FRAME_FORMAT_NV12, /**< 12 bit YUV 420, Y, UV plane */
|
||||
IA_CSS_FRAME_FORMAT_NV12_16, /**< 16 bit YUV 420, Y, UV plane */
|
||||
IA_CSS_FRAME_FORMAT_NV12_TILEY, /**< 12 bit YUV 420, Intel proprietary tiled format, TileY */
|
||||
IA_CSS_FRAME_FORMAT_NV16, /**< 16 bit YUV 422, Y, UV plane */
|
||||
IA_CSS_FRAME_FORMAT_NV21, /**< 12 bit YUV 420, Y, VU plane */
|
||||
IA_CSS_FRAME_FORMAT_NV61, /**< 16 bit YUV 422, Y, VU plane */
|
||||
IA_CSS_FRAME_FORMAT_YV12, /**< 12 bit YUV 420, Y, V, U plane */
|
||||
IA_CSS_FRAME_FORMAT_YV16, /**< 16 bit YUV 422, Y, V, U plane */
|
||||
IA_CSS_FRAME_FORMAT_YUV420, /**< 12 bit YUV 420, Y, U, V plane */
|
||||
IA_CSS_FRAME_FORMAT_YUV420_16, /**< yuv420, 16 bits per subpixel */
|
||||
IA_CSS_FRAME_FORMAT_YUV422, /**< 16 bit YUV 422, Y, U, V plane */
|
||||
IA_CSS_FRAME_FORMAT_YUV422_16, /**< yuv422, 16 bits per subpixel */
|
||||
IA_CSS_FRAME_FORMAT_UYVY, /**< 16 bit YUV 422, UYVY interleaved */
|
||||
IA_CSS_FRAME_FORMAT_YUYV, /**< 16 bit YUV 422, YUYV interleaved */
|
||||
IA_CSS_FRAME_FORMAT_YUV444, /**< 24 bit YUV 444, Y, U, V plane */
|
||||
IA_CSS_FRAME_FORMAT_YUV_LINE, /**< Internal format, 2 y lines followed
|
||||
IA_CSS_FRAME_FORMAT_NV11 = 0, /** 12 bit YUV 411, Y, UV plane */
|
||||
IA_CSS_FRAME_FORMAT_NV12, /** 12 bit YUV 420, Y, UV plane */
|
||||
IA_CSS_FRAME_FORMAT_NV12_16, /** 16 bit YUV 420, Y, UV plane */
|
||||
IA_CSS_FRAME_FORMAT_NV12_TILEY, /** 12 bit YUV 420, Intel proprietary tiled format, TileY */
|
||||
IA_CSS_FRAME_FORMAT_NV16, /** 16 bit YUV 422, Y, UV plane */
|
||||
IA_CSS_FRAME_FORMAT_NV21, /** 12 bit YUV 420, Y, VU plane */
|
||||
IA_CSS_FRAME_FORMAT_NV61, /** 16 bit YUV 422, Y, VU plane */
|
||||
IA_CSS_FRAME_FORMAT_YV12, /** 12 bit YUV 420, Y, V, U plane */
|
||||
IA_CSS_FRAME_FORMAT_YV16, /** 16 bit YUV 422, Y, V, U plane */
|
||||
IA_CSS_FRAME_FORMAT_YUV420, /** 12 bit YUV 420, Y, U, V plane */
|
||||
IA_CSS_FRAME_FORMAT_YUV420_16, /** yuv420, 16 bits per subpixel */
|
||||
IA_CSS_FRAME_FORMAT_YUV422, /** 16 bit YUV 422, Y, U, V plane */
|
||||
IA_CSS_FRAME_FORMAT_YUV422_16, /** yuv422, 16 bits per subpixel */
|
||||
IA_CSS_FRAME_FORMAT_UYVY, /** 16 bit YUV 422, UYVY interleaved */
|
||||
IA_CSS_FRAME_FORMAT_YUYV, /** 16 bit YUV 422, YUYV interleaved */
|
||||
IA_CSS_FRAME_FORMAT_YUV444, /** 24 bit YUV 444, Y, U, V plane */
|
||||
IA_CSS_FRAME_FORMAT_YUV_LINE, /** Internal format, 2 y lines followed
|
||||
by a uvinterleaved line */
|
||||
IA_CSS_FRAME_FORMAT_RAW, /**< RAW, 1 plane */
|
||||
IA_CSS_FRAME_FORMAT_RGB565, /**< 16 bit RGB, 1 plane. Each 3 sub
|
||||
IA_CSS_FRAME_FORMAT_RAW, /** RAW, 1 plane */
|
||||
IA_CSS_FRAME_FORMAT_RGB565, /** 16 bit RGB, 1 plane. Each 3 sub
|
||||
pixels are packed into one 16 bit
|
||||
value, 5 bits for R, 6 bits for G
|
||||
and 5 bits for B. */
|
||||
IA_CSS_FRAME_FORMAT_PLANAR_RGB888, /**< 24 bit RGB, 3 planes */
|
||||
IA_CSS_FRAME_FORMAT_RGBA888, /**< 32 bit RGBA, 1 plane, A=Alpha
|
||||
IA_CSS_FRAME_FORMAT_PLANAR_RGB888, /** 24 bit RGB, 3 planes */
|
||||
IA_CSS_FRAME_FORMAT_RGBA888, /** 32 bit RGBA, 1 plane, A=Alpha
|
||||
(alpha is unused) */
|
||||
IA_CSS_FRAME_FORMAT_QPLANE6, /**< Internal, for advanced ISP */
|
||||
IA_CSS_FRAME_FORMAT_BINARY_8, /**< byte stream, used for jpeg. For
|
||||
IA_CSS_FRAME_FORMAT_QPLANE6, /** Internal, for advanced ISP */
|
||||
IA_CSS_FRAME_FORMAT_BINARY_8, /** byte stream, used for jpeg. For
|
||||
frames of this type, we set the
|
||||
height to 1 and the width to the
|
||||
number of allocated bytes. */
|
||||
IA_CSS_FRAME_FORMAT_MIPI, /**< MIPI frame, 1 plane */
|
||||
IA_CSS_FRAME_FORMAT_RAW_PACKED, /**< RAW, 1 plane, packed */
|
||||
IA_CSS_FRAME_FORMAT_CSI_MIPI_YUV420_8, /**< 8 bit per Y/U/V.
|
||||
IA_CSS_FRAME_FORMAT_MIPI, /** MIPI frame, 1 plane */
|
||||
IA_CSS_FRAME_FORMAT_RAW_PACKED, /** RAW, 1 plane, packed */
|
||||
IA_CSS_FRAME_FORMAT_CSI_MIPI_YUV420_8, /** 8 bit per Y/U/V.
|
||||
Y odd line; UYVY
|
||||
interleaved even line */
|
||||
IA_CSS_FRAME_FORMAT_CSI_MIPI_LEGACY_YUV420_8, /**< Legacy YUV420. UY odd
|
||||
IA_CSS_FRAME_FORMAT_CSI_MIPI_LEGACY_YUV420_8, /** Legacy YUV420. UY odd
|
||||
line; VY even line */
|
||||
IA_CSS_FRAME_FORMAT_CSI_MIPI_YUV420_10 /**< 10 bit per Y/U/V. Y odd
|
||||
IA_CSS_FRAME_FORMAT_CSI_MIPI_YUV420_10 /** 10 bit per Y/U/V. Y odd
|
||||
line; UYVY interleaved
|
||||
even line */
|
||||
};
|
||||
|
@ -95,7 +95,7 @@ enum ia_css_frame_format {
|
|||
/* because of issues this would cause with the Clockwork code checking tool. */
|
||||
#define IA_CSS_FRAME_FORMAT_NUM (IA_CSS_FRAME_FORMAT_CSI_MIPI_YUV420_10 + 1)
|
||||
|
||||
/** Number of valid output frame formats for ISP **/
|
||||
/* Number of valid output frame formats for ISP **/
|
||||
#define IA_CSS_FRAME_OUT_FORMAT_NUM (IA_CSS_FRAME_FORMAT_RGBA888 + 1)
|
||||
|
||||
#endif /* __IA_CSS_FRAME_FORMAT_H */
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
#ifndef __IA_CSS_FRAME_PUBLIC_H
|
||||
#define __IA_CSS_FRAME_PUBLIC_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* This file contains structs to describe various frame-formats supported by the ISP.
|
||||
*/
|
||||
|
||||
|
@ -25,73 +25,73 @@
|
|||
#include "ia_css_frame_format.h"
|
||||
#include "ia_css_buffer.h"
|
||||
|
||||
/** For RAW input, the bayer order needs to be specified separately. There
|
||||
/* For RAW input, the bayer order needs to be specified separately. There
|
||||
* are 4 possible orders. The name is constructed by taking the first two
|
||||
* colors on the first line and the first two colors from the second line.
|
||||
*/
|
||||
enum ia_css_bayer_order {
|
||||
IA_CSS_BAYER_ORDER_GRBG, /**< GRGRGRGRGR .. BGBGBGBGBG */
|
||||
IA_CSS_BAYER_ORDER_RGGB, /**< RGRGRGRGRG .. GBGBGBGBGB */
|
||||
IA_CSS_BAYER_ORDER_BGGR, /**< BGBGBGBGBG .. GRGRGRGRGR */
|
||||
IA_CSS_BAYER_ORDER_GBRG, /**< GBGBGBGBGB .. RGRGRGRGRG */
|
||||
IA_CSS_BAYER_ORDER_GRBG, /** GRGRGRGRGR .. BGBGBGBGBG */
|
||||
IA_CSS_BAYER_ORDER_RGGB, /** RGRGRGRGRG .. GBGBGBGBGB */
|
||||
IA_CSS_BAYER_ORDER_BGGR, /** BGBGBGBGBG .. GRGRGRGRGR */
|
||||
IA_CSS_BAYER_ORDER_GBRG, /** GBGBGBGBGB .. RGRGRGRGRG */
|
||||
};
|
||||
#define IA_CSS_BAYER_ORDER_NUM (IA_CSS_BAYER_ORDER_GBRG + 1)
|
||||
|
||||
/** Frame plane structure. This describes one plane in an image
|
||||
/* Frame plane structure. This describes one plane in an image
|
||||
* frame buffer.
|
||||
*/
|
||||
struct ia_css_frame_plane {
|
||||
unsigned int height; /**< height of a plane in lines */
|
||||
unsigned int width; /**< width of a line, in DMA elements, note that
|
||||
unsigned int height; /** height of a plane in lines */
|
||||
unsigned int width; /** width of a line, in DMA elements, note that
|
||||
for RGB565 the three subpixels are stored in
|
||||
one element. For all other formats this is
|
||||
the number of subpixels per line. */
|
||||
unsigned int stride; /**< stride of a line in bytes */
|
||||
unsigned int offset; /**< offset in bytes to start of frame data.
|
||||
unsigned int stride; /** stride of a line in bytes */
|
||||
unsigned int offset; /** offset in bytes to start of frame data.
|
||||
offset is wrt data field in ia_css_frame */
|
||||
};
|
||||
|
||||
/** Binary "plane". This is used to story binary streams such as jpeg
|
||||
/* Binary "plane". This is used to story binary streams such as jpeg
|
||||
* images. This is not actually a real plane.
|
||||
*/
|
||||
struct ia_css_frame_binary_plane {
|
||||
unsigned int size; /**< number of bytes in the stream */
|
||||
struct ia_css_frame_plane data; /**< plane */
|
||||
unsigned int size; /** number of bytes in the stream */
|
||||
struct ia_css_frame_plane data; /** plane */
|
||||
};
|
||||
|
||||
/** Container for planar YUV frames. This contains 3 planes.
|
||||
/* Container for planar YUV frames. This contains 3 planes.
|
||||
*/
|
||||
struct ia_css_frame_yuv_planes {
|
||||
struct ia_css_frame_plane y; /**< Y plane */
|
||||
struct ia_css_frame_plane u; /**< U plane */
|
||||
struct ia_css_frame_plane v; /**< V plane */
|
||||
struct ia_css_frame_plane y; /** Y plane */
|
||||
struct ia_css_frame_plane u; /** U plane */
|
||||
struct ia_css_frame_plane v; /** V plane */
|
||||
};
|
||||
|
||||
/** Container for semi-planar YUV frames.
|
||||
/* Container for semi-planar YUV frames.
|
||||
*/
|
||||
struct ia_css_frame_nv_planes {
|
||||
struct ia_css_frame_plane y; /**< Y plane */
|
||||
struct ia_css_frame_plane uv; /**< UV plane */
|
||||
struct ia_css_frame_plane y; /** Y plane */
|
||||
struct ia_css_frame_plane uv; /** UV plane */
|
||||
};
|
||||
|
||||
/** Container for planar RGB frames. Each color has its own plane.
|
||||
/* Container for planar RGB frames. Each color has its own plane.
|
||||
*/
|
||||
struct ia_css_frame_rgb_planes {
|
||||
struct ia_css_frame_plane r; /**< Red plane */
|
||||
struct ia_css_frame_plane g; /**< Green plane */
|
||||
struct ia_css_frame_plane b; /**< Blue plane */
|
||||
struct ia_css_frame_plane r; /** Red plane */
|
||||
struct ia_css_frame_plane g; /** Green plane */
|
||||
struct ia_css_frame_plane b; /** Blue plane */
|
||||
};
|
||||
|
||||
/** Container for 6-plane frames. These frames are used internally
|
||||
/* Container for 6-plane frames. These frames are used internally
|
||||
* in the advanced ISP only.
|
||||
*/
|
||||
struct ia_css_frame_plane6_planes {
|
||||
struct ia_css_frame_plane r; /**< Red plane */
|
||||
struct ia_css_frame_plane r_at_b; /**< Red at blue plane */
|
||||
struct ia_css_frame_plane gr; /**< Red-green plane */
|
||||
struct ia_css_frame_plane gb; /**< Blue-green plane */
|
||||
struct ia_css_frame_plane b; /**< Blue plane */
|
||||
struct ia_css_frame_plane b_at_r; /**< Blue at red plane */
|
||||
struct ia_css_frame_plane r; /** Red plane */
|
||||
struct ia_css_frame_plane r_at_b; /** Red at blue plane */
|
||||
struct ia_css_frame_plane gr; /** Red-green plane */
|
||||
struct ia_css_frame_plane gb; /** Blue-green plane */
|
||||
struct ia_css_frame_plane b; /** Blue plane */
|
||||
struct ia_css_frame_plane b_at_r; /** Blue at red plane */
|
||||
};
|
||||
|
||||
/* Crop info struct - stores the lines to be cropped in isp */
|
||||
|
@ -103,15 +103,15 @@ struct ia_css_crop_info {
|
|||
unsigned int start_line;
|
||||
};
|
||||
|
||||
/** Frame info struct. This describes the contents of an image frame buffer.
|
||||
/* Frame info struct. This describes the contents of an image frame buffer.
|
||||
*/
|
||||
struct ia_css_frame_info {
|
||||
struct ia_css_resolution res; /**< Frame resolution (valid data) */
|
||||
unsigned int padded_width; /**< stride of line in memory (in pixels) */
|
||||
enum ia_css_frame_format format; /**< format of the frame data */
|
||||
unsigned int raw_bit_depth; /**< number of valid bits per pixel,
|
||||
struct ia_css_resolution res; /** Frame resolution (valid data) */
|
||||
unsigned int padded_width; /** stride of line in memory (in pixels) */
|
||||
enum ia_css_frame_format format; /** format of the frame data */
|
||||
unsigned int raw_bit_depth; /** number of valid bits per pixel,
|
||||
only valid for RAW bayer frames */
|
||||
enum ia_css_bayer_order raw_bayer_order; /**< bayer order, only valid
|
||||
enum ia_css_bayer_order raw_bayer_order; /** bayer order, only valid
|
||||
for RAW bayer frames */
|
||||
/* the params below are computed based on bayer_order
|
||||
* we can remove the raw_bayer_order if it is redundant
|
||||
|
@ -136,9 +136,9 @@ struct ia_css_frame_info {
|
|||
* Specifies the DVS loop delay in "frame periods"
|
||||
*/
|
||||
enum ia_css_frame_delay {
|
||||
IA_CSS_FRAME_DELAY_0, /**< Frame delay = 0 */
|
||||
IA_CSS_FRAME_DELAY_1, /**< Frame delay = 1 */
|
||||
IA_CSS_FRAME_DELAY_2 /**< Frame delay = 2 */
|
||||
IA_CSS_FRAME_DELAY_0, /** Frame delay = 0 */
|
||||
IA_CSS_FRAME_DELAY_1, /** Frame delay = 1 */
|
||||
IA_CSS_FRAME_DELAY_2 /** Frame delay = 2 */
|
||||
};
|
||||
|
||||
enum ia_css_frame_flash_state {
|
||||
|
@ -147,13 +147,13 @@ enum ia_css_frame_flash_state {
|
|||
IA_CSS_FRAME_FLASH_STATE_FULL
|
||||
};
|
||||
|
||||
/** Frame structure. This structure describes an image buffer or frame.
|
||||
/* Frame structure. This structure describes an image buffer or frame.
|
||||
* This is the main structure used for all input and output images.
|
||||
*/
|
||||
struct ia_css_frame {
|
||||
struct ia_css_frame_info info; /**< info struct describing the frame */
|
||||
ia_css_ptr data; /**< pointer to start of image data */
|
||||
unsigned int data_bytes; /**< size of image data in bytes */
|
||||
struct ia_css_frame_info info; /** info struct describing the frame */
|
||||
ia_css_ptr data; /** pointer to start of image data */
|
||||
unsigned int data_bytes; /** size of image data in bytes */
|
||||
/* LA: move this to ia_css_buffer */
|
||||
/*
|
||||
* -1 if data address is static during life time of pipeline
|
||||
|
@ -171,10 +171,10 @@ struct ia_css_frame {
|
|||
enum ia_css_buffer_type buf_type;
|
||||
enum ia_css_frame_flash_state flash_state;
|
||||
unsigned int exp_id;
|
||||
/**< exposure id, see ia_css_event_public.h for more detail */
|
||||
uint32_t isp_config_id; /**< Unique ID to track which config was actually applied to a particular frame */
|
||||
bool valid; /**< First video output frame is not valid */
|
||||
bool contiguous; /**< memory is allocated physically contiguously */
|
||||
/** exposure id, see ia_css_event_public.h for more detail */
|
||||
uint32_t isp_config_id; /** Unique ID to track which config was actually applied to a particular frame */
|
||||
bool valid; /** First video output frame is not valid */
|
||||
bool contiguous; /** memory is allocated physically contiguously */
|
||||
union {
|
||||
unsigned int _initialisation_dummy;
|
||||
struct ia_css_frame_plane raw;
|
||||
|
@ -185,7 +185,7 @@ struct ia_css_frame {
|
|||
struct ia_css_frame_nv_planes nv;
|
||||
struct ia_css_frame_plane6_planes plane6;
|
||||
struct ia_css_frame_binary_plane binary;
|
||||
} planes; /**< frame planes, select the right one based on
|
||||
} planes; /** frame planes, select the right one based on
|
||||
info.format */
|
||||
};
|
||||
|
||||
|
@ -204,7 +204,7 @@ struct ia_css_frame {
|
|||
{ 0 } /* planes */ \
|
||||
}
|
||||
|
||||
/** @brief Fill a frame with zeros
|
||||
/* @brief Fill a frame with zeros
|
||||
*
|
||||
* @param frame The frame.
|
||||
* @return None
|
||||
|
@ -213,7 +213,7 @@ struct ia_css_frame {
|
|||
*/
|
||||
void ia_css_frame_zero(struct ia_css_frame *frame);
|
||||
|
||||
/** @brief Allocate a CSS frame structure
|
||||
/* @brief Allocate a CSS frame structure
|
||||
*
|
||||
* @param frame The allocated frame.
|
||||
* @param width The width (in pixels) of the frame.
|
||||
|
@ -234,7 +234,7 @@ ia_css_frame_allocate(struct ia_css_frame **frame,
|
|||
unsigned int stride,
|
||||
unsigned int raw_bit_depth);
|
||||
|
||||
/** @brief Allocate a CSS frame structure using a frame info structure.
|
||||
/* @brief Allocate a CSS frame structure using a frame info structure.
|
||||
*
|
||||
* @param frame The allocated frame.
|
||||
* @param[in] info The frame info structure.
|
||||
|
@ -247,7 +247,7 @@ ia_css_frame_allocate(struct ia_css_frame **frame,
|
|||
enum ia_css_err
|
||||
ia_css_frame_allocate_from_info(struct ia_css_frame **frame,
|
||||
const struct ia_css_frame_info *info);
|
||||
/** @brief Free a CSS frame structure.
|
||||
/* @brief Free a CSS frame structure.
|
||||
*
|
||||
* @param[in] frame Pointer to the frame.
|
||||
* @return None
|
||||
|
@ -258,7 +258,7 @@ ia_css_frame_allocate_from_info(struct ia_css_frame **frame,
|
|||
void
|
||||
ia_css_frame_free(struct ia_css_frame *frame);
|
||||
|
||||
/** @brief Allocate a contiguous CSS frame structure
|
||||
/* @brief Allocate a contiguous CSS frame structure
|
||||
*
|
||||
* @param frame The allocated frame.
|
||||
* @param width The width (in pixels) of the frame.
|
||||
|
@ -280,7 +280,7 @@ ia_css_frame_allocate_contiguous(struct ia_css_frame **frame,
|
|||
unsigned int stride,
|
||||
unsigned int raw_bit_depth);
|
||||
|
||||
/** @brief Allocate a contiguous CSS frame from a frame info structure.
|
||||
/* @brief Allocate a contiguous CSS frame from a frame info structure.
|
||||
*
|
||||
* @param frame The allocated frame.
|
||||
* @param[in] info The frame info structure.
|
||||
|
@ -296,7 +296,7 @@ enum ia_css_err
|
|||
ia_css_frame_allocate_contiguous_from_info(struct ia_css_frame **frame,
|
||||
const struct ia_css_frame_info *info);
|
||||
|
||||
/** @brief Allocate a CSS frame structure using a frame info structure.
|
||||
/* @brief Allocate a CSS frame structure using a frame info structure.
|
||||
*
|
||||
* @param frame The allocated frame.
|
||||
* @param[in] info The frame info structure.
|
||||
|
@ -309,7 +309,7 @@ enum ia_css_err
|
|||
ia_css_frame_create_from_info(struct ia_css_frame **frame,
|
||||
const struct ia_css_frame_info *info);
|
||||
|
||||
/** @brief Set a mapped data buffer to a CSS frame
|
||||
/* @brief Set a mapped data buffer to a CSS frame
|
||||
*
|
||||
* @param[in] frame Valid CSS frame pointer
|
||||
* @param[in] mapped_data Mapped data buffer to be assigned to the CSS frame
|
||||
|
@ -327,7 +327,7 @@ ia_css_frame_set_data(struct ia_css_frame *frame,
|
|||
const ia_css_ptr mapped_data,
|
||||
size_t data_size_bytes);
|
||||
|
||||
/** @brief Map an existing frame data pointer to a CSS frame.
|
||||
/* @brief Map an existing frame data pointer to a CSS frame.
|
||||
*
|
||||
* @param frame Pointer to the frame to be initialized
|
||||
* @param[in] info The frame info.
|
||||
|
@ -350,7 +350,7 @@ ia_css_frame_map(struct ia_css_frame **frame,
|
|||
uint16_t attribute,
|
||||
void *context);
|
||||
|
||||
/** @brief Unmap a CSS frame structure.
|
||||
/* @brief Unmap a CSS frame structure.
|
||||
*
|
||||
* @param[in] frame Pointer to the CSS frame.
|
||||
* @return None
|
||||
|
|
|
@ -15,11 +15,11 @@
|
|||
#ifndef __IA_CSS_INPUT_PORT_H
|
||||
#define __IA_CSS_INPUT_PORT_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* This file contains information about the possible input ports for CSS
|
||||
*/
|
||||
|
||||
/** Enumeration of the physical input ports on the CSS hardware.
|
||||
/* Enumeration of the physical input ports on the CSS hardware.
|
||||
* There are 3 MIPI CSI-2 ports.
|
||||
*/
|
||||
enum ia_css_csi2_port {
|
||||
|
@ -28,39 +28,39 @@ enum ia_css_csi2_port {
|
|||
IA_CSS_CSI2_PORT2 /* Implicitly map to MIPI_PORT2_ID */
|
||||
};
|
||||
|
||||
/** Backward compatible for CSS API 2.0 only
|
||||
/* Backward compatible for CSS API 2.0 only
|
||||
* TO BE REMOVED when all drivers move to CSS API 2.1
|
||||
*/
|
||||
#define IA_CSS_CSI2_PORT_4LANE IA_CSS_CSI2_PORT0
|
||||
#define IA_CSS_CSI2_PORT_1LANE IA_CSS_CSI2_PORT1
|
||||
#define IA_CSS_CSI2_PORT_2LANE IA_CSS_CSI2_PORT2
|
||||
|
||||
/** The CSI2 interface supports 2 types of compression or can
|
||||
/* The CSI2 interface supports 2 types of compression or can
|
||||
* be run without compression.
|
||||
*/
|
||||
enum ia_css_csi2_compression_type {
|
||||
IA_CSS_CSI2_COMPRESSION_TYPE_NONE, /**< No compression */
|
||||
IA_CSS_CSI2_COMPRESSION_TYPE_1, /**< Compression scheme 1 */
|
||||
IA_CSS_CSI2_COMPRESSION_TYPE_2 /**< Compression scheme 2 */
|
||||
IA_CSS_CSI2_COMPRESSION_TYPE_NONE, /** No compression */
|
||||
IA_CSS_CSI2_COMPRESSION_TYPE_1, /** Compression scheme 1 */
|
||||
IA_CSS_CSI2_COMPRESSION_TYPE_2 /** Compression scheme 2 */
|
||||
};
|
||||
|
||||
struct ia_css_csi2_compression {
|
||||
enum ia_css_csi2_compression_type type;
|
||||
/**< Compression used */
|
||||
/** Compression used */
|
||||
unsigned int compressed_bits_per_pixel;
|
||||
/**< Compressed bits per pixel (only when compression is enabled) */
|
||||
/** Compressed bits per pixel (only when compression is enabled) */
|
||||
unsigned int uncompressed_bits_per_pixel;
|
||||
/**< Uncompressed bits per pixel (only when compression is enabled) */
|
||||
/** Uncompressed bits per pixel (only when compression is enabled) */
|
||||
};
|
||||
|
||||
/** Input port structure.
|
||||
/* Input port structure.
|
||||
*/
|
||||
struct ia_css_input_port {
|
||||
enum ia_css_csi2_port port; /**< Physical CSI-2 port */
|
||||
unsigned int num_lanes; /**< Number of lanes used (4-lane port only) */
|
||||
unsigned int timeout; /**< Timeout value */
|
||||
unsigned int rxcount; /**< Register value, should include all lanes */
|
||||
struct ia_css_csi2_compression compression; /**< Compression used */
|
||||
enum ia_css_csi2_port port; /** Physical CSI-2 port */
|
||||
unsigned int num_lanes; /** Number of lanes used (4-lane port only) */
|
||||
unsigned int timeout; /** Timeout value */
|
||||
unsigned int rxcount; /** Register value, should include all lanes */
|
||||
struct ia_css_csi2_compression compression; /** Compression used */
|
||||
};
|
||||
|
||||
#endif /* __IA_CSS_INPUT_PORT_H */
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
#ifndef __IA_CSS_IRQ_H
|
||||
#define __IA_CSS_IRQ_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* This file contains information for Interrupts/IRQs from CSS
|
||||
*/
|
||||
|
||||
|
@ -23,14 +23,14 @@
|
|||
#include "ia_css_pipe_public.h"
|
||||
#include "ia_css_input_port.h"
|
||||
|
||||
/** Interrupt types, these enumerate all supported interrupt types.
|
||||
/* Interrupt types, these enumerate all supported interrupt types.
|
||||
*/
|
||||
enum ia_css_irq_type {
|
||||
IA_CSS_IRQ_TYPE_EDGE, /**< Edge (level) sensitive interrupt */
|
||||
IA_CSS_IRQ_TYPE_PULSE /**< Pulse-shaped interrupt */
|
||||
IA_CSS_IRQ_TYPE_EDGE, /** Edge (level) sensitive interrupt */
|
||||
IA_CSS_IRQ_TYPE_PULSE /** Pulse-shaped interrupt */
|
||||
};
|
||||
|
||||
/** Interrupt request type.
|
||||
/* Interrupt request type.
|
||||
* When the CSS hardware generates an interrupt, a function in this API
|
||||
* needs to be called to retrieve information about the interrupt.
|
||||
* This interrupt type is part of this information and indicates what
|
||||
|
@ -46,55 +46,55 @@ enum ia_css_irq_type {
|
|||
*/
|
||||
enum ia_css_irq_info {
|
||||
IA_CSS_IRQ_INFO_CSS_RECEIVER_ERROR = 1 << 0,
|
||||
/**< the css receiver has encountered an error */
|
||||
/** the css receiver has encountered an error */
|
||||
IA_CSS_IRQ_INFO_CSS_RECEIVER_FIFO_OVERFLOW = 1 << 1,
|
||||
/**< the FIFO in the csi receiver has overflown */
|
||||
/** the FIFO in the csi receiver has overflown */
|
||||
IA_CSS_IRQ_INFO_CSS_RECEIVER_SOF = 1 << 2,
|
||||
/**< the css receiver received the start of frame */
|
||||
/** the css receiver received the start of frame */
|
||||
IA_CSS_IRQ_INFO_CSS_RECEIVER_EOF = 1 << 3,
|
||||
/**< the css receiver received the end of frame */
|
||||
/** the css receiver received the end of frame */
|
||||
IA_CSS_IRQ_INFO_CSS_RECEIVER_SOL = 1 << 4,
|
||||
/**< the css receiver received the start of line */
|
||||
/** the css receiver received the start of line */
|
||||
IA_CSS_IRQ_INFO_PSYS_EVENTS_READY = 1 << 5,
|
||||
/**< One or more events are available in the PSYS event queue */
|
||||
/** One or more events are available in the PSYS event queue */
|
||||
IA_CSS_IRQ_INFO_EVENTS_READY = IA_CSS_IRQ_INFO_PSYS_EVENTS_READY,
|
||||
/**< deprecated{obsolete version of IA_CSS_IRQ_INFO_PSYS_EVENTS_READY,
|
||||
/** deprecated{obsolete version of IA_CSS_IRQ_INFO_PSYS_EVENTS_READY,
|
||||
* same functionality.} */
|
||||
IA_CSS_IRQ_INFO_CSS_RECEIVER_EOL = 1 << 6,
|
||||
/**< the css receiver received the end of line */
|
||||
/** the css receiver received the end of line */
|
||||
IA_CSS_IRQ_INFO_CSS_RECEIVER_SIDEBAND_CHANGED = 1 << 7,
|
||||
/**< the css receiver received a change in side band signals */
|
||||
/** the css receiver received a change in side band signals */
|
||||
IA_CSS_IRQ_INFO_CSS_RECEIVER_GEN_SHORT_0 = 1 << 8,
|
||||
/**< generic short packets (0) */
|
||||
/** generic short packets (0) */
|
||||
IA_CSS_IRQ_INFO_CSS_RECEIVER_GEN_SHORT_1 = 1 << 9,
|
||||
/**< generic short packets (1) */
|
||||
/** generic short packets (1) */
|
||||
IA_CSS_IRQ_INFO_IF_PRIM_ERROR = 1 << 10,
|
||||
/**< the primary input formatter (A) has encountered an error */
|
||||
/** the primary input formatter (A) has encountered an error */
|
||||
IA_CSS_IRQ_INFO_IF_PRIM_B_ERROR = 1 << 11,
|
||||
/**< the primary input formatter (B) has encountered an error */
|
||||
/** the primary input formatter (B) has encountered an error */
|
||||
IA_CSS_IRQ_INFO_IF_SEC_ERROR = 1 << 12,
|
||||
/**< the secondary input formatter has encountered an error */
|
||||
/** the secondary input formatter has encountered an error */
|
||||
IA_CSS_IRQ_INFO_STREAM_TO_MEM_ERROR = 1 << 13,
|
||||
/**< the stream-to-memory device has encountered an error */
|
||||
/** the stream-to-memory device has encountered an error */
|
||||
IA_CSS_IRQ_INFO_SW_0 = 1 << 14,
|
||||
/**< software interrupt 0 */
|
||||
/** software interrupt 0 */
|
||||
IA_CSS_IRQ_INFO_SW_1 = 1 << 15,
|
||||
/**< software interrupt 1 */
|
||||
/** software interrupt 1 */
|
||||
IA_CSS_IRQ_INFO_SW_2 = 1 << 16,
|
||||
/**< software interrupt 2 */
|
||||
/** software interrupt 2 */
|
||||
IA_CSS_IRQ_INFO_ISP_BINARY_STATISTICS_READY = 1 << 17,
|
||||
/**< ISP binary statistics are ready */
|
||||
/** ISP binary statistics are ready */
|
||||
IA_CSS_IRQ_INFO_INPUT_SYSTEM_ERROR = 1 << 18,
|
||||
/**< the input system in in error */
|
||||
/** the input system in in error */
|
||||
IA_CSS_IRQ_INFO_IF_ERROR = 1 << 19,
|
||||
/**< the input formatter in in error */
|
||||
/** the input formatter in in error */
|
||||
IA_CSS_IRQ_INFO_DMA_ERROR = 1 << 20,
|
||||
/**< the dma in in error */
|
||||
/** the dma in in error */
|
||||
IA_CSS_IRQ_INFO_ISYS_EVENTS_READY = 1 << 21,
|
||||
/**< end-of-frame events are ready in the isys_event queue */
|
||||
/** end-of-frame events are ready in the isys_event queue */
|
||||
};
|
||||
|
||||
/** CSS receiver error types. Whenever the CSS receiver has encountered
|
||||
/* CSS receiver error types. Whenever the CSS receiver has encountered
|
||||
* an error, this enumeration is used to indicate which errors have occurred.
|
||||
*
|
||||
* Note that multiple error flags can be enabled at once and that this is in
|
||||
|
@ -105,39 +105,39 @@ enum ia_css_irq_info {
|
|||
* different receiver types, or possibly none in case of tests systems.
|
||||
*/
|
||||
enum ia_css_rx_irq_info {
|
||||
IA_CSS_RX_IRQ_INFO_BUFFER_OVERRUN = 1U << 0, /**< buffer overrun */
|
||||
IA_CSS_RX_IRQ_INFO_ENTER_SLEEP_MODE = 1U << 1, /**< entering sleep mode */
|
||||
IA_CSS_RX_IRQ_INFO_EXIT_SLEEP_MODE = 1U << 2, /**< exited sleep mode */
|
||||
IA_CSS_RX_IRQ_INFO_ECC_CORRECTED = 1U << 3, /**< ECC corrected */
|
||||
IA_CSS_RX_IRQ_INFO_BUFFER_OVERRUN = 1U << 0, /** buffer overrun */
|
||||
IA_CSS_RX_IRQ_INFO_ENTER_SLEEP_MODE = 1U << 1, /** entering sleep mode */
|
||||
IA_CSS_RX_IRQ_INFO_EXIT_SLEEP_MODE = 1U << 2, /** exited sleep mode */
|
||||
IA_CSS_RX_IRQ_INFO_ECC_CORRECTED = 1U << 3, /** ECC corrected */
|
||||
IA_CSS_RX_IRQ_INFO_ERR_SOT = 1U << 4,
|
||||
/**< Start of transmission */
|
||||
IA_CSS_RX_IRQ_INFO_ERR_SOT_SYNC = 1U << 5, /**< SOT sync (??) */
|
||||
IA_CSS_RX_IRQ_INFO_ERR_CONTROL = 1U << 6, /**< Control (??) */
|
||||
IA_CSS_RX_IRQ_INFO_ERR_ECC_DOUBLE = 1U << 7, /**< Double ECC */
|
||||
IA_CSS_RX_IRQ_INFO_ERR_CRC = 1U << 8, /**< CRC error */
|
||||
IA_CSS_RX_IRQ_INFO_ERR_UNKNOWN_ID = 1U << 9, /**< Unknown ID */
|
||||
IA_CSS_RX_IRQ_INFO_ERR_FRAME_SYNC = 1U << 10,/**< Frame sync error */
|
||||
IA_CSS_RX_IRQ_INFO_ERR_FRAME_DATA = 1U << 11,/**< Frame data error */
|
||||
IA_CSS_RX_IRQ_INFO_ERR_DATA_TIMEOUT = 1U << 12,/**< Timeout occurred */
|
||||
IA_CSS_RX_IRQ_INFO_ERR_UNKNOWN_ESC = 1U << 13,/**< Unknown escape seq. */
|
||||
IA_CSS_RX_IRQ_INFO_ERR_LINE_SYNC = 1U << 14,/**< Line Sync error */
|
||||
/** Start of transmission */
|
||||
IA_CSS_RX_IRQ_INFO_ERR_SOT_SYNC = 1U << 5, /** SOT sync (??) */
|
||||
IA_CSS_RX_IRQ_INFO_ERR_CONTROL = 1U << 6, /** Control (??) */
|
||||
IA_CSS_RX_IRQ_INFO_ERR_ECC_DOUBLE = 1U << 7, /** Double ECC */
|
||||
IA_CSS_RX_IRQ_INFO_ERR_CRC = 1U << 8, /** CRC error */
|
||||
IA_CSS_RX_IRQ_INFO_ERR_UNKNOWN_ID = 1U << 9, /** Unknown ID */
|
||||
IA_CSS_RX_IRQ_INFO_ERR_FRAME_SYNC = 1U << 10,/** Frame sync error */
|
||||
IA_CSS_RX_IRQ_INFO_ERR_FRAME_DATA = 1U << 11,/** Frame data error */
|
||||
IA_CSS_RX_IRQ_INFO_ERR_DATA_TIMEOUT = 1U << 12,/** Timeout occurred */
|
||||
IA_CSS_RX_IRQ_INFO_ERR_UNKNOWN_ESC = 1U << 13,/** Unknown escape seq. */
|
||||
IA_CSS_RX_IRQ_INFO_ERR_LINE_SYNC = 1U << 14,/** Line Sync error */
|
||||
IA_CSS_RX_IRQ_INFO_INIT_TIMEOUT = 1U << 15,
|
||||
};
|
||||
|
||||
/** Interrupt info structure. This structure contains information about an
|
||||
/* Interrupt info structure. This structure contains information about an
|
||||
* interrupt. This needs to be used after an interrupt is received on the IA
|
||||
* to perform the correct action.
|
||||
*/
|
||||
struct ia_css_irq {
|
||||
enum ia_css_irq_info type; /**< Interrupt type. */
|
||||
unsigned int sw_irq_0_val; /**< In case of SW interrupt 0, value. */
|
||||
unsigned int sw_irq_1_val; /**< In case of SW interrupt 1, value. */
|
||||
unsigned int sw_irq_2_val; /**< In case of SW interrupt 2, value. */
|
||||
enum ia_css_irq_info type; /** Interrupt type. */
|
||||
unsigned int sw_irq_0_val; /** In case of SW interrupt 0, value. */
|
||||
unsigned int sw_irq_1_val; /** In case of SW interrupt 1, value. */
|
||||
unsigned int sw_irq_2_val; /** In case of SW interrupt 2, value. */
|
||||
struct ia_css_pipe *pipe;
|
||||
/**< The image pipe that generated the interrupt. */
|
||||
/** The image pipe that generated the interrupt. */
|
||||
};
|
||||
|
||||
/** @brief Obtain interrupt information.
|
||||
/* @brief Obtain interrupt information.
|
||||
*
|
||||
* @param[out] info Pointer to the interrupt info. The interrupt
|
||||
* information wil be written to this info.
|
||||
|
@ -154,7 +154,7 @@ struct ia_css_irq {
|
|||
enum ia_css_err
|
||||
ia_css_irq_translate(unsigned int *info);
|
||||
|
||||
/** @brief Get CSI receiver error info.
|
||||
/* @brief Get CSI receiver error info.
|
||||
*
|
||||
* @param[out] irq_bits Pointer to the interrupt bits. The interrupt
|
||||
* bits will be written this info.
|
||||
|
@ -172,7 +172,7 @@ ia_css_irq_translate(unsigned int *info);
|
|||
void
|
||||
ia_css_rx_get_irq_info(unsigned int *irq_bits);
|
||||
|
||||
/** @brief Get CSI receiver error info.
|
||||
/* @brief Get CSI receiver error info.
|
||||
*
|
||||
* @param[in] port Input port identifier.
|
||||
* @param[out] irq_bits Pointer to the interrupt bits. The interrupt
|
||||
|
@ -188,7 +188,7 @@ ia_css_rx_get_irq_info(unsigned int *irq_bits);
|
|||
void
|
||||
ia_css_rx_port_get_irq_info(enum ia_css_csi2_port port, unsigned int *irq_bits);
|
||||
|
||||
/** @brief Clear CSI receiver error info.
|
||||
/* @brief Clear CSI receiver error info.
|
||||
*
|
||||
* @param[in] irq_bits The bits that should be cleared from the CSI receiver
|
||||
* interrupt bits register.
|
||||
|
@ -205,7 +205,7 @@ ia_css_rx_port_get_irq_info(enum ia_css_csi2_port port, unsigned int *irq_bits);
|
|||
void
|
||||
ia_css_rx_clear_irq_info(unsigned int irq_bits);
|
||||
|
||||
/** @brief Clear CSI receiver error info.
|
||||
/* @brief Clear CSI receiver error info.
|
||||
*
|
||||
* @param[in] port Input port identifier.
|
||||
* @param[in] irq_bits The bits that should be cleared from the CSI receiver
|
||||
|
@ -220,7 +220,7 @@ ia_css_rx_clear_irq_info(unsigned int irq_bits);
|
|||
void
|
||||
ia_css_rx_port_clear_irq_info(enum ia_css_csi2_port port, unsigned int irq_bits);
|
||||
|
||||
/** @brief Enable or disable specific interrupts.
|
||||
/* @brief Enable or disable specific interrupts.
|
||||
*
|
||||
* @param[in] type The interrupt type that will be enabled/disabled.
|
||||
* @param[in] enable enable or disable.
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
#ifndef __IA_CSS_METADATA_H
|
||||
#define __IA_CSS_METADATA_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* This file contains structure for processing sensor metadata.
|
||||
*/
|
||||
|
||||
|
@ -23,32 +23,32 @@
|
|||
#include "ia_css_types.h"
|
||||
#include "ia_css_stream_format.h"
|
||||
|
||||
/** Metadata configuration. This data structure contains necessary info
|
||||
/* Metadata configuration. This data structure contains necessary info
|
||||
* to process sensor metadata.
|
||||
*/
|
||||
struct ia_css_metadata_config {
|
||||
enum ia_css_stream_format data_type; /**< Data type of CSI-2 embedded
|
||||
enum ia_css_stream_format data_type; /** Data type of CSI-2 embedded
|
||||
data. The default value is IA_CSS_STREAM_FORMAT_EMBEDDED. For
|
||||
certain sensors, user can choose non-default data type for embedded
|
||||
data. */
|
||||
struct ia_css_resolution resolution; /**< Resolution */
|
||||
struct ia_css_resolution resolution; /** Resolution */
|
||||
};
|
||||
|
||||
struct ia_css_metadata_info {
|
||||
struct ia_css_resolution resolution; /**< Resolution */
|
||||
uint32_t stride; /**< Stride in bytes */
|
||||
uint32_t size; /**< Total size in bytes */
|
||||
struct ia_css_resolution resolution; /** Resolution */
|
||||
uint32_t stride; /** Stride in bytes */
|
||||
uint32_t size; /** Total size in bytes */
|
||||
};
|
||||
|
||||
struct ia_css_metadata {
|
||||
struct ia_css_metadata_info info; /**< Layout info */
|
||||
ia_css_ptr address; /**< CSS virtual address */
|
||||
struct ia_css_metadata_info info; /** Layout info */
|
||||
ia_css_ptr address; /** CSS virtual address */
|
||||
uint32_t exp_id;
|
||||
/**< Exposure ID, see ia_css_event_public.h for more detail */
|
||||
/** Exposure ID, see ia_css_event_public.h for more detail */
|
||||
};
|
||||
#define SIZE_OF_IA_CSS_METADATA_STRUCT sizeof(struct ia_css_metadata)
|
||||
|
||||
/** @brief Allocate a metadata buffer.
|
||||
/* @brief Allocate a metadata buffer.
|
||||
* @param[in] metadata_info Metadata info struct, contains details on metadata buffers.
|
||||
* @return Pointer of metadata buffer or NULL (if error)
|
||||
*
|
||||
|
@ -58,7 +58,7 @@ struct ia_css_metadata {
|
|||
struct ia_css_metadata *
|
||||
ia_css_metadata_allocate(const struct ia_css_metadata_info *metadata_info);
|
||||
|
||||
/** @brief Free a metadata buffer.
|
||||
/* @brief Free a metadata buffer.
|
||||
*
|
||||
* @param[in] metadata Pointer of metadata buffer.
|
||||
* @return None
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
#ifndef __IA_CSS_MIPI_H
|
||||
#define __IA_CSS_MIPI_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* This file contains MIPI support functionality
|
||||
*/
|
||||
|
||||
|
@ -24,10 +24,10 @@
|
|||
#include "ia_css_stream_format.h"
|
||||
#include "ia_css_input_port.h"
|
||||
|
||||
/** Backward compatible for CSS API 2.0 only
|
||||
/* Backward compatible for CSS API 2.0 only
|
||||
* TO BE REMOVED when all drivers move to CSS API 2.1.
|
||||
*/
|
||||
/** @brief Specify a CSS MIPI frame buffer.
|
||||
/* @brief Specify a CSS MIPI frame buffer.
|
||||
*
|
||||
* @param[in] size_mem_words The frame size in memory words (32B).
|
||||
* @param[in] contiguous Allocate memory physically contiguously or not.
|
||||
|
@ -42,7 +42,7 @@ ia_css_mipi_frame_specify(const unsigned int size_mem_words,
|
|||
const bool contiguous);
|
||||
|
||||
#if !defined(HAS_NO_INPUT_SYSTEM)
|
||||
/** @brief Register size of a CSS MIPI frame for check during capturing.
|
||||
/* @brief Register size of a CSS MIPI frame for check during capturing.
|
||||
*
|
||||
* @param[in] port CSI-2 port this check is registered.
|
||||
* @param[in] size_mem_words The frame size in memory words (32B).
|
||||
|
@ -59,7 +59,7 @@ ia_css_mipi_frame_enable_check_on_size(const enum ia_css_csi2_port port,
|
|||
const unsigned int size_mem_words);
|
||||
#endif
|
||||
|
||||
/** @brief Calculate the size of a mipi frame.
|
||||
/* @brief Calculate the size of a mipi frame.
|
||||
*
|
||||
* @param[in] width The width (in pixels) of the frame.
|
||||
* @param[in] height The height (in lines) of the frame.
|
||||
|
|
|
@ -15,11 +15,11 @@
|
|||
#ifndef __IA_CSS_MMU_H
|
||||
#define __IA_CSS_MMU_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* This file contains one support function for invalidating the CSS MMU cache
|
||||
*/
|
||||
|
||||
/** @brief Invalidate the MMU internal cache.
|
||||
/* @brief Invalidate the MMU internal cache.
|
||||
* @return None
|
||||
*
|
||||
* This function triggers an invalidation of the translate-look-aside
|
||||
|
|
|
@ -15,13 +15,13 @@
|
|||
#ifndef __IA_CSS_MORPH_H
|
||||
#define __IA_CSS_MORPH_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* This file contains supporting for morphing table
|
||||
*/
|
||||
|
||||
#include <ia_css_types.h>
|
||||
|
||||
/** @brief Morphing table
|
||||
/* @brief Morphing table
|
||||
* @param[in] width Width of the morphing table.
|
||||
* @param[in] height Height of the morphing table.
|
||||
* @return Pointer to the morphing table
|
||||
|
@ -29,7 +29,7 @@
|
|||
struct ia_css_morph_table *
|
||||
ia_css_morph_table_allocate(unsigned int width, unsigned int height);
|
||||
|
||||
/** @brief Free the morph table
|
||||
/* @brief Free the morph table
|
||||
* @param[in] me Pointer to the morph table.
|
||||
* @return None
|
||||
*/
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
#ifndef __IA_CSS_PIPE_PUBLIC_H
|
||||
#define __IA_CSS_PIPE_PUBLIC_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* This file contains the public interface for CSS pipes.
|
||||
*/
|
||||
|
||||
|
@ -34,7 +34,7 @@ enum {
|
|||
IA_CSS_PIPE_MAX_OUTPUT_STAGE,
|
||||
};
|
||||
|
||||
/** Enumeration of pipe modes. This mode can be used to create
|
||||
/* Enumeration of pipe modes. This mode can be used to create
|
||||
* an image pipe for this mode. These pipes can be combined
|
||||
* to configure and run streams on the ISP.
|
||||
*
|
||||
|
@ -42,12 +42,12 @@ enum {
|
|||
* create a continuous capture stream.
|
||||
*/
|
||||
enum ia_css_pipe_mode {
|
||||
IA_CSS_PIPE_MODE_PREVIEW, /**< Preview pipe */
|
||||
IA_CSS_PIPE_MODE_VIDEO, /**< Video pipe */
|
||||
IA_CSS_PIPE_MODE_CAPTURE, /**< Still capture pipe */
|
||||
IA_CSS_PIPE_MODE_ACC, /**< Accelerated pipe */
|
||||
IA_CSS_PIPE_MODE_COPY, /**< Copy pipe, only used for embedded/image data copying */
|
||||
IA_CSS_PIPE_MODE_YUVPP, /**< YUV post processing pipe, used for all use cases with YUV input,
|
||||
IA_CSS_PIPE_MODE_PREVIEW, /** Preview pipe */
|
||||
IA_CSS_PIPE_MODE_VIDEO, /** Video pipe */
|
||||
IA_CSS_PIPE_MODE_CAPTURE, /** Still capture pipe */
|
||||
IA_CSS_PIPE_MODE_ACC, /** Accelerated pipe */
|
||||
IA_CSS_PIPE_MODE_COPY, /** Copy pipe, only used for embedded/image data copying */
|
||||
IA_CSS_PIPE_MODE_YUVPP, /** YUV post processing pipe, used for all use cases with YUV input,
|
||||
for SoC sensor and external ISP */
|
||||
};
|
||||
/* Temporary define */
|
||||
|
@ -58,10 +58,10 @@ enum ia_css_pipe_mode {
|
|||
* the order should match with definition in sh_css_defs.h
|
||||
*/
|
||||
enum ia_css_pipe_version {
|
||||
IA_CSS_PIPE_VERSION_1 = 1, /**< ISP1.0 pipe */
|
||||
IA_CSS_PIPE_VERSION_2_2 = 2, /**< ISP2.2 pipe */
|
||||
IA_CSS_PIPE_VERSION_2_6_1 = 3, /**< ISP2.6.1 pipe */
|
||||
IA_CSS_PIPE_VERSION_2_7 = 4 /**< ISP2.7 pipe */
|
||||
IA_CSS_PIPE_VERSION_1 = 1, /** ISP1.0 pipe */
|
||||
IA_CSS_PIPE_VERSION_2_2 = 2, /** ISP2.2 pipe */
|
||||
IA_CSS_PIPE_VERSION_2_6_1 = 3, /** ISP2.6.1 pipe */
|
||||
IA_CSS_PIPE_VERSION_2_7 = 4 /** ISP2.7 pipe */
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -71,79 +71,79 @@ enum ia_css_pipe_version {
|
|||
*/
|
||||
struct ia_css_pipe_config {
|
||||
enum ia_css_pipe_mode mode;
|
||||
/**< mode, indicates which mode the pipe should use. */
|
||||
/** mode, indicates which mode the pipe should use. */
|
||||
enum ia_css_pipe_version isp_pipe_version;
|
||||
/**< pipe version, indicates which imaging pipeline the pipe should use. */
|
||||
/** pipe version, indicates which imaging pipeline the pipe should use. */
|
||||
struct ia_css_resolution input_effective_res;
|
||||
/**< input effective resolution */
|
||||
/** input effective resolution */
|
||||
struct ia_css_resolution bayer_ds_out_res;
|
||||
/**< bayer down scaling */
|
||||
/** bayer down scaling */
|
||||
struct ia_css_resolution capt_pp_in_res;
|
||||
#ifndef ISP2401
|
||||
/**< bayer down scaling */
|
||||
/** bayer down scaling */
|
||||
#else
|
||||
/**< capture post processing input resolution */
|
||||
/** capture post processing input resolution */
|
||||
#endif
|
||||
struct ia_css_resolution vf_pp_in_res;
|
||||
#ifndef ISP2401
|
||||
/**< bayer down scaling */
|
||||
/** bayer down scaling */
|
||||
#else
|
||||
/**< view finder post processing input resolution */
|
||||
/** view finder post processing input resolution */
|
||||
struct ia_css_resolution output_system_in_res;
|
||||
/**< For IPU3 only: use output_system_in_res to specify what input resolution
|
||||
/** For IPU3 only: use output_system_in_res to specify what input resolution
|
||||
will OSYS receive, this resolution is equal to the output resolution of GDC
|
||||
if not determined CSS will set output_system_in_res with main osys output pin resolution
|
||||
All other IPUs may ignore this property */
|
||||
#endif
|
||||
struct ia_css_resolution dvs_crop_out_res;
|
||||
/**< dvs crop, video only, not in use yet. Use dvs_envelope below. */
|
||||
/** dvs crop, video only, not in use yet. Use dvs_envelope below. */
|
||||
struct ia_css_frame_info output_info[IA_CSS_PIPE_MAX_OUTPUT_STAGE];
|
||||
/**< output of YUV scaling */
|
||||
/** output of YUV scaling */
|
||||
struct ia_css_frame_info vf_output_info[IA_CSS_PIPE_MAX_OUTPUT_STAGE];
|
||||
/**< output of VF YUV scaling */
|
||||
/** output of VF YUV scaling */
|
||||
struct ia_css_fw_info *acc_extension;
|
||||
/**< Pipeline extension accelerator */
|
||||
/** Pipeline extension accelerator */
|
||||
struct ia_css_fw_info **acc_stages;
|
||||
/**< Standalone accelerator stages */
|
||||
/** Standalone accelerator stages */
|
||||
uint32_t num_acc_stages;
|
||||
/**< Number of standalone accelerator stages */
|
||||
/** Number of standalone accelerator stages */
|
||||
struct ia_css_capture_config default_capture_config;
|
||||
/**< Default capture config for initial capture pipe configuration. */
|
||||
struct ia_css_resolution dvs_envelope; /**< temporary */
|
||||
/** Default capture config for initial capture pipe configuration. */
|
||||
struct ia_css_resolution dvs_envelope; /** temporary */
|
||||
enum ia_css_frame_delay dvs_frame_delay;
|
||||
/**< indicates the DVS loop delay in frame periods */
|
||||
/** indicates the DVS loop delay in frame periods */
|
||||
int acc_num_execs;
|
||||
/**< For acceleration pipes only: determine how many times the pipe
|
||||
/** For acceleration pipes only: determine how many times the pipe
|
||||
should be run. Setting this to -1 means it will run until
|
||||
stopped. */
|
||||
bool enable_dz;
|
||||
/**< Disabling digital zoom for a pipeline, if this is set to false,
|
||||
/** Disabling digital zoom for a pipeline, if this is set to false,
|
||||
then setting a zoom factor will have no effect.
|
||||
In some use cases this provides better performance. */
|
||||
bool enable_dpc;
|
||||
/**< Disabling "Defect Pixel Correction" for a pipeline, if this is set
|
||||
/** Disabling "Defect Pixel Correction" for a pipeline, if this is set
|
||||
to false. In some use cases this provides better performance. */
|
||||
bool enable_vfpp_bci;
|
||||
/**< Enabling BCI mode will cause yuv_scale binary to be picked up
|
||||
/** Enabling BCI mode will cause yuv_scale binary to be picked up
|
||||
instead of vf_pp. This only applies to viewfinder post
|
||||
processing stages. */
|
||||
#ifdef ISP2401
|
||||
bool enable_luma_only;
|
||||
/**< Enabling of monochrome mode for a pipeline. If enabled only luma processing
|
||||
/** Enabling of monochrome mode for a pipeline. If enabled only luma processing
|
||||
will be done. */
|
||||
bool enable_tnr;
|
||||
/**< Enabling of TNR (temporal noise reduction). This is only applicable to video
|
||||
/** Enabling of TNR (temporal noise reduction). This is only applicable to video
|
||||
pipes. Non video-pipes should always set this parameter to false. */
|
||||
#endif
|
||||
struct ia_css_isp_config *p_isp_config;
|
||||
/**< Pointer to ISP configuration */
|
||||
/** Pointer to ISP configuration */
|
||||
struct ia_css_resolution gdc_in_buffer_res;
|
||||
/**< GDC in buffer resolution. */
|
||||
/** GDC in buffer resolution. */
|
||||
struct ia_css_point gdc_in_buffer_offset;
|
||||
/**< GDC in buffer offset - indicates the pixel coordinates of the first valid pixel inside the buffer */
|
||||
/** GDC in buffer offset - indicates the pixel coordinates of the first valid pixel inside the buffer */
|
||||
#ifdef ISP2401
|
||||
struct ia_css_coordinate internal_frame_origin_bqs_on_sctbl;
|
||||
/**< Origin of internal frame positioned on shading table at shading correction in ISP.
|
||||
/** Origin of internal frame positioned on shading table at shading correction in ISP.
|
||||
NOTE: Shading table is larger than or equal to internal frame.
|
||||
Shading table has shading gains and internal frame has bayer data.
|
||||
The origin of internal frame is used in shading correction in ISP
|
||||
|
@ -228,20 +228,20 @@ struct ia_css_pipe_config {
|
|||
|
||||
#endif
|
||||
|
||||
/** Pipe info, this struct describes properties of a pipe after it's stream has
|
||||
/* Pipe info, this struct describes properties of a pipe after it's stream has
|
||||
* been created.
|
||||
* ~~~** DO NOT ADD NEW FIELD **~~~ This structure will be deprecated.
|
||||
* - On the Behalf of CSS-API Committee.
|
||||
*/
|
||||
struct ia_css_pipe_info {
|
||||
struct ia_css_frame_info output_info[IA_CSS_PIPE_MAX_OUTPUT_STAGE];
|
||||
/**< Info about output resolution. This contains the stride which
|
||||
/** Info about output resolution. This contains the stride which
|
||||
should be used for memory allocation. */
|
||||
struct ia_css_frame_info vf_output_info[IA_CSS_PIPE_MAX_OUTPUT_STAGE];
|
||||
/**< Info about viewfinder output resolution (optional). This contains
|
||||
/** Info about viewfinder output resolution (optional). This contains
|
||||
the stride that should be used for memory allocation. */
|
||||
struct ia_css_frame_info raw_output_info;
|
||||
/**< Raw output resolution. This indicates the resolution of the
|
||||
/** Raw output resolution. This indicates the resolution of the
|
||||
RAW bayer output for pipes that support this. Currently, only the
|
||||
still capture pipes support this feature. When this resolution is
|
||||
smaller than the input resolution, cropping will be performed by
|
||||
|
@ -252,17 +252,17 @@ struct ia_css_pipe_info {
|
|||
the input resolution - 8x8. */
|
||||
#ifdef ISP2401
|
||||
struct ia_css_resolution output_system_in_res_info;
|
||||
/**< For IPU3 only. Info about output system in resolution which is considered
|
||||
/** For IPU3 only. Info about output system in resolution which is considered
|
||||
as gdc out resolution. */
|
||||
#endif
|
||||
struct ia_css_shading_info shading_info;
|
||||
/**< After an image pipe is created, this field will contain the info
|
||||
/** After an image pipe is created, this field will contain the info
|
||||
for the shading correction. */
|
||||
struct ia_css_grid_info grid_info;
|
||||
/**< After an image pipe is created, this field will contain the grid
|
||||
/** After an image pipe is created, this field will contain the grid
|
||||
info for 3A and DVS. */
|
||||
int num_invalid_frames;
|
||||
/**< The very first frames in a started stream do not contain valid data.
|
||||
/** The very first frames in a started stream do not contain valid data.
|
||||
In this field, the CSS-firmware communicates to the host-driver how
|
||||
many initial frames will contain invalid data; this allows the
|
||||
host-driver to discard those initial invalid frames and start it's
|
||||
|
@ -299,7 +299,7 @@ struct ia_css_pipe_info {
|
|||
|
||||
#endif
|
||||
|
||||
/** @brief Load default pipe configuration
|
||||
/* @brief Load default pipe configuration
|
||||
* @param[out] pipe_config The pipe configuration.
|
||||
* @return None
|
||||
*
|
||||
|
@ -334,7 +334,7 @@ struct ia_css_pipe_info {
|
|||
*/
|
||||
void ia_css_pipe_config_defaults(struct ia_css_pipe_config *pipe_config);
|
||||
|
||||
/** @brief Create a pipe
|
||||
/* @brief Create a pipe
|
||||
* @param[in] config The pipe configuration.
|
||||
* @param[out] pipe The pipe.
|
||||
* @return IA_CSS_SUCCESS or the error code.
|
||||
|
@ -346,7 +346,7 @@ enum ia_css_err
|
|||
ia_css_pipe_create(const struct ia_css_pipe_config *config,
|
||||
struct ia_css_pipe **pipe);
|
||||
|
||||
/** @brief Destroy a pipe
|
||||
/* @brief Destroy a pipe
|
||||
* @param[in] pipe The pipe.
|
||||
* @return IA_CSS_SUCCESS or the error code.
|
||||
*
|
||||
|
@ -355,7 +355,7 @@ ia_css_pipe_create(const struct ia_css_pipe_config *config,
|
|||
enum ia_css_err
|
||||
ia_css_pipe_destroy(struct ia_css_pipe *pipe);
|
||||
|
||||
/** @brief Provides information about a pipe
|
||||
/* @brief Provides information about a pipe
|
||||
* @param[in] pipe The pipe.
|
||||
* @param[out] pipe_info The pipe information.
|
||||
* @return IA_CSS_SUCCESS or IA_CSS_ERR_INVALID_ARGUMENTS.
|
||||
|
@ -366,7 +366,7 @@ enum ia_css_err
|
|||
ia_css_pipe_get_info(const struct ia_css_pipe *pipe,
|
||||
struct ia_css_pipe_info *pipe_info);
|
||||
|
||||
/** @brief Configure a pipe with filter coefficients.
|
||||
/* @brief Configure a pipe with filter coefficients.
|
||||
* @param[in] pipe The pipe.
|
||||
* @param[in] config The pointer to ISP configuration.
|
||||
* @return IA_CSS_SUCCESS or error code upon error.
|
||||
|
@ -378,7 +378,7 @@ enum ia_css_err
|
|||
ia_css_pipe_set_isp_config(struct ia_css_pipe *pipe,
|
||||
struct ia_css_isp_config *config);
|
||||
|
||||
/** @brief Controls when the Event generator raises an IRQ to the Host.
|
||||
/* @brief Controls when the Event generator raises an IRQ to the Host.
|
||||
*
|
||||
* @param[in] pipe The pipe.
|
||||
* @param[in] or_mask Binary or of enum ia_css_event_irq_mask_type. Each pipe
|
||||
|
@ -455,7 +455,7 @@ ia_css_pipe_set_irq_mask(struct ia_css_pipe *pipe,
|
|||
unsigned int or_mask,
|
||||
unsigned int and_mask);
|
||||
|
||||
/** @brief Reads the current event IRQ mask from the CSS.
|
||||
/* @brief Reads the current event IRQ mask from the CSS.
|
||||
*
|
||||
* @param[in] pipe The pipe.
|
||||
* @param[out] or_mask Current or_mask. The bits in this mask are a binary or
|
||||
|
@ -476,7 +476,7 @@ ia_css_event_get_irq_mask(const struct ia_css_pipe *pipe,
|
|||
unsigned int *or_mask,
|
||||
unsigned int *and_mask);
|
||||
|
||||
/** @brief Queue a buffer for an image pipe.
|
||||
/* @brief Queue a buffer for an image pipe.
|
||||
*
|
||||
* @param[in] pipe The pipe that will own the buffer.
|
||||
* @param[in] buffer Pointer to the buffer.
|
||||
|
@ -498,7 +498,7 @@ enum ia_css_err
|
|||
ia_css_pipe_enqueue_buffer(struct ia_css_pipe *pipe,
|
||||
const struct ia_css_buffer *buffer);
|
||||
|
||||
/** @brief Dequeue a buffer from an image pipe.
|
||||
/* @brief Dequeue a buffer from an image pipe.
|
||||
*
|
||||
* @param[in] pipe The pipeline that the buffer queue belongs to.
|
||||
* @param[in,out] buffer The buffer is used to lookup the type which determines
|
||||
|
@ -519,7 +519,7 @@ ia_css_pipe_dequeue_buffer(struct ia_css_pipe *pipe,
|
|||
struct ia_css_buffer *buffer);
|
||||
|
||||
|
||||
/** @brief Set the state (Enable or Disable) of the Extension stage in the
|
||||
/* @brief Set the state (Enable or Disable) of the Extension stage in the
|
||||
* given pipe.
|
||||
* @param[in] pipe Pipe handle.
|
||||
* @param[in] fw_handle Extension firmware Handle (ia_css_fw_info.handle)
|
||||
|
@ -546,7 +546,7 @@ ia_css_pipe_set_qos_ext_state (struct ia_css_pipe *pipe,
|
|||
uint32_t fw_handle,
|
||||
bool enable);
|
||||
|
||||
/** @brief Get the state (Enable or Disable) of the Extension stage in the
|
||||
/* @brief Get the state (Enable or Disable) of the Extension stage in the
|
||||
* given pipe.
|
||||
* @param[in] pipe Pipe handle.
|
||||
* @param[in] fw_handle Extension firmware Handle (ia_css_fw_info.handle)
|
||||
|
@ -573,7 +573,7 @@ ia_css_pipe_get_qos_ext_state (struct ia_css_pipe *pipe,
|
|||
bool * enable);
|
||||
|
||||
#ifdef ISP2401
|
||||
/** @brief Update mapped CSS and ISP arguments for QoS pipe during SP runtime.
|
||||
/* @brief Update mapped CSS and ISP arguments for QoS pipe during SP runtime.
|
||||
* @param[in] pipe Pipe handle.
|
||||
* @param[in] fw_handle Extension firmware Handle (ia_css_fw_info.handle).
|
||||
* @param[in] css_seg Parameter memory descriptors for CSS segments.
|
||||
|
@ -595,7 +595,7 @@ ia_css_pipe_update_qos_ext_mapped_arg(struct ia_css_pipe *pipe, uint32_t fw_hand
|
|||
struct ia_css_isp_param_isp_segments *isp_seg);
|
||||
|
||||
#endif
|
||||
/** @brief Get selected configuration settings
|
||||
/* @brief Get selected configuration settings
|
||||
* @param[in] pipe The pipe.
|
||||
* @param[out] config Configuration settings.
|
||||
* @return None
|
||||
|
@ -604,7 +604,7 @@ void
|
|||
ia_css_pipe_get_isp_config(struct ia_css_pipe *pipe,
|
||||
struct ia_css_isp_config *config);
|
||||
|
||||
/** @brief Set the scaler lut on this pipe. A copy of lut is made in the inuit
|
||||
/* @brief Set the scaler lut on this pipe. A copy of lut is made in the inuit
|
||||
* address space. So the LUT can be freed by caller.
|
||||
* @param[in] pipe Pipe handle.
|
||||
* @param[in] lut Look up tabel
|
||||
|
@ -623,7 +623,7 @@ ia_css_pipe_get_isp_config(struct ia_css_pipe *pipe,
|
|||
enum ia_css_err
|
||||
ia_css_pipe_set_bci_scaler_lut( struct ia_css_pipe *pipe,
|
||||
const void *lut);
|
||||
/** @brief Checking of DVS statistics ability
|
||||
/* @brief Checking of DVS statistics ability
|
||||
* @param[in] pipe_info The pipe info.
|
||||
* @return true - has DVS statistics ability
|
||||
* false - otherwise
|
||||
|
@ -631,7 +631,7 @@ ia_css_pipe_set_bci_scaler_lut( struct ia_css_pipe *pipe,
|
|||
bool ia_css_pipe_has_dvs_stats(struct ia_css_pipe_info *pipe_info);
|
||||
|
||||
#ifdef ISP2401
|
||||
/** @brief Override the frameformat set on the output pins.
|
||||
/* @brief Override the frameformat set on the output pins.
|
||||
* @param[in] pipe Pipe handle.
|
||||
* @param[in] output_pin Pin index to set the format on
|
||||
* 0 - main output pin
|
||||
|
|
|
@ -15,11 +15,11 @@
|
|||
#ifndef __IA_CSS_PRBS_H
|
||||
#define __IA_CSS_PRBS_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* This file contains support for Pseudo Random Bit Sequence (PRBS) inputs
|
||||
*/
|
||||
|
||||
/** Enumerate the PRBS IDs.
|
||||
/* Enumerate the PRBS IDs.
|
||||
*/
|
||||
enum ia_css_prbs_id {
|
||||
IA_CSS_PRBS_ID0,
|
||||
|
@ -44,10 +44,10 @@ enum ia_css_prbs_id {
|
|||
*/
|
||||
struct ia_css_prbs_config {
|
||||
enum ia_css_prbs_id id;
|
||||
unsigned int h_blank; /**< horizontal blank */
|
||||
unsigned int v_blank; /**< vertical blank */
|
||||
int seed; /**< random seed for the 1st 2-pixel-components/clock */
|
||||
int seed1; /**< random seed for the 2nd 2-pixel-components/clock */
|
||||
unsigned int h_blank; /** horizontal blank */
|
||||
unsigned int v_blank; /** vertical blank */
|
||||
int seed; /** random seed for the 1st 2-pixel-components/clock */
|
||||
int seed1; /** random seed for the 2nd 2-pixel-components/clock */
|
||||
};
|
||||
|
||||
#endif /* __IA_CSS_PRBS_H */
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
#ifndef __IA_CSS_PROPERTIES_H
|
||||
#define __IA_CSS_PROPERTIES_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* This file contains support for retrieving properties of some hardware the CSS system
|
||||
*/
|
||||
|
||||
|
@ -24,12 +24,12 @@
|
|||
|
||||
struct ia_css_properties {
|
||||
int gdc_coord_one;
|
||||
bool l1_base_is_index; /**< Indicate whether the L1 page base
|
||||
bool l1_base_is_index; /** Indicate whether the L1 page base
|
||||
is a page index or a byte address. */
|
||||
enum ia_css_vamem_type vamem_type;
|
||||
};
|
||||
|
||||
/** @brief Get hardware properties
|
||||
/* @brief Get hardware properties
|
||||
* @param[in,out] properties The hardware properties
|
||||
* @return None
|
||||
*
|
||||
|
|
|
@ -15,13 +15,13 @@
|
|||
#ifndef __IA_CSS_SHADING_H
|
||||
#define __IA_CSS_SHADING_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* This file contains support for setting the shading table for CSS
|
||||
*/
|
||||
|
||||
#include <ia_css_types.h>
|
||||
|
||||
/** @brief Shading table
|
||||
/* @brief Shading table
|
||||
* @param[in] width Width of the shading table.
|
||||
* @param[in] height Height of the shading table.
|
||||
* @return Pointer to the shading table
|
||||
|
@ -30,7 +30,7 @@ struct ia_css_shading_table *
|
|||
ia_css_shading_table_alloc(unsigned int width,
|
||||
unsigned int height);
|
||||
|
||||
/** @brief Free shading table
|
||||
/* @brief Free shading table
|
||||
* @param[in] table Pointer to the shading table.
|
||||
* @return None
|
||||
*/
|
||||
|
|
|
@ -48,7 +48,7 @@ struct ia_css_stream {
|
|||
bool started;
|
||||
};
|
||||
|
||||
/** @brief Get a binary in the stream, which binary has the shading correction.
|
||||
/* @brief Get a binary in the stream, which binary has the shading correction.
|
||||
*
|
||||
* @param[in] stream: The stream.
|
||||
* @return The binary which has the shading correction.
|
||||
|
@ -76,7 +76,7 @@ sh_css_invalidate_params(struct ia_css_stream *stream);
|
|||
const struct ia_css_fpn_table *
|
||||
ia_css_get_fpn_table(struct ia_css_stream *stream);
|
||||
|
||||
/** @brief Get a pointer to the shading table.
|
||||
/* @brief Get a pointer to the shading table.
|
||||
*
|
||||
* @param[in] stream: The stream.
|
||||
* @return The pointer to the shading table.
|
||||
|
|
|
@ -15,74 +15,74 @@
|
|||
#ifndef __IA_CSS_STREAM_FORMAT_H
|
||||
#define __IA_CSS_STREAM_FORMAT_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* This file contains formats usable for ISP streaming input
|
||||
*/
|
||||
|
||||
#include <type_support.h> /* bool */
|
||||
|
||||
/** The ISP streaming input interface supports the following formats.
|
||||
/* The ISP streaming input interface supports the following formats.
|
||||
* These match the corresponding MIPI formats.
|
||||
*/
|
||||
enum ia_css_stream_format {
|
||||
IA_CSS_STREAM_FORMAT_YUV420_8_LEGACY, /**< 8 bits per subpixel */
|
||||
IA_CSS_STREAM_FORMAT_YUV420_8, /**< 8 bits per subpixel */
|
||||
IA_CSS_STREAM_FORMAT_YUV420_10, /**< 10 bits per subpixel */
|
||||
IA_CSS_STREAM_FORMAT_YUV420_16, /**< 16 bits per subpixel */
|
||||
IA_CSS_STREAM_FORMAT_YUV422_8, /**< UYVY..UYVY, 8 bits per subpixel */
|
||||
IA_CSS_STREAM_FORMAT_YUV422_10, /**< UYVY..UYVY, 10 bits per subpixel */
|
||||
IA_CSS_STREAM_FORMAT_YUV422_16, /**< UYVY..UYVY, 16 bits per subpixel */
|
||||
IA_CSS_STREAM_FORMAT_RGB_444, /**< BGR..BGR, 4 bits per subpixel */
|
||||
IA_CSS_STREAM_FORMAT_RGB_555, /**< BGR..BGR, 5 bits per subpixel */
|
||||
IA_CSS_STREAM_FORMAT_RGB_565, /**< BGR..BGR, 5 bits B and R, 6 bits G */
|
||||
IA_CSS_STREAM_FORMAT_RGB_666, /**< BGR..BGR, 6 bits per subpixel */
|
||||
IA_CSS_STREAM_FORMAT_RGB_888, /**< BGR..BGR, 8 bits per subpixel */
|
||||
IA_CSS_STREAM_FORMAT_RAW_6, /**< RAW data, 6 bits per pixel */
|
||||
IA_CSS_STREAM_FORMAT_RAW_7, /**< RAW data, 7 bits per pixel */
|
||||
IA_CSS_STREAM_FORMAT_RAW_8, /**< RAW data, 8 bits per pixel */
|
||||
IA_CSS_STREAM_FORMAT_RAW_10, /**< RAW data, 10 bits per pixel */
|
||||
IA_CSS_STREAM_FORMAT_RAW_12, /**< RAW data, 12 bits per pixel */
|
||||
IA_CSS_STREAM_FORMAT_RAW_14, /**< RAW data, 14 bits per pixel */
|
||||
IA_CSS_STREAM_FORMAT_RAW_16, /**< RAW data, 16 bits per pixel, which is
|
||||
IA_CSS_STREAM_FORMAT_YUV420_8_LEGACY, /** 8 bits per subpixel */
|
||||
IA_CSS_STREAM_FORMAT_YUV420_8, /** 8 bits per subpixel */
|
||||
IA_CSS_STREAM_FORMAT_YUV420_10, /** 10 bits per subpixel */
|
||||
IA_CSS_STREAM_FORMAT_YUV420_16, /** 16 bits per subpixel */
|
||||
IA_CSS_STREAM_FORMAT_YUV422_8, /** UYVY..UYVY, 8 bits per subpixel */
|
||||
IA_CSS_STREAM_FORMAT_YUV422_10, /** UYVY..UYVY, 10 bits per subpixel */
|
||||
IA_CSS_STREAM_FORMAT_YUV422_16, /** UYVY..UYVY, 16 bits per subpixel */
|
||||
IA_CSS_STREAM_FORMAT_RGB_444, /** BGR..BGR, 4 bits per subpixel */
|
||||
IA_CSS_STREAM_FORMAT_RGB_555, /** BGR..BGR, 5 bits per subpixel */
|
||||
IA_CSS_STREAM_FORMAT_RGB_565, /** BGR..BGR, 5 bits B and R, 6 bits G */
|
||||
IA_CSS_STREAM_FORMAT_RGB_666, /** BGR..BGR, 6 bits per subpixel */
|
||||
IA_CSS_STREAM_FORMAT_RGB_888, /** BGR..BGR, 8 bits per subpixel */
|
||||
IA_CSS_STREAM_FORMAT_RAW_6, /** RAW data, 6 bits per pixel */
|
||||
IA_CSS_STREAM_FORMAT_RAW_7, /** RAW data, 7 bits per pixel */
|
||||
IA_CSS_STREAM_FORMAT_RAW_8, /** RAW data, 8 bits per pixel */
|
||||
IA_CSS_STREAM_FORMAT_RAW_10, /** RAW data, 10 bits per pixel */
|
||||
IA_CSS_STREAM_FORMAT_RAW_12, /** RAW data, 12 bits per pixel */
|
||||
IA_CSS_STREAM_FORMAT_RAW_14, /** RAW data, 14 bits per pixel */
|
||||
IA_CSS_STREAM_FORMAT_RAW_16, /** RAW data, 16 bits per pixel, which is
|
||||
not specified in CSI-MIPI standard*/
|
||||
IA_CSS_STREAM_FORMAT_BINARY_8, /**< Binary byte stream, which is target at
|
||||
IA_CSS_STREAM_FORMAT_BINARY_8, /** Binary byte stream, which is target at
|
||||
JPEG. */
|
||||
|
||||
/** CSI2-MIPI specific format: Generic short packet data. It is used to
|
||||
/* CSI2-MIPI specific format: Generic short packet data. It is used to
|
||||
* keep the timing information for the opening/closing of shutters,
|
||||
* triggering of flashes and etc.
|
||||
*/
|
||||
IA_CSS_STREAM_FORMAT_GENERIC_SHORT1, /**< Generic Short Packet Code 1 */
|
||||
IA_CSS_STREAM_FORMAT_GENERIC_SHORT2, /**< Generic Short Packet Code 2 */
|
||||
IA_CSS_STREAM_FORMAT_GENERIC_SHORT3, /**< Generic Short Packet Code 3 */
|
||||
IA_CSS_STREAM_FORMAT_GENERIC_SHORT4, /**< Generic Short Packet Code 4 */
|
||||
IA_CSS_STREAM_FORMAT_GENERIC_SHORT5, /**< Generic Short Packet Code 5 */
|
||||
IA_CSS_STREAM_FORMAT_GENERIC_SHORT6, /**< Generic Short Packet Code 6 */
|
||||
IA_CSS_STREAM_FORMAT_GENERIC_SHORT7, /**< Generic Short Packet Code 7 */
|
||||
IA_CSS_STREAM_FORMAT_GENERIC_SHORT8, /**< Generic Short Packet Code 8 */
|
||||
IA_CSS_STREAM_FORMAT_GENERIC_SHORT1, /** Generic Short Packet Code 1 */
|
||||
IA_CSS_STREAM_FORMAT_GENERIC_SHORT2, /** Generic Short Packet Code 2 */
|
||||
IA_CSS_STREAM_FORMAT_GENERIC_SHORT3, /** Generic Short Packet Code 3 */
|
||||
IA_CSS_STREAM_FORMAT_GENERIC_SHORT4, /** Generic Short Packet Code 4 */
|
||||
IA_CSS_STREAM_FORMAT_GENERIC_SHORT5, /** Generic Short Packet Code 5 */
|
||||
IA_CSS_STREAM_FORMAT_GENERIC_SHORT6, /** Generic Short Packet Code 6 */
|
||||
IA_CSS_STREAM_FORMAT_GENERIC_SHORT7, /** Generic Short Packet Code 7 */
|
||||
IA_CSS_STREAM_FORMAT_GENERIC_SHORT8, /** Generic Short Packet Code 8 */
|
||||
|
||||
/** CSI2-MIPI specific format: YUV data.
|
||||
/* CSI2-MIPI specific format: YUV data.
|
||||
*/
|
||||
IA_CSS_STREAM_FORMAT_YUV420_8_SHIFT, /**< YUV420 8-bit (Chroma Shifted Pixel Sampling) */
|
||||
IA_CSS_STREAM_FORMAT_YUV420_10_SHIFT, /**< YUV420 8-bit (Chroma Shifted Pixel Sampling) */
|
||||
IA_CSS_STREAM_FORMAT_YUV420_8_SHIFT, /** YUV420 8-bit (Chroma Shifted Pixel Sampling) */
|
||||
IA_CSS_STREAM_FORMAT_YUV420_10_SHIFT, /** YUV420 8-bit (Chroma Shifted Pixel Sampling) */
|
||||
|
||||
/** CSI2-MIPI specific format: Generic long packet data
|
||||
/* CSI2-MIPI specific format: Generic long packet data
|
||||
*/
|
||||
IA_CSS_STREAM_FORMAT_EMBEDDED, /**< Embedded 8-bit non Image Data */
|
||||
IA_CSS_STREAM_FORMAT_EMBEDDED, /** Embedded 8-bit non Image Data */
|
||||
|
||||
/** CSI2-MIPI specific format: User defined byte-based data. For example,
|
||||
/* CSI2-MIPI specific format: User defined byte-based data. For example,
|
||||
* the data transmitter (e.g. the SoC sensor) can keep the JPEG data as
|
||||
* the User Defined Data Type 4 and the MPEG data as the
|
||||
* User Defined Data Type 7.
|
||||
*/
|
||||
IA_CSS_STREAM_FORMAT_USER_DEF1, /**< User defined 8-bit data type 1 */
|
||||
IA_CSS_STREAM_FORMAT_USER_DEF2, /**< User defined 8-bit data type 2 */
|
||||
IA_CSS_STREAM_FORMAT_USER_DEF3, /**< User defined 8-bit data type 3 */
|
||||
IA_CSS_STREAM_FORMAT_USER_DEF4, /**< User defined 8-bit data type 4 */
|
||||
IA_CSS_STREAM_FORMAT_USER_DEF5, /**< User defined 8-bit data type 5 */
|
||||
IA_CSS_STREAM_FORMAT_USER_DEF6, /**< User defined 8-bit data type 6 */
|
||||
IA_CSS_STREAM_FORMAT_USER_DEF7, /**< User defined 8-bit data type 7 */
|
||||
IA_CSS_STREAM_FORMAT_USER_DEF8, /**< User defined 8-bit data type 8 */
|
||||
IA_CSS_STREAM_FORMAT_USER_DEF1, /** User defined 8-bit data type 1 */
|
||||
IA_CSS_STREAM_FORMAT_USER_DEF2, /** User defined 8-bit data type 2 */
|
||||
IA_CSS_STREAM_FORMAT_USER_DEF3, /** User defined 8-bit data type 3 */
|
||||
IA_CSS_STREAM_FORMAT_USER_DEF4, /** User defined 8-bit data type 4 */
|
||||
IA_CSS_STREAM_FORMAT_USER_DEF5, /** User defined 8-bit data type 5 */
|
||||
IA_CSS_STREAM_FORMAT_USER_DEF6, /** User defined 8-bit data type 6 */
|
||||
IA_CSS_STREAM_FORMAT_USER_DEF7, /** User defined 8-bit data type 7 */
|
||||
IA_CSS_STREAM_FORMAT_USER_DEF8, /** User defined 8-bit data type 8 */
|
||||
};
|
||||
|
||||
#define IA_CSS_STREAM_FORMAT_NUM IA_CSS_STREAM_FORMAT_USER_DEF8
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
#ifndef __IA_CSS_STREAM_PUBLIC_H
|
||||
#define __IA_CSS_STREAM_PUBLIC_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* This file contains support for configuring and controlling streams
|
||||
*/
|
||||
|
||||
|
@ -27,26 +27,26 @@
|
|||
#include "ia_css_prbs.h"
|
||||
#include "ia_css_input_port.h"
|
||||
|
||||
/** Input modes, these enumerate all supported input modes.
|
||||
/* Input modes, these enumerate all supported input modes.
|
||||
* Note that not all ISP modes support all input modes.
|
||||
*/
|
||||
enum ia_css_input_mode {
|
||||
IA_CSS_INPUT_MODE_SENSOR, /**< data from sensor */
|
||||
IA_CSS_INPUT_MODE_FIFO, /**< data from input-fifo */
|
||||
IA_CSS_INPUT_MODE_TPG, /**< data from test-pattern generator */
|
||||
IA_CSS_INPUT_MODE_PRBS, /**< data from pseudo-random bit stream */
|
||||
IA_CSS_INPUT_MODE_MEMORY, /**< data from a frame in memory */
|
||||
IA_CSS_INPUT_MODE_BUFFERED_SENSOR /**< data is sent through mipi buffer */
|
||||
IA_CSS_INPUT_MODE_SENSOR, /** data from sensor */
|
||||
IA_CSS_INPUT_MODE_FIFO, /** data from input-fifo */
|
||||
IA_CSS_INPUT_MODE_TPG, /** data from test-pattern generator */
|
||||
IA_CSS_INPUT_MODE_PRBS, /** data from pseudo-random bit stream */
|
||||
IA_CSS_INPUT_MODE_MEMORY, /** data from a frame in memory */
|
||||
IA_CSS_INPUT_MODE_BUFFERED_SENSOR /** data is sent through mipi buffer */
|
||||
};
|
||||
|
||||
/** Structure of the MIPI buffer configuration
|
||||
/* Structure of the MIPI buffer configuration
|
||||
*/
|
||||
struct ia_css_mipi_buffer_config {
|
||||
unsigned int size_mem_words; /**< The frame size in the system memory
|
||||
unsigned int size_mem_words; /** The frame size in the system memory
|
||||
words (32B) */
|
||||
bool contiguous; /**< Allocated memory physically
|
||||
bool contiguous; /** Allocated memory physically
|
||||
contiguously or not. \deprecated{Will be false always.}*/
|
||||
unsigned int nof_mipi_buffers; /**< The number of MIPI buffers required for this
|
||||
unsigned int nof_mipi_buffers; /** The number of MIPI buffers required for this
|
||||
stream */
|
||||
};
|
||||
|
||||
|
@ -57,44 +57,44 @@ enum {
|
|||
IA_CSS_STREAM_MAX_ISYS_STREAM_PER_CH
|
||||
};
|
||||
|
||||
/** This is input data configuration for one MIPI data type. We can have
|
||||
/* This is input data configuration for one MIPI data type. We can have
|
||||
* multiple of this in one virtual channel.
|
||||
*/
|
||||
struct ia_css_stream_isys_stream_config {
|
||||
struct ia_css_resolution input_res; /**< Resolution of input data */
|
||||
enum ia_css_stream_format format; /**< Format of input stream. This data
|
||||
struct ia_css_resolution input_res; /** Resolution of input data */
|
||||
enum ia_css_stream_format format; /** Format of input stream. This data
|
||||
format will be mapped to MIPI data
|
||||
type internally. */
|
||||
int linked_isys_stream_id; /**< default value is -1, other value means
|
||||
int linked_isys_stream_id; /** default value is -1, other value means
|
||||
current isys_stream shares the same buffer with
|
||||
indicated isys_stream*/
|
||||
bool valid; /**< indicate whether other fields have valid value */
|
||||
bool valid; /** indicate whether other fields have valid value */
|
||||
};
|
||||
|
||||
struct ia_css_stream_input_config {
|
||||
struct ia_css_resolution input_res; /**< Resolution of input data */
|
||||
struct ia_css_resolution effective_res; /**< Resolution of input data.
|
||||
struct ia_css_resolution input_res; /** Resolution of input data */
|
||||
struct ia_css_resolution effective_res; /** Resolution of input data.
|
||||
Used for CSS 2400/1 System and deprecated for other
|
||||
systems (replaced by input_effective_res in
|
||||
ia_css_pipe_config) */
|
||||
enum ia_css_stream_format format; /**< Format of input stream. This data
|
||||
enum ia_css_stream_format format; /** Format of input stream. This data
|
||||
format will be mapped to MIPI data
|
||||
type internally. */
|
||||
enum ia_css_bayer_order bayer_order; /**< Bayer order for RAW streams */
|
||||
enum ia_css_bayer_order bayer_order; /** Bayer order for RAW streams */
|
||||
};
|
||||
|
||||
|
||||
/** Input stream description. This describes how input will flow into the
|
||||
/* Input stream description. This describes how input will flow into the
|
||||
* CSS. This is used to program the CSS hardware.
|
||||
*/
|
||||
struct ia_css_stream_config {
|
||||
enum ia_css_input_mode mode; /**< Input mode */
|
||||
enum ia_css_input_mode mode; /** Input mode */
|
||||
union {
|
||||
struct ia_css_input_port port; /**< Port, for sensor only. */
|
||||
struct ia_css_tpg_config tpg; /**< TPG configuration */
|
||||
struct ia_css_prbs_config prbs; /**< PRBS configuration */
|
||||
} source; /**< Source of input data */
|
||||
unsigned int channel_id; /**< Channel on which input data
|
||||
struct ia_css_input_port port; /** Port, for sensor only. */
|
||||
struct ia_css_tpg_config tpg; /** TPG configuration */
|
||||
struct ia_css_prbs_config prbs; /** PRBS configuration */
|
||||
} source; /** Source of input data */
|
||||
unsigned int channel_id; /** Channel on which input data
|
||||
will arrive. Use this field
|
||||
to specify virtual channel id.
|
||||
Valid values are: 0, 1, 2, 3 */
|
||||
|
@ -110,29 +110,29 @@ struct ia_css_stream_config {
|
|||
* and will be deprecated. In the future,all platforms will use the N*N method
|
||||
*/
|
||||
#endif
|
||||
unsigned int sensor_binning_factor; /**< Binning factor used by sensor
|
||||
unsigned int sensor_binning_factor; /** Binning factor used by sensor
|
||||
to produce image data. This is
|
||||
used for shading correction. */
|
||||
unsigned int pixels_per_clock; /**< Number of pixels per clock, which can be
|
||||
unsigned int pixels_per_clock; /** Number of pixels per clock, which can be
|
||||
1, 2 or 4. */
|
||||
bool online; /**< offline will activate RAW copy on SP, use this for
|
||||
bool online; /** offline will activate RAW copy on SP, use this for
|
||||
continuous capture. */
|
||||
/* ISYS2401 usage: ISP receives data directly from sensor, no copy. */
|
||||
unsigned init_num_cont_raw_buf; /**< initial number of raw buffers to
|
||||
unsigned init_num_cont_raw_buf; /** initial number of raw buffers to
|
||||
allocate */
|
||||
unsigned target_num_cont_raw_buf; /**< total number of raw buffers to
|
||||
unsigned target_num_cont_raw_buf; /** total number of raw buffers to
|
||||
allocate */
|
||||
bool pack_raw_pixels; /**< Pack pixels in the raw buffers */
|
||||
bool continuous; /**< Use SP copy feature to continuously capture frames
|
||||
bool pack_raw_pixels; /** Pack pixels in the raw buffers */
|
||||
bool continuous; /** Use SP copy feature to continuously capture frames
|
||||
to system memory and run pipes in offline mode */
|
||||
bool disable_cont_viewfinder; /**< disable continous viewfinder for ZSL use case */
|
||||
int32_t flash_gpio_pin; /**< pin on which the flash is connected, -1 for no flash */
|
||||
int left_padding; /**< The number of input-formatter left-paddings, -1 for default from binary.*/
|
||||
struct ia_css_mipi_buffer_config mipi_buffer_config; /**< mipi buffer configuration */
|
||||
struct ia_css_metadata_config metadata_config; /**< Metadata configuration. */
|
||||
bool ia_css_enable_raw_buffer_locking; /**< Enable Raw Buffer Locking for HALv3 Support */
|
||||
bool disable_cont_viewfinder; /** disable continous viewfinder for ZSL use case */
|
||||
int32_t flash_gpio_pin; /** pin on which the flash is connected, -1 for no flash */
|
||||
int left_padding; /** The number of input-formatter left-paddings, -1 for default from binary.*/
|
||||
struct ia_css_mipi_buffer_config mipi_buffer_config; /** mipi buffer configuration */
|
||||
struct ia_css_metadata_config metadata_config; /** Metadata configuration. */
|
||||
bool ia_css_enable_raw_buffer_locking; /** Enable Raw Buffer Locking for HALv3 Support */
|
||||
bool lock_all;
|
||||
/**< Lock all RAW buffers (true) or lock only buffers processed by
|
||||
/** Lock all RAW buffers (true) or lock only buffers processed by
|
||||
video or preview pipe (false).
|
||||
This setting needs to be enabled to allow raw buffer locking
|
||||
without continuous viewfinder. */
|
||||
|
@ -140,15 +140,15 @@ struct ia_css_stream_config {
|
|||
|
||||
struct ia_css_stream;
|
||||
|
||||
/** Stream info, this struct describes properties of a stream after it has been
|
||||
/* Stream info, this struct describes properties of a stream after it has been
|
||||
* created.
|
||||
*/
|
||||
struct ia_css_stream_info {
|
||||
struct ia_css_metadata_info metadata_info;
|
||||
/**< Info about the metadata layout, this contains the stride. */
|
||||
/** Info about the metadata layout, this contains the stride. */
|
||||
};
|
||||
|
||||
/** @brief Load default stream configuration
|
||||
/* @brief Load default stream configuration
|
||||
* @param[in,out] stream_config The stream configuration.
|
||||
* @return None
|
||||
*
|
||||
|
@ -165,7 +165,7 @@ void ia_css_stream_config_defaults(struct ia_css_stream_config *stream_config);
|
|||
* create the internal structures and fill in the configuration data and pipes
|
||||
*/
|
||||
|
||||
/** @brief Creates a stream
|
||||
/* @brief Creates a stream
|
||||
* @param[in] stream_config The stream configuration.
|
||||
* @param[in] num_pipes The number of pipes to incorporate in the stream.
|
||||
* @param[in] pipes The pipes.
|
||||
|
@ -180,7 +180,7 @@ ia_css_stream_create(const struct ia_css_stream_config *stream_config,
|
|||
struct ia_css_pipe *pipes[],
|
||||
struct ia_css_stream **stream);
|
||||
|
||||
/** @brief Destroys a stream
|
||||
/* @brief Destroys a stream
|
||||
* @param[in] stream The stream.
|
||||
* @return IA_CSS_SUCCESS or the error code.
|
||||
*
|
||||
|
@ -189,7 +189,7 @@ ia_css_stream_create(const struct ia_css_stream_config *stream_config,
|
|||
enum ia_css_err
|
||||
ia_css_stream_destroy(struct ia_css_stream *stream);
|
||||
|
||||
/** @brief Provides information about a stream
|
||||
/* @brief Provides information about a stream
|
||||
* @param[in] stream The stream.
|
||||
* @param[out] stream_info The information about the stream.
|
||||
* @return IA_CSS_SUCCESS or the error code.
|
||||
|
@ -200,7 +200,7 @@ enum ia_css_err
|
|||
ia_css_stream_get_info(const struct ia_css_stream *stream,
|
||||
struct ia_css_stream_info *stream_info);
|
||||
|
||||
/** @brief load (rebuild) a stream that was unloaded.
|
||||
/* @brief load (rebuild) a stream that was unloaded.
|
||||
* @param[in] stream The stream
|
||||
* @return IA_CSS_SUCCESS or the error code
|
||||
*
|
||||
|
@ -210,7 +210,7 @@ ia_css_stream_get_info(const struct ia_css_stream *stream,
|
|||
enum ia_css_err
|
||||
ia_css_stream_load(struct ia_css_stream *stream);
|
||||
|
||||
/** @brief Starts the stream.
|
||||
/* @brief Starts the stream.
|
||||
* @param[in] stream The stream.
|
||||
* @return IA_CSS_SUCCESS or the error code.
|
||||
*
|
||||
|
@ -223,7 +223,7 @@ ia_css_stream_load(struct ia_css_stream *stream);
|
|||
enum ia_css_err
|
||||
ia_css_stream_start(struct ia_css_stream *stream);
|
||||
|
||||
/** @brief Stop the stream.
|
||||
/* @brief Stop the stream.
|
||||
* @param[in] stream The stream.
|
||||
* @return IA_CSS_SUCCESS or the error code.
|
||||
*
|
||||
|
@ -233,7 +233,7 @@ ia_css_stream_start(struct ia_css_stream *stream);
|
|||
enum ia_css_err
|
||||
ia_css_stream_stop(struct ia_css_stream *stream);
|
||||
|
||||
/** @brief Check if a stream has stopped
|
||||
/* @brief Check if a stream has stopped
|
||||
* @param[in] stream The stream.
|
||||
* @return boolean flag
|
||||
*
|
||||
|
@ -242,7 +242,7 @@ ia_css_stream_stop(struct ia_css_stream *stream);
|
|||
bool
|
||||
ia_css_stream_has_stopped(struct ia_css_stream *stream);
|
||||
|
||||
/** @brief destroy a stream according to the stream seed previosly saved in the seed array.
|
||||
/* @brief destroy a stream according to the stream seed previosly saved in the seed array.
|
||||
* @param[in] stream The stream.
|
||||
* @return IA_CSS_SUCCESS (no other errors are generated now)
|
||||
*
|
||||
|
@ -251,7 +251,7 @@ ia_css_stream_has_stopped(struct ia_css_stream *stream);
|
|||
enum ia_css_err
|
||||
ia_css_stream_unload(struct ia_css_stream *stream);
|
||||
|
||||
/** @brief Returns stream format
|
||||
/* @brief Returns stream format
|
||||
* @param[in] stream The stream.
|
||||
* @return format of the string
|
||||
*
|
||||
|
@ -260,7 +260,7 @@ ia_css_stream_unload(struct ia_css_stream *stream);
|
|||
enum ia_css_stream_format
|
||||
ia_css_stream_get_format(const struct ia_css_stream *stream);
|
||||
|
||||
/** @brief Check if the stream is configured for 2 pixels per clock
|
||||
/* @brief Check if the stream is configured for 2 pixels per clock
|
||||
* @param[in] stream The stream.
|
||||
* @return boolean flag
|
||||
*
|
||||
|
@ -270,7 +270,7 @@ ia_css_stream_get_format(const struct ia_css_stream *stream);
|
|||
bool
|
||||
ia_css_stream_get_two_pixels_per_clock(const struct ia_css_stream *stream);
|
||||
|
||||
/** @brief Sets the output frame stride (at the last pipe)
|
||||
/* @brief Sets the output frame stride (at the last pipe)
|
||||
* @param[in] stream The stream
|
||||
* @param[in] output_padded_width - the output buffer stride.
|
||||
* @return ia_css_err
|
||||
|
@ -280,7 +280,7 @@ ia_css_stream_get_two_pixels_per_clock(const struct ia_css_stream *stream);
|
|||
enum ia_css_err
|
||||
ia_css_stream_set_output_padded_width(struct ia_css_stream *stream, unsigned int output_padded_width);
|
||||
|
||||
/** @brief Return max number of continuous RAW frames.
|
||||
/* @brief Return max number of continuous RAW frames.
|
||||
* @param[in] stream The stream.
|
||||
* @param[out] buffer_depth The maximum number of continuous RAW frames.
|
||||
* @return IA_CSS_SUCCESS or IA_CSS_ERR_INVALID_ARGUMENTS
|
||||
|
@ -291,7 +291,7 @@ ia_css_stream_set_output_padded_width(struct ia_css_stream *stream, unsigned int
|
|||
enum ia_css_err
|
||||
ia_css_stream_get_max_buffer_depth(struct ia_css_stream *stream, int *buffer_depth);
|
||||
|
||||
/** @brief Set nr of continuous RAW frames to use.
|
||||
/* @brief Set nr of continuous RAW frames to use.
|
||||
*
|
||||
* @param[in] stream The stream.
|
||||
* @param[in] buffer_depth Number of frames to set.
|
||||
|
@ -302,7 +302,7 @@ ia_css_stream_get_max_buffer_depth(struct ia_css_stream *stream, int *buffer_dep
|
|||
enum ia_css_err
|
||||
ia_css_stream_set_buffer_depth(struct ia_css_stream *stream, int buffer_depth);
|
||||
|
||||
/** @brief Get number of continuous RAW frames to use.
|
||||
/* @brief Get number of continuous RAW frames to use.
|
||||
* @param[in] stream The stream.
|
||||
* @param[out] buffer_depth The number of frames to use
|
||||
* @return IA_CSS_SUCCESS or IA_CSS_ERR_INVALID_ARGUMENTS
|
||||
|
@ -315,7 +315,7 @@ ia_css_stream_get_buffer_depth(struct ia_css_stream *stream, int *buffer_depth);
|
|||
|
||||
/* ===== CAPTURE ===== */
|
||||
|
||||
/** @brief Configure the continuous capture
|
||||
/* @brief Configure the continuous capture
|
||||
*
|
||||
* @param[in] stream The stream.
|
||||
* @param[in] num_captures The number of RAW frames to be processed to
|
||||
|
@ -347,7 +347,7 @@ ia_css_stream_capture(struct ia_css_stream *stream,
|
|||
unsigned int skip,
|
||||
int offset);
|
||||
|
||||
/** @brief Specify which raw frame to tag based on exp_id found in frame info
|
||||
/* @brief Specify which raw frame to tag based on exp_id found in frame info
|
||||
*
|
||||
* @param[in] stream The stream.
|
||||
* @param[in] exp_id The exposure id of the raw frame to tag.
|
||||
|
@ -363,7 +363,7 @@ ia_css_stream_capture_frame(struct ia_css_stream *stream,
|
|||
|
||||
/* ===== VIDEO ===== */
|
||||
|
||||
/** @brief Send streaming data into the css input FIFO
|
||||
/* @brief Send streaming data into the css input FIFO
|
||||
*
|
||||
* @param[in] stream The stream.
|
||||
* @param[in] data Pointer to the pixels to be send.
|
||||
|
@ -395,7 +395,7 @@ ia_css_stream_send_input_frame(const struct ia_css_stream *stream,
|
|||
unsigned int width,
|
||||
unsigned int height);
|
||||
|
||||
/** @brief Start an input frame on the CSS input FIFO.
|
||||
/* @brief Start an input frame on the CSS input FIFO.
|
||||
*
|
||||
* @param[in] stream The stream.
|
||||
* @return None
|
||||
|
@ -411,7 +411,7 @@ ia_css_stream_send_input_frame(const struct ia_css_stream *stream,
|
|||
void
|
||||
ia_css_stream_start_input_frame(const struct ia_css_stream *stream);
|
||||
|
||||
/** @brief Send a line of input data into the CSS input FIFO.
|
||||
/* @brief Send a line of input data into the CSS input FIFO.
|
||||
*
|
||||
* @param[in] stream The stream.
|
||||
* @param[in] data Array of the first line of image data.
|
||||
|
@ -435,7 +435,7 @@ ia_css_stream_send_input_line(const struct ia_css_stream *stream,
|
|||
const unsigned short *data2,
|
||||
unsigned int width2);
|
||||
|
||||
/** @brief Send a line of input embedded data into the CSS input FIFO.
|
||||
/* @brief Send a line of input embedded data into the CSS input FIFO.
|
||||
*
|
||||
* @param[in] stream Pointer of the stream.
|
||||
* @param[in] format Format of the embedded data.
|
||||
|
@ -457,7 +457,7 @@ ia_css_stream_send_input_embedded_line(const struct ia_css_stream *stream,
|
|||
const unsigned short *data,
|
||||
unsigned int width);
|
||||
|
||||
/** @brief End an input frame on the CSS input FIFO.
|
||||
/* @brief End an input frame on the CSS input FIFO.
|
||||
*
|
||||
* @param[in] stream The stream.
|
||||
* @return None
|
||||
|
@ -467,7 +467,7 @@ ia_css_stream_send_input_embedded_line(const struct ia_css_stream *stream,
|
|||
void
|
||||
ia_css_stream_end_input_frame(const struct ia_css_stream *stream);
|
||||
|
||||
/** @brief send a request flash command to SP
|
||||
/* @brief send a request flash command to SP
|
||||
*
|
||||
* @param[in] stream The stream.
|
||||
* @return None
|
||||
|
@ -481,7 +481,7 @@ ia_css_stream_end_input_frame(const struct ia_css_stream *stream);
|
|||
void
|
||||
ia_css_stream_request_flash(struct ia_css_stream *stream);
|
||||
|
||||
/** @brief Configure a stream with filter coefficients.
|
||||
/* @brief Configure a stream with filter coefficients.
|
||||
* @deprecated {Replaced by
|
||||
* ia_css_pipe_set_isp_config_on_pipe()}
|
||||
*
|
||||
|
@ -503,7 +503,7 @@ ia_css_stream_set_isp_config_on_pipe(struct ia_css_stream *stream,
|
|||
const struct ia_css_isp_config *config,
|
||||
struct ia_css_pipe *pipe);
|
||||
|
||||
/** @brief Configure a stream with filter coefficients.
|
||||
/* @brief Configure a stream with filter coefficients.
|
||||
* @deprecated {Replaced by
|
||||
* ia_css_pipe_set_isp_config()}
|
||||
* @param[in] stream The stream.
|
||||
|
@ -523,7 +523,7 @@ ia_css_stream_set_isp_config(
|
|||
struct ia_css_stream *stream,
|
||||
const struct ia_css_isp_config *config);
|
||||
|
||||
/** @brief Get selected configuration settings
|
||||
/* @brief Get selected configuration settings
|
||||
* @param[in] stream The stream.
|
||||
* @param[out] config Configuration settings.
|
||||
* @return None
|
||||
|
@ -532,7 +532,7 @@ void
|
|||
ia_css_stream_get_isp_config(const struct ia_css_stream *stream,
|
||||
struct ia_css_isp_config *config);
|
||||
|
||||
/** @brief allocate continuous raw frames for continuous capture
|
||||
/* @brief allocate continuous raw frames for continuous capture
|
||||
* @param[in] stream The stream.
|
||||
* @return IA_CSS_SUCCESS or error code.
|
||||
*
|
||||
|
@ -544,7 +544,7 @@ ia_css_stream_get_isp_config(const struct ia_css_stream *stream,
|
|||
enum ia_css_err
|
||||
ia_css_alloc_continuous_frame_remain(struct ia_css_stream *stream);
|
||||
|
||||
/** @brief allocate continuous raw frames for continuous capture
|
||||
/* @brief allocate continuous raw frames for continuous capture
|
||||
* @param[in] stream The stream.
|
||||
* @return IA_CSS_SUCCESS or error code.
|
||||
*
|
||||
|
@ -555,7 +555,7 @@ ia_css_alloc_continuous_frame_remain(struct ia_css_stream *stream);
|
|||
enum ia_css_err
|
||||
ia_css_update_continuous_frames(struct ia_css_stream *stream);
|
||||
|
||||
/** @brief ia_css_unlock_raw_frame . unlock a raw frame (HALv3 Support)
|
||||
/* @brief ia_css_unlock_raw_frame . unlock a raw frame (HALv3 Support)
|
||||
* @param[in] stream The stream.
|
||||
* @param[in] exp_id exposure id that uniquely identifies the locked Raw Frame Buffer
|
||||
* @return ia_css_err IA_CSS_SUCCESS or error code
|
||||
|
@ -567,7 +567,7 @@ ia_css_update_continuous_frames(struct ia_css_stream *stream);
|
|||
enum ia_css_err
|
||||
ia_css_unlock_raw_frame(struct ia_css_stream *stream, uint32_t exp_id);
|
||||
|
||||
/** @brief ia_css_en_dz_capt_pipe . Enable/Disable digital zoom for capture pipe
|
||||
/* @brief ia_css_en_dz_capt_pipe . Enable/Disable digital zoom for capture pipe
|
||||
* @param[in] stream The stream.
|
||||
* @param[in] enable - true, disable - false
|
||||
* @return None
|
||||
|
|
|
@ -31,47 +31,47 @@ more details.
|
|||
#ifndef __IA_CSS_TIMER_H
|
||||
#define __IA_CSS_TIMER_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* Timer interface definitions
|
||||
*/
|
||||
#include <type_support.h> /* for uint32_t */
|
||||
#include "ia_css_err.h"
|
||||
|
||||
/** @brief timer reading definition */
|
||||
/* @brief timer reading definition */
|
||||
typedef uint32_t clock_value_t;
|
||||
|
||||
/** @brief 32 bit clock tick,(timestamp based on timer-value of CSS-internal timer)*/
|
||||
/* @brief 32 bit clock tick,(timestamp based on timer-value of CSS-internal timer)*/
|
||||
struct ia_css_clock_tick {
|
||||
clock_value_t ticks; /**< measured time in ticks.*/
|
||||
clock_value_t ticks; /** measured time in ticks.*/
|
||||
};
|
||||
|
||||
/** @brief TIMER event codes */
|
||||
/* @brief TIMER event codes */
|
||||
enum ia_css_tm_event {
|
||||
IA_CSS_TM_EVENT_AFTER_INIT,
|
||||
/**< Timer Event after Initialization */
|
||||
/** Timer Event after Initialization */
|
||||
IA_CSS_TM_EVENT_MAIN_END,
|
||||
/**< Timer Event after end of Main */
|
||||
/** Timer Event after end of Main */
|
||||
IA_CSS_TM_EVENT_THREAD_START,
|
||||
/**< Timer Event after thread start */
|
||||
/** Timer Event after thread start */
|
||||
IA_CSS_TM_EVENT_FRAME_PROC_START,
|
||||
/**< Timer Event after Frame Process Start */
|
||||
/** Timer Event after Frame Process Start */
|
||||
IA_CSS_TM_EVENT_FRAME_PROC_END
|
||||
/**< Timer Event after Frame Process End */
|
||||
/** Timer Event after Frame Process End */
|
||||
};
|
||||
|
||||
/** @brief code measurement common struct */
|
||||
/* @brief code measurement common struct */
|
||||
struct ia_css_time_meas {
|
||||
clock_value_t start_timer_value; /**< measured time in ticks */
|
||||
clock_value_t end_timer_value; /**< measured time in ticks */
|
||||
clock_value_t start_timer_value; /** measured time in ticks */
|
||||
clock_value_t end_timer_value; /** measured time in ticks */
|
||||
};
|
||||
|
||||
/**@brief SIZE_OF_IA_CSS_CLOCK_TICK_STRUCT checks to ensure correct alignment for struct ia_css_clock_tick. */
|
||||
#define SIZE_OF_IA_CSS_CLOCK_TICK_STRUCT sizeof(clock_value_t)
|
||||
/** @brief checks to ensure correct alignment for ia_css_time_meas. */
|
||||
/* @brief checks to ensure correct alignment for ia_css_time_meas. */
|
||||
#define SIZE_OF_IA_CSS_TIME_MEAS_STRUCT (sizeof(clock_value_t) \
|
||||
+ sizeof(clock_value_t))
|
||||
|
||||
/** @brief API to fetch timer count directly
|
||||
/* @brief API to fetch timer count directly
|
||||
*
|
||||
* @param curr_ts [out] measured count value
|
||||
* @return IA_CSS_SUCCESS if success
|
||||
|
|
|
@ -15,11 +15,11 @@
|
|||
#ifndef __IA_CSS_TPG_H
|
||||
#define __IA_CSS_TPG_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* This file contains support for the test pattern generator (TPG)
|
||||
*/
|
||||
|
||||
/** Enumerate the TPG IDs.
|
||||
/* Enumerate the TPG IDs.
|
||||
*/
|
||||
enum ia_css_tpg_id {
|
||||
IA_CSS_TPG_ID0,
|
||||
|
@ -35,7 +35,7 @@ enum ia_css_tpg_id {
|
|||
*/
|
||||
#define N_CSS_TPG_IDS (IA_CSS_TPG_ID2+1)
|
||||
|
||||
/** Enumerate the TPG modes.
|
||||
/* Enumerate the TPG modes.
|
||||
*/
|
||||
enum ia_css_tpg_mode {
|
||||
IA_CSS_TPG_MODE_RAMP,
|
||||
|
@ -44,7 +44,7 @@ enum ia_css_tpg_mode {
|
|||
IA_CSS_TPG_MODE_MONO
|
||||
};
|
||||
|
||||
/** @brief Configure the test pattern generator.
|
||||
/* @brief Configure the test pattern generator.
|
||||
*
|
||||
* Configure the Test Pattern Generator, the way these values are used to
|
||||
* generate the pattern can be seen in the HRT extension for the test pattern
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
#ifndef _IA_CSS_TYPES_H
|
||||
#define _IA_CSS_TYPES_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* This file contains types used for the ia_css parameters.
|
||||
* These types are in a separate file because they are expected
|
||||
* to be used in software layers that do not access the CSS API
|
||||
|
@ -58,7 +58,7 @@
|
|||
#include "isp/kernels/output/output_1.0/ia_css_output_types.h"
|
||||
|
||||
#define IA_CSS_DVS_STAT_GRID_INFO_SUPPORTED
|
||||
/**< Should be removed after Driver adaptation will be done */
|
||||
/** Should be removed after Driver adaptation will be done */
|
||||
|
||||
#define IA_CSS_VERSION_MAJOR 2
|
||||
#define IA_CSS_VERSION_MINOR 0
|
||||
|
@ -69,8 +69,8 @@
|
|||
/* Min and max exposure IDs. These macros are here to allow
|
||||
* the drivers to get this information. Changing these macros
|
||||
* constitutes a CSS API change. */
|
||||
#define IA_CSS_ISYS_MIN_EXPOSURE_ID 1 /**< Minimum exposure ID */
|
||||
#define IA_CSS_ISYS_MAX_EXPOSURE_ID 250 /**< Maximum exposure ID */
|
||||
#define IA_CSS_ISYS_MIN_EXPOSURE_ID 1 /** Minimum exposure ID */
|
||||
#define IA_CSS_ISYS_MAX_EXPOSURE_ID 250 /** Maximum exposure ID */
|
||||
|
||||
/* opaque types */
|
||||
struct ia_css_isp_parameters;
|
||||
|
@ -79,72 +79,72 @@ struct ia_css_memory_offsets;
|
|||
struct ia_css_config_memory_offsets;
|
||||
struct ia_css_state_memory_offsets;
|
||||
|
||||
/** Virtual address within the CSS address space. */
|
||||
/* Virtual address within the CSS address space. */
|
||||
typedef uint32_t ia_css_ptr;
|
||||
|
||||
/** Generic resolution structure.
|
||||
/* Generic resolution structure.
|
||||
*/
|
||||
struct ia_css_resolution {
|
||||
uint32_t width; /**< Width */
|
||||
uint32_t height; /**< Height */
|
||||
uint32_t width; /** Width */
|
||||
uint32_t height; /** Height */
|
||||
};
|
||||
|
||||
/** Generic coordinate structure.
|
||||
/* Generic coordinate structure.
|
||||
*/
|
||||
struct ia_css_coordinate {
|
||||
int32_t x; /**< Value of a coordinate on the horizontal axis */
|
||||
int32_t y; /**< Value of a coordinate on the vertical axis */
|
||||
int32_t x; /** Value of a coordinate on the horizontal axis */
|
||||
int32_t y; /** Value of a coordinate on the vertical axis */
|
||||
};
|
||||
|
||||
/** Vector with signed values. This is used to indicate motion for
|
||||
/* Vector with signed values. This is used to indicate motion for
|
||||
* Digital Image Stabilization.
|
||||
*/
|
||||
struct ia_css_vector {
|
||||
int32_t x; /**< horizontal motion (in pixels) */
|
||||
int32_t y; /**< vertical motion (in pixels) */
|
||||
int32_t x; /** horizontal motion (in pixels) */
|
||||
int32_t y; /** vertical motion (in pixels) */
|
||||
};
|
||||
|
||||
/* Short hands */
|
||||
#define IA_CSS_ISP_DMEM IA_CSS_ISP_DMEM0
|
||||
#define IA_CSS_ISP_VMEM IA_CSS_ISP_VMEM0
|
||||
|
||||
/** CSS data descriptor */
|
||||
/* CSS data descriptor */
|
||||
struct ia_css_data {
|
||||
ia_css_ptr address; /**< CSS virtual address */
|
||||
uint32_t size; /**< Disabled if 0 */
|
||||
ia_css_ptr address; /** CSS virtual address */
|
||||
uint32_t size; /** Disabled if 0 */
|
||||
};
|
||||
|
||||
/** Host data descriptor */
|
||||
/* Host data descriptor */
|
||||
struct ia_css_host_data {
|
||||
char *address; /**< Host address */
|
||||
uint32_t size; /**< Disabled if 0 */
|
||||
char *address; /** Host address */
|
||||
uint32_t size; /** Disabled if 0 */
|
||||
};
|
||||
|
||||
/** ISP data descriptor */
|
||||
/* ISP data descriptor */
|
||||
struct ia_css_isp_data {
|
||||
uint32_t address; /**< ISP address */
|
||||
uint32_t size; /**< Disabled if 0 */
|
||||
uint32_t address; /** ISP address */
|
||||
uint32_t size; /** Disabled if 0 */
|
||||
};
|
||||
|
||||
/** Shading Correction types. */
|
||||
/* Shading Correction types. */
|
||||
enum ia_css_shading_correction_type {
|
||||
#ifndef ISP2401
|
||||
IA_CSS_SHADING_CORRECTION_TYPE_1 /**< Shading Correction 1.0 (pipe 1.0 on ISP2300, pipe 2.2 on ISP2400) */
|
||||
IA_CSS_SHADING_CORRECTION_TYPE_1 /** Shading Correction 1.0 (pipe 1.0 on ISP2300, pipe 2.2 on ISP2400) */
|
||||
#else
|
||||
IA_CSS_SHADING_CORRECTION_NONE, /**< Shading Correction is not processed in the pipe. */
|
||||
IA_CSS_SHADING_CORRECTION_TYPE_1 /**< Shading Correction 1.0 (pipe 1.0 on ISP2300, pipe 2.2 on ISP2400/2401) */
|
||||
IA_CSS_SHADING_CORRECTION_NONE, /** Shading Correction is not processed in the pipe. */
|
||||
IA_CSS_SHADING_CORRECTION_TYPE_1 /** Shading Correction 1.0 (pipe 1.0 on ISP2300, pipe 2.2 on ISP2400/2401) */
|
||||
#endif
|
||||
|
||||
/**< More shading correction types can be added in the future. */
|
||||
/** More shading correction types can be added in the future. */
|
||||
};
|
||||
|
||||
/** Shading Correction information. */
|
||||
/* Shading Correction information. */
|
||||
struct ia_css_shading_info {
|
||||
enum ia_css_shading_correction_type type; /**< Shading Correction type. */
|
||||
enum ia_css_shading_correction_type type; /** Shading Correction type. */
|
||||
|
||||
union { /** Shading Correction information of each Shading Correction types. */
|
||||
union { /* Shading Correction information of each Shading Correction types. */
|
||||
|
||||
/** Shading Correction information of IA_CSS_SHADING_CORRECTION_TYPE_1.
|
||||
/* Shading Correction information of IA_CSS_SHADING_CORRECTION_TYPE_1.
|
||||
*
|
||||
* This structure contains the information necessary to generate
|
||||
* the shading table required in the isp.
|
||||
|
@ -288,20 +288,20 @@ struct ia_css_shading_info {
|
|||
*/
|
||||
struct {
|
||||
#ifndef ISP2401
|
||||
uint32_t enable; /**< Shading correction enabled.
|
||||
uint32_t enable; /** Shading correction enabled.
|
||||
0:disabled, 1:enabled */
|
||||
uint32_t num_hor_grids; /**< Number of data points per line
|
||||
uint32_t num_hor_grids; /** Number of data points per line
|
||||
per color on shading table. */
|
||||
uint32_t num_ver_grids; /**< Number of lines of data points
|
||||
uint32_t num_ver_grids; /** Number of lines of data points
|
||||
per color on shading table. */
|
||||
uint32_t bqs_per_grid_cell; /**< Grid cell size
|
||||
uint32_t bqs_per_grid_cell; /** Grid cell size
|
||||
in BQ(Bayer Quad) unit.
|
||||
(1BQ means {Gr,R,B,Gb}(2x2 pixels).)
|
||||
Valid values are 8,16,32,64. */
|
||||
#else
|
||||
uint32_t num_hor_grids; /**< Number of data points per line per color on shading table. */
|
||||
uint32_t num_ver_grids; /**< Number of lines of data points per color on shading table. */
|
||||
uint32_t bqs_per_grid_cell; /**< Grid cell size in BQ unit.
|
||||
uint32_t num_hor_grids; /** Number of data points per line per color on shading table. */
|
||||
uint32_t num_ver_grids; /** Number of lines of data points per color on shading table. */
|
||||
uint32_t bqs_per_grid_cell; /** Grid cell size in BQ unit.
|
||||
NOTE: bqs = size in BQ(Bayer Quad) unit.
|
||||
1BQ means {Gr,R,B,Gb} (2x2 pixels).
|
||||
Horizontal 1 bqs corresponds to horizontal 2 pixels.
|
||||
|
@ -310,13 +310,13 @@ struct ia_css_shading_info {
|
|||
uint32_t bayer_scale_hor_ratio_in;
|
||||
uint32_t bayer_scale_hor_ratio_out;
|
||||
#ifndef ISP2401
|
||||
/**< Horizontal ratio of bayer scaling
|
||||
/** Horizontal ratio of bayer scaling
|
||||
between input width and output width, for the scaling
|
||||
which should be done before shading correction.
|
||||
output_width = input_width * bayer_scale_hor_ratio_out
|
||||
/ bayer_scale_hor_ratio_in */
|
||||
#else
|
||||
/**< Horizontal ratio of bayer scaling between input width and output width,
|
||||
/** Horizontal ratio of bayer scaling between input width and output width,
|
||||
for the scaling which should be done before shading correction.
|
||||
output_width = input_width * bayer_scale_hor_ratio_out
|
||||
/ bayer_scale_hor_ratio_in + 0.5 */
|
||||
|
@ -324,30 +324,30 @@ struct ia_css_shading_info {
|
|||
uint32_t bayer_scale_ver_ratio_in;
|
||||
uint32_t bayer_scale_ver_ratio_out;
|
||||
#ifndef ISP2401
|
||||
/**< Vertical ratio of bayer scaling
|
||||
/** Vertical ratio of bayer scaling
|
||||
between input height and output height, for the scaling
|
||||
which should be done before shading correction.
|
||||
output_height = input_height * bayer_scale_ver_ratio_out
|
||||
/ bayer_scale_ver_ratio_in */
|
||||
uint32_t sc_bayer_origin_x_bqs_on_shading_table;
|
||||
/**< X coordinate (in bqs) of bayer origin on shading table.
|
||||
/** X coordinate (in bqs) of bayer origin on shading table.
|
||||
This indicates the left-most pixel of bayer
|
||||
(not include margin) inputted to the shading correction.
|
||||
This corresponds to the left-most pixel of bayer
|
||||
inputted to isp from sensor. */
|
||||
uint32_t sc_bayer_origin_y_bqs_on_shading_table;
|
||||
/**< Y coordinate (in bqs) of bayer origin on shading table.
|
||||
/** Y coordinate (in bqs) of bayer origin on shading table.
|
||||
This indicates the top pixel of bayer
|
||||
(not include margin) inputted to the shading correction.
|
||||
This corresponds to the top pixel of bayer
|
||||
inputted to isp from sensor. */
|
||||
#else
|
||||
/**< Vertical ratio of bayer scaling between input height and output height,
|
||||
/** Vertical ratio of bayer scaling between input height and output height,
|
||||
for the scaling which should be done before shading correction.
|
||||
output_height = input_height * bayer_scale_ver_ratio_out
|
||||
/ bayer_scale_ver_ratio_in + 0.5 */
|
||||
struct ia_css_resolution isp_input_sensor_data_res_bqs;
|
||||
/**< Sensor data size (in bqs) inputted to ISP. This is the size BEFORE bayer scaling.
|
||||
/** Sensor data size (in bqs) inputted to ISP. This is the size BEFORE bayer scaling.
|
||||
NOTE: This is NOT the size of the physical sensor size.
|
||||
CSS requests the driver that ISP inputs sensor data
|
||||
by the size of isp_input_sensor_data_res_bqs.
|
||||
|
@ -357,22 +357,22 @@ struct ia_css_shading_info {
|
|||
ISP assumes the area of isp_input_sensor_data_res_bqs
|
||||
is centered on the physical sensor. */
|
||||
struct ia_css_resolution sensor_data_res_bqs;
|
||||
/**< Sensor data size (in bqs) at shading correction.
|
||||
/** Sensor data size (in bqs) at shading correction.
|
||||
This is the size AFTER bayer scaling. */
|
||||
struct ia_css_coordinate sensor_data_origin_bqs_on_sctbl;
|
||||
/**< Origin of sensor data area positioned on shading table at shading correction.
|
||||
/** Origin of sensor data area positioned on shading table at shading correction.
|
||||
The coordinate x,y should be positive values. */
|
||||
#endif
|
||||
} type_1;
|
||||
|
||||
/**< More structures can be added here when more shading correction types will be added
|
||||
/** More structures can be added here when more shading correction types will be added
|
||||
in the future. */
|
||||
} info;
|
||||
};
|
||||
|
||||
#ifndef ISP2401
|
||||
|
||||
/** Default Shading Correction information of Shading Correction Type 1. */
|
||||
/* Default Shading Correction information of Shading Correction Type 1. */
|
||||
#define DEFAULT_SHADING_INFO_TYPE_1 \
|
||||
{ \
|
||||
IA_CSS_SHADING_CORRECTION_TYPE_1, /* type */ \
|
||||
|
@ -394,7 +394,7 @@ struct ia_css_shading_info {
|
|||
|
||||
#else
|
||||
|
||||
/** Default Shading Correction information of Shading Correction Type 1. */
|
||||
/* Default Shading Correction information of Shading Correction Type 1. */
|
||||
#define DEFAULT_SHADING_INFO_TYPE_1 \
|
||||
{ \
|
||||
IA_CSS_SHADING_CORRECTION_TYPE_1, /* type */ \
|
||||
|
@ -416,27 +416,27 @@ struct ia_css_shading_info {
|
|||
|
||||
#endif
|
||||
|
||||
/** Default Shading Correction information. */
|
||||
/* Default Shading Correction information. */
|
||||
#define DEFAULT_SHADING_INFO DEFAULT_SHADING_INFO_TYPE_1
|
||||
|
||||
/** structure that describes the 3A and DIS grids */
|
||||
/* structure that describes the 3A and DIS grids */
|
||||
struct ia_css_grid_info {
|
||||
/** \name ISP input size
|
||||
/* \name ISP input size
|
||||
* that is visible for user
|
||||
* @{
|
||||
*/
|
||||
uint32_t isp_in_width;
|
||||
uint32_t isp_in_height;
|
||||
/** @}*/
|
||||
/* @}*/
|
||||
|
||||
struct ia_css_3a_grid_info s3a_grid; /**< 3A grid info */
|
||||
struct ia_css_3a_grid_info s3a_grid; /** 3A grid info */
|
||||
union ia_css_dvs_grid_u dvs_grid;
|
||||
/**< All types of DVS statistics grid info union */
|
||||
/** All types of DVS statistics grid info union */
|
||||
|
||||
enum ia_css_vamem_type vamem_type;
|
||||
};
|
||||
|
||||
/** defaults for ia_css_grid_info structs */
|
||||
/* defaults for ia_css_grid_info structs */
|
||||
#define DEFAULT_GRID_INFO \
|
||||
{ \
|
||||
0, /* isp_in_width */ \
|
||||
|
@ -446,25 +446,25 @@ struct ia_css_grid_info {
|
|||
IA_CSS_VAMEM_TYPE_1 /* vamem_type */ \
|
||||
}
|
||||
|
||||
/** Morphing table, used for geometric distortion and chromatic abberration
|
||||
/* Morphing table, used for geometric distortion and chromatic abberration
|
||||
* correction (GDCAC, also called GDC).
|
||||
* This table describes the imperfections introduced by the lens, the
|
||||
* advanced ISP can correct for these imperfections using this table.
|
||||
*/
|
||||
struct ia_css_morph_table {
|
||||
uint32_t enable; /**< To disable GDC, set this field to false. The
|
||||
uint32_t enable; /** To disable GDC, set this field to false. The
|
||||
coordinates fields can be set to NULL in this case. */
|
||||
uint32_t height; /**< Table height */
|
||||
uint32_t width; /**< Table width */
|
||||
uint32_t height; /** Table height */
|
||||
uint32_t width; /** Table width */
|
||||
uint16_t *coordinates_x[IA_CSS_MORPH_TABLE_NUM_PLANES];
|
||||
/**< X coordinates that describe the sensor imperfection */
|
||||
/** X coordinates that describe the sensor imperfection */
|
||||
uint16_t *coordinates_y[IA_CSS_MORPH_TABLE_NUM_PLANES];
|
||||
/**< Y coordinates that describe the sensor imperfection */
|
||||
/** Y coordinates that describe the sensor imperfection */
|
||||
};
|
||||
|
||||
struct ia_css_dvs_6axis_config {
|
||||
unsigned int exp_id;
|
||||
/**< Exposure ID, see ia_css_event_public.h for more detail */
|
||||
/** Exposure ID, see ia_css_event_public.h for more detail */
|
||||
uint32_t width_y;
|
||||
uint32_t height_y;
|
||||
uint32_t width_uv;
|
||||
|
@ -479,16 +479,16 @@ struct ia_css_dvs_6axis_config {
|
|||
* This specifies the coordinates (x,y)
|
||||
*/
|
||||
struct ia_css_point {
|
||||
int32_t x; /**< x coordinate */
|
||||
int32_t y; /**< y coordinate */
|
||||
int32_t x; /** x coordinate */
|
||||
int32_t y; /** y coordinate */
|
||||
};
|
||||
|
||||
/**
|
||||
* This specifies the region
|
||||
*/
|
||||
struct ia_css_region {
|
||||
struct ia_css_point origin; /**< Starting point coordinates for the region */
|
||||
struct ia_css_resolution resolution; /**< Region resolution */
|
||||
struct ia_css_point origin; /** Starting point coordinates for the region */
|
||||
struct ia_css_resolution resolution; /** Region resolution */
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -509,30 +509,30 @@ struct ia_css_region {
|
|||
* y + height <= effective input height
|
||||
*/
|
||||
struct ia_css_dz_config {
|
||||
uint32_t dx; /**< Horizontal zoom factor */
|
||||
uint32_t dy; /**< Vertical zoom factor */
|
||||
struct ia_css_region zoom_region; /**< region for zoom */
|
||||
uint32_t dx; /** Horizontal zoom factor */
|
||||
uint32_t dy; /** Vertical zoom factor */
|
||||
struct ia_css_region zoom_region; /** region for zoom */
|
||||
};
|
||||
|
||||
/** The still capture mode, this can be RAW (simply copy sensor input to DDR),
|
||||
/* The still capture mode, this can be RAW (simply copy sensor input to DDR),
|
||||
* Primary ISP, the Advanced ISP (GDC) or the low-light ISP (ANR).
|
||||
*/
|
||||
enum ia_css_capture_mode {
|
||||
IA_CSS_CAPTURE_MODE_RAW, /**< no processing, copy data only */
|
||||
IA_CSS_CAPTURE_MODE_BAYER, /**< bayer processing, up to demosaic */
|
||||
IA_CSS_CAPTURE_MODE_PRIMARY, /**< primary ISP */
|
||||
IA_CSS_CAPTURE_MODE_ADVANCED, /**< advanced ISP (GDC) */
|
||||
IA_CSS_CAPTURE_MODE_LOW_LIGHT /**< low light ISP (ANR) */
|
||||
IA_CSS_CAPTURE_MODE_RAW, /** no processing, copy data only */
|
||||
IA_CSS_CAPTURE_MODE_BAYER, /** bayer processing, up to demosaic */
|
||||
IA_CSS_CAPTURE_MODE_PRIMARY, /** primary ISP */
|
||||
IA_CSS_CAPTURE_MODE_ADVANCED, /** advanced ISP (GDC) */
|
||||
IA_CSS_CAPTURE_MODE_LOW_LIGHT /** low light ISP (ANR) */
|
||||
};
|
||||
|
||||
struct ia_css_capture_config {
|
||||
enum ia_css_capture_mode mode; /**< Still capture mode */
|
||||
uint32_t enable_xnr; /**< Enable/disable XNR */
|
||||
enum ia_css_capture_mode mode; /** Still capture mode */
|
||||
uint32_t enable_xnr; /** Enable/disable XNR */
|
||||
uint32_t enable_raw_output;
|
||||
bool enable_capture_pp_bli; /**< Enable capture_pp_bli mode */
|
||||
bool enable_capture_pp_bli; /** Enable capture_pp_bli mode */
|
||||
};
|
||||
|
||||
/** default settings for ia_css_capture_config structs */
|
||||
/* default settings for ia_css_capture_config structs */
|
||||
#define DEFAULT_CAPTURE_CONFIG \
|
||||
{ \
|
||||
IA_CSS_CAPTURE_MODE_PRIMARY, /* mode (capture) */ \
|
||||
|
@ -542,7 +542,7 @@ struct ia_css_capture_config {
|
|||
}
|
||||
|
||||
|
||||
/** ISP filter configuration. This is a collection of configurations
|
||||
/* ISP filter configuration. This is a collection of configurations
|
||||
* for each of the ISP filters (modules).
|
||||
*
|
||||
* NOTE! The contents of all pointers is copied when get or set with the
|
||||
|
@ -557,98 +557,98 @@ struct ia_css_capture_config {
|
|||
* ["ISP block", 2only] : ISP block is used only for ISP2.
|
||||
*/
|
||||
struct ia_css_isp_config {
|
||||
struct ia_css_wb_config *wb_config; /**< White Balance
|
||||
struct ia_css_wb_config *wb_config; /** White Balance
|
||||
[WB1, 1&2] */
|
||||
struct ia_css_cc_config *cc_config; /**< Color Correction
|
||||
struct ia_css_cc_config *cc_config; /** Color Correction
|
||||
[CSC1, 1only] */
|
||||
struct ia_css_tnr_config *tnr_config; /**< Temporal Noise Reduction
|
||||
struct ia_css_tnr_config *tnr_config; /** Temporal Noise Reduction
|
||||
[TNR1, 1&2] */
|
||||
struct ia_css_ecd_config *ecd_config; /**< Eigen Color Demosaicing
|
||||
struct ia_css_ecd_config *ecd_config; /** Eigen Color Demosaicing
|
||||
[DE2, 2only] */
|
||||
struct ia_css_ynr_config *ynr_config; /**< Y(Luma) Noise Reduction
|
||||
struct ia_css_ynr_config *ynr_config; /** Y(Luma) Noise Reduction
|
||||
[YNR2&YEE2, 2only] */
|
||||
struct ia_css_fc_config *fc_config; /**< Fringe Control
|
||||
struct ia_css_fc_config *fc_config; /** Fringe Control
|
||||
[FC2, 2only] */
|
||||
struct ia_css_formats_config *formats_config; /**< Formats Control for main output
|
||||
struct ia_css_formats_config *formats_config; /** Formats Control for main output
|
||||
[FORMATS, 1&2] */
|
||||
struct ia_css_cnr_config *cnr_config; /**< Chroma Noise Reduction
|
||||
struct ia_css_cnr_config *cnr_config; /** Chroma Noise Reduction
|
||||
[CNR2, 2only] */
|
||||
struct ia_css_macc_config *macc_config; /**< MACC
|
||||
struct ia_css_macc_config *macc_config; /** MACC
|
||||
[MACC2, 2only] */
|
||||
struct ia_css_ctc_config *ctc_config; /**< Chroma Tone Control
|
||||
struct ia_css_ctc_config *ctc_config; /** Chroma Tone Control
|
||||
[CTC2, 2only] */
|
||||
struct ia_css_aa_config *aa_config; /**< YUV Anti-Aliasing
|
||||
struct ia_css_aa_config *aa_config; /** YUV Anti-Aliasing
|
||||
[AA2, 2only]
|
||||
(not used currently) */
|
||||
struct ia_css_aa_config *baa_config; /**< Bayer Anti-Aliasing
|
||||
struct ia_css_aa_config *baa_config; /** Bayer Anti-Aliasing
|
||||
[BAA2, 1&2] */
|
||||
struct ia_css_ce_config *ce_config; /**< Chroma Enhancement
|
||||
struct ia_css_ce_config *ce_config; /** Chroma Enhancement
|
||||
[CE1, 1only] */
|
||||
struct ia_css_dvs_6axis_config *dvs_6axis_config;
|
||||
struct ia_css_ob_config *ob_config; /**< Objective Black
|
||||
struct ia_css_ob_config *ob_config; /** Objective Black
|
||||
[OB1, 1&2] */
|
||||
struct ia_css_dp_config *dp_config; /**< Defect Pixel Correction
|
||||
struct ia_css_dp_config *dp_config; /** Defect Pixel Correction
|
||||
[DPC1/DPC2, 1&2] */
|
||||
struct ia_css_nr_config *nr_config; /**< Noise Reduction
|
||||
struct ia_css_nr_config *nr_config; /** Noise Reduction
|
||||
[BNR1&YNR1&CNR1, 1&2]*/
|
||||
struct ia_css_ee_config *ee_config; /**< Edge Enhancement
|
||||
struct ia_css_ee_config *ee_config; /** Edge Enhancement
|
||||
[YEE1, 1&2] */
|
||||
struct ia_css_de_config *de_config; /**< Demosaic
|
||||
struct ia_css_de_config *de_config; /** Demosaic
|
||||
[DE1, 1only] */
|
||||
struct ia_css_gc_config *gc_config; /**< Gamma Correction (for YUV)
|
||||
struct ia_css_gc_config *gc_config; /** Gamma Correction (for YUV)
|
||||
[GC1, 1only] */
|
||||
struct ia_css_anr_config *anr_config; /**< Advanced Noise Reduction */
|
||||
struct ia_css_3a_config *s3a_config; /**< 3A Statistics config */
|
||||
struct ia_css_xnr_config *xnr_config; /**< eXtra Noise Reduction */
|
||||
struct ia_css_dz_config *dz_config; /**< Digital Zoom */
|
||||
struct ia_css_cc_config *yuv2rgb_cc_config; /**< Color Correction
|
||||
struct ia_css_anr_config *anr_config; /** Advanced Noise Reduction */
|
||||
struct ia_css_3a_config *s3a_config; /** 3A Statistics config */
|
||||
struct ia_css_xnr_config *xnr_config; /** eXtra Noise Reduction */
|
||||
struct ia_css_dz_config *dz_config; /** Digital Zoom */
|
||||
struct ia_css_cc_config *yuv2rgb_cc_config; /** Color Correction
|
||||
[CCM2, 2only] */
|
||||
struct ia_css_cc_config *rgb2yuv_cc_config; /**< Color Correction
|
||||
struct ia_css_cc_config *rgb2yuv_cc_config; /** Color Correction
|
||||
[CSC2, 2only] */
|
||||
struct ia_css_macc_table *macc_table; /**< MACC
|
||||
struct ia_css_macc_table *macc_table; /** MACC
|
||||
[MACC1/MACC2, 1&2]*/
|
||||
struct ia_css_gamma_table *gamma_table; /**< Gamma Correction (for YUV)
|
||||
struct ia_css_gamma_table *gamma_table; /** Gamma Correction (for YUV)
|
||||
[GC1, 1only] */
|
||||
struct ia_css_ctc_table *ctc_table; /**< Chroma Tone Control
|
||||
struct ia_css_ctc_table *ctc_table; /** Chroma Tone Control
|
||||
[CTC1, 1only] */
|
||||
|
||||
/** \deprecated */
|
||||
struct ia_css_xnr_table *xnr_table; /**< eXtra Noise Reduction
|
||||
/* \deprecated */
|
||||
struct ia_css_xnr_table *xnr_table; /** eXtra Noise Reduction
|
||||
[XNR1, 1&2] */
|
||||
struct ia_css_rgb_gamma_table *r_gamma_table;/**< sRGB Gamma Correction
|
||||
struct ia_css_rgb_gamma_table *r_gamma_table;/** sRGB Gamma Correction
|
||||
[GC2, 2only] */
|
||||
struct ia_css_rgb_gamma_table *g_gamma_table;/**< sRGB Gamma Correction
|
||||
struct ia_css_rgb_gamma_table *g_gamma_table;/** sRGB Gamma Correction
|
||||
[GC2, 2only] */
|
||||
struct ia_css_rgb_gamma_table *b_gamma_table;/**< sRGB Gamma Correction
|
||||
struct ia_css_rgb_gamma_table *b_gamma_table;/** sRGB Gamma Correction
|
||||
[GC2, 2only] */
|
||||
struct ia_css_vector *motion_vector; /**< For 2-axis DVS */
|
||||
struct ia_css_vector *motion_vector; /** For 2-axis DVS */
|
||||
struct ia_css_shading_table *shading_table;
|
||||
struct ia_css_morph_table *morph_table;
|
||||
struct ia_css_dvs_coefficients *dvs_coefs; /**< DVS 1.0 coefficients */
|
||||
struct ia_css_dvs2_coefficients *dvs2_coefs; /**< DVS 2.0 coefficients */
|
||||
struct ia_css_dvs_coefficients *dvs_coefs; /** DVS 1.0 coefficients */
|
||||
struct ia_css_dvs2_coefficients *dvs2_coefs; /** DVS 2.0 coefficients */
|
||||
struct ia_css_capture_config *capture_config;
|
||||
struct ia_css_anr_thres *anr_thres;
|
||||
/** @deprecated{Old shading settings, see bugzilla bz675 for details} */
|
||||
/* @deprecated{Old shading settings, see bugzilla bz675 for details} */
|
||||
struct ia_css_shading_settings *shading_settings;
|
||||
struct ia_css_xnr3_config *xnr3_config; /**< eXtreme Noise Reduction v3 */
|
||||
/** comment from Lasse: Be aware how this feature will affect coordinate
|
||||
struct ia_css_xnr3_config *xnr3_config; /** eXtreme Noise Reduction v3 */
|
||||
/* comment from Lasse: Be aware how this feature will affect coordinate
|
||||
* normalization in different parts of the system. (e.g. face detection,
|
||||
* touch focus, 3A statistics and windows of interest, shading correction,
|
||||
* DVS, GDC) from IQ tool level and application level down-to ISP FW level.
|
||||
* the risk for regression is not in the individual blocks, but how they
|
||||
* integrate together. */
|
||||
struct ia_css_output_config *output_config; /**< Main Output Mirroring, flipping */
|
||||
struct ia_css_output_config *output_config; /** Main Output Mirroring, flipping */
|
||||
|
||||
#ifdef ISP2401
|
||||
struct ia_css_tnr3_kernel_config *tnr3_config; /**< TNR3 config */
|
||||
struct ia_css_tnr3_kernel_config *tnr3_config; /** TNR3 config */
|
||||
#endif
|
||||
struct ia_css_scaler_config *scaler_config; /**< Skylake: scaler config (optional) */
|
||||
struct ia_css_formats_config *formats_config_display;/**< Formats control for viewfinder/display output (optional)
|
||||
struct ia_css_scaler_config *scaler_config; /** Skylake: scaler config (optional) */
|
||||
struct ia_css_formats_config *formats_config_display;/** Formats control for viewfinder/display output (optional)
|
||||
[OSYS, n/a] */
|
||||
struct ia_css_output_config *output_config_display; /**< Viewfinder/display output mirroring, flipping (optional) */
|
||||
struct ia_css_output_config *output_config_display; /** Viewfinder/display output mirroring, flipping (optional) */
|
||||
|
||||
struct ia_css_frame *output_frame; /**< Output frame the config is to be applied to (optional) */
|
||||
uint32_t isp_config_id; /**< Unique ID to track which config was actually applied to a particular frame */
|
||||
struct ia_css_frame *output_frame; /** Output frame the config is to be applied to (optional) */
|
||||
uint32_t isp_config_id; /** Unique ID to track which config was actually applied to a particular frame */
|
||||
};
|
||||
|
||||
#endif /* _IA_CSS_TYPES_H */
|
||||
|
|
|
@ -15,16 +15,16 @@
|
|||
#ifndef __IA_CSS_VERSION_H
|
||||
#define __IA_CSS_VERSION_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* This file contains functions to retrieve CSS-API version information
|
||||
*/
|
||||
|
||||
#include <ia_css_err.h>
|
||||
|
||||
/** a common size for the version arrays */
|
||||
/* a common size for the version arrays */
|
||||
#define MAX_VERSION_SIZE 500
|
||||
|
||||
/** @brief Retrieves the current CSS version
|
||||
/* @brief Retrieves the current CSS version
|
||||
* @param[out] version A pointer to a buffer where to put the generated
|
||||
* version string. NULL is ignored.
|
||||
* @param[in] max_size Size of the version buffer. If version string
|
||||
|
|
|
@ -15,12 +15,12 @@
|
|||
#ifndef __IA_CSS_AA2_TYPES_H
|
||||
#define __IA_CSS_AA2_TYPES_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* CSS-API header file for Anti-Aliasing parameters.
|
||||
*/
|
||||
|
||||
|
||||
/** Anti-Aliasing configuration.
|
||||
/* Anti-Aliasing configuration.
|
||||
*
|
||||
* This structure is used both for YUV AA and Bayer AA.
|
||||
*
|
||||
|
@ -39,7 +39,7 @@
|
|||
* ISP2: BAA2 is used.
|
||||
*/
|
||||
struct ia_css_aa_config {
|
||||
uint16_t strength; /**< Strength of the filter.
|
||||
uint16_t strength; /** Strength of the filter.
|
||||
u0.13, [0,8191],
|
||||
default/ineffective 0 */
|
||||
};
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
#ifndef __IA_CSS_ANR_TYPES_H
|
||||
#define __IA_CSS_ANR_TYPES_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* CSS-API header file for Advanced Noise Reduction kernel v1
|
||||
*/
|
||||
|
||||
|
@ -23,11 +23,11 @@
|
|||
#define ANR_BPP 10
|
||||
#define ANR_ELEMENT_BITS ((CEIL_DIV(ANR_BPP, 8))*8)
|
||||
|
||||
/** Advanced Noise Reduction configuration.
|
||||
/* Advanced Noise Reduction configuration.
|
||||
* This is also known as Low-Light.
|
||||
*/
|
||||
struct ia_css_anr_config {
|
||||
int32_t threshold; /**< Threshold */
|
||||
int32_t threshold; /** Threshold */
|
||||
int32_t thresholds[4*4*4];
|
||||
int32_t factors[3];
|
||||
};
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
#ifndef __IA_CSS_ANR2_TYPES_H
|
||||
#define __IA_CSS_ANR2_TYPES_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* CSS-API header file for Advanced Noise Reduction kernel v2
|
||||
*/
|
||||
|
||||
|
@ -23,7 +23,7 @@
|
|||
|
||||
#define ANR_PARAM_SIZE 13
|
||||
|
||||
/** Advanced Noise Reduction (ANR) thresholds */
|
||||
/* Advanced Noise Reduction (ANR) thresholds */
|
||||
struct ia_css_anr_thres {
|
||||
int16_t data[13*64];
|
||||
};
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
#include "vmem.h"
|
||||
#include "ia_css_anr2_types.h"
|
||||
|
||||
/** Advanced Noise Reduction (ANR) thresholds */
|
||||
/* Advanced Noise Reduction (ANR) thresholds */
|
||||
|
||||
struct ia_css_isp_anr2_params {
|
||||
VMEM_ARRAY(data, ANR_PARAM_SIZE*ISP_VEC_NELEMS);
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
#define BAYER_QUAD_HEIGHT 2
|
||||
#define NOF_BAYER_VECTORS 4
|
||||
|
||||
/** bayer load/store */
|
||||
/* bayer load/store */
|
||||
struct sh_css_isp_bayer_ls_isp_config {
|
||||
uint32_t base_address[NUM_BAYER_LS];
|
||||
uint32_t width[NUM_BAYER_LS];
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
#ifndef __IA_CSS_BH_TYPES_H
|
||||
#define __IA_CSS_BH_TYPES_H
|
||||
|
||||
/** Number of elements in the BH table.
|
||||
/* Number of elements in the BH table.
|
||||
* Should be consistent with hmem.h
|
||||
*/
|
||||
#define IA_CSS_HMEM_BH_TABLE_SIZE ISP_HIST_DEPTH
|
||||
|
@ -27,7 +27,7 @@
|
|||
#define BH_COLOR_Y (3)
|
||||
#define BH_COLOR_NUM (4)
|
||||
|
||||
/** BH table */
|
||||
/* BH table */
|
||||
struct ia_css_bh_table {
|
||||
uint32_t hmem[ISP_HIST_COMPONENTS][IA_CSS_HMEM_BH_UNIT_SIZE];
|
||||
};
|
||||
|
|
|
@ -15,13 +15,13 @@
|
|||
#ifndef __IA_CSS_BNLM_TYPES_H
|
||||
#define __IA_CSS_BNLM_TYPES_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* CSS-API header file for Bayer Non-Linear Mean parameters.
|
||||
*/
|
||||
|
||||
#include "type_support.h" /* int32_t */
|
||||
|
||||
/** Bayer Non-Linear Mean configuration
|
||||
/* Bayer Non-Linear Mean configuration
|
||||
*
|
||||
* \brief BNLM public parameters.
|
||||
* \details Struct with all parameters for the BNLM kernel that can be set
|
||||
|
@ -30,16 +30,16 @@
|
|||
* ISP2.6.1: BNLM is used.
|
||||
*/
|
||||
struct ia_css_bnlm_config {
|
||||
bool rad_enable; /**< Enable a radial dependency in a weight calculation */
|
||||
int32_t rad_x_origin; /**< Initial x coordinate for a radius calculation */
|
||||
int32_t rad_y_origin; /**< Initial x coordinate for a radius calculation */
|
||||
bool rad_enable; /** Enable a radial dependency in a weight calculation */
|
||||
int32_t rad_x_origin; /** Initial x coordinate for a radius calculation */
|
||||
int32_t rad_y_origin; /** Initial x coordinate for a radius calculation */
|
||||
/* a threshold for average of weights if this < Th, do not denoise pixel */
|
||||
int32_t avg_min_th;
|
||||
/* minimum weight for denoising if max < th, do not denoise pixel */
|
||||
int32_t max_min_th;
|
||||
|
||||
/**@{*/
|
||||
/** Coefficient for approximation, in the form of (1 + x / N)^N,
|
||||
/* Coefficient for approximation, in the form of (1 + x / N)^N,
|
||||
* that fits the first-order exp() to default exp_lut in BNLM sheet
|
||||
* */
|
||||
int32_t exp_coeff_a;
|
||||
|
@ -48,55 +48,55 @@ struct ia_css_bnlm_config {
|
|||
uint32_t exp_exponent;
|
||||
/**@}*/
|
||||
|
||||
int32_t nl_th[3]; /**< Detail thresholds */
|
||||
int32_t nl_th[3]; /** Detail thresholds */
|
||||
|
||||
/** Index for n-th maximum candidate weight for each detail group */
|
||||
/* Index for n-th maximum candidate weight for each detail group */
|
||||
int32_t match_quality_max_idx[4];
|
||||
|
||||
/**@{*/
|
||||
/** A lookup table for 1/sqrt(1+mu) approximation */
|
||||
/* A lookup table for 1/sqrt(1+mu) approximation */
|
||||
int32_t mu_root_lut_thr[15];
|
||||
int32_t mu_root_lut_val[16];
|
||||
/**@}*/
|
||||
/**@{*/
|
||||
/** A lookup table for SAD normalization */
|
||||
/* A lookup table for SAD normalization */
|
||||
int32_t sad_norm_lut_thr[15];
|
||||
int32_t sad_norm_lut_val[16];
|
||||
/**@}*/
|
||||
/**@{*/
|
||||
/** A lookup table that models a weight's dependency on textures */
|
||||
/* A lookup table that models a weight's dependency on textures */
|
||||
int32_t sig_detail_lut_thr[15];
|
||||
int32_t sig_detail_lut_val[16];
|
||||
/**@}*/
|
||||
/**@{*/
|
||||
/** A lookup table that models a weight's dependency on a pixel's radial distance */
|
||||
/* A lookup table that models a weight's dependency on a pixel's radial distance */
|
||||
int32_t sig_rad_lut_thr[15];
|
||||
int32_t sig_rad_lut_val[16];
|
||||
/**@}*/
|
||||
/**@{*/
|
||||
/** A lookup table to control denoise power depending on a pixel's radial distance */
|
||||
/* A lookup table to control denoise power depending on a pixel's radial distance */
|
||||
int32_t rad_pow_lut_thr[15];
|
||||
int32_t rad_pow_lut_val[16];
|
||||
/**@}*/
|
||||
/**@{*/
|
||||
/** Non linear transfer functions to calculate the blending coefficient depending on detail group */
|
||||
/** detail group 0 */
|
||||
/* Non linear transfer functions to calculate the blending coefficient depending on detail group */
|
||||
/* detail group 0 */
|
||||
/**@{*/
|
||||
int32_t nl_0_lut_thr[15];
|
||||
int32_t nl_0_lut_val[16];
|
||||
/**@}*/
|
||||
/**@{*/
|
||||
/** detail group 1 */
|
||||
/* detail group 1 */
|
||||
int32_t nl_1_lut_thr[15];
|
||||
int32_t nl_1_lut_val[16];
|
||||
/**@}*/
|
||||
/**@{*/
|
||||
/** detail group 2 */
|
||||
/* detail group 2 */
|
||||
int32_t nl_2_lut_thr[15];
|
||||
int32_t nl_2_lut_val[16];
|
||||
/**@}*/
|
||||
/**@{*/
|
||||
/** detail group 3 */
|
||||
/* detail group 3 */
|
||||
int32_t nl_3_lut_thr[15];
|
||||
int32_t nl_3_lut_val[16];
|
||||
/**@}*/
|
||||
|
|
|
@ -15,13 +15,13 @@
|
|||
#ifndef __IA_CSS_BNR2_2_TYPES_H
|
||||
#define __IA_CSS_BNR2_2_TYPES_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* CSS-API header file for Bayer Noise Reduction parameters.
|
||||
*/
|
||||
|
||||
#include "type_support.h" /* int32_t */
|
||||
|
||||
/** Bayer Noise Reduction 2.2 configuration
|
||||
/* Bayer Noise Reduction 2.2 configuration
|
||||
*
|
||||
* \brief BNR2_2 public parameters.
|
||||
* \details Struct with all parameters for the BNR2.2 kernel that can be set
|
||||
|
@ -31,41 +31,41 @@
|
|||
*/
|
||||
struct ia_css_bnr2_2_config {
|
||||
/**@{*/
|
||||
/** Directional variance gain for R/G/B components in dark region */
|
||||
/* Directional variance gain for R/G/B components in dark region */
|
||||
int32_t d_var_gain_r;
|
||||
int32_t d_var_gain_g;
|
||||
int32_t d_var_gain_b;
|
||||
/**@}*/
|
||||
/**@{*/
|
||||
/** Slope of Directional variance gain between dark and bright region */
|
||||
/* Slope of Directional variance gain between dark and bright region */
|
||||
int32_t d_var_gain_slope_r;
|
||||
int32_t d_var_gain_slope_g;
|
||||
int32_t d_var_gain_slope_b;
|
||||
/**@}*/
|
||||
/**@{*/
|
||||
/** Non-Directional variance gain for R/G/B components in dark region */
|
||||
/* Non-Directional variance gain for R/G/B components in dark region */
|
||||
int32_t n_var_gain_r;
|
||||
int32_t n_var_gain_g;
|
||||
int32_t n_var_gain_b;
|
||||
/**@}*/
|
||||
/**@{*/
|
||||
/** Slope of Non-Directional variance gain between dark and bright region */
|
||||
/* Slope of Non-Directional variance gain between dark and bright region */
|
||||
int32_t n_var_gain_slope_r;
|
||||
int32_t n_var_gain_slope_g;
|
||||
int32_t n_var_gain_slope_b;
|
||||
/**@}*/
|
||||
|
||||
int32_t dir_thres; /**< Threshold for directional filtering */
|
||||
int32_t dir_thres_w; /**< Threshold width for directional filtering */
|
||||
int32_t var_offset_coef; /**< Variance offset coefficient */
|
||||
int32_t dir_gain; /**< Gain for directional coefficient */
|
||||
int32_t detail_gain; /**< Gain for low contrast texture control */
|
||||
int32_t detail_gain_divisor; /**< Gain divisor for low contrast texture control */
|
||||
int32_t detail_level_offset; /**< Bias value for low contrast texture control */
|
||||
int32_t d_var_th_min; /**< Minimum clipping value for directional variance*/
|
||||
int32_t d_var_th_max; /**< Maximum clipping value for diretional variance*/
|
||||
int32_t n_var_th_min; /**< Minimum clipping value for non-directional variance*/
|
||||
int32_t n_var_th_max; /**< Maximum clipping value for non-directional variance*/
|
||||
int32_t dir_thres; /** Threshold for directional filtering */
|
||||
int32_t dir_thres_w; /** Threshold width for directional filtering */
|
||||
int32_t var_offset_coef; /** Variance offset coefficient */
|
||||
int32_t dir_gain; /** Gain for directional coefficient */
|
||||
int32_t detail_gain; /** Gain for low contrast texture control */
|
||||
int32_t detail_gain_divisor; /** Gain divisor for low contrast texture control */
|
||||
int32_t detail_level_offset; /** Bias value for low contrast texture control */
|
||||
int32_t d_var_th_min; /** Minimum clipping value for directional variance*/
|
||||
int32_t d_var_th_max; /** Maximum clipping value for diretional variance*/
|
||||
int32_t n_var_th_min; /** Minimum clipping value for non-directional variance*/
|
||||
int32_t n_var_th_max; /** Maximum clipping value for non-directional variance*/
|
||||
};
|
||||
|
||||
#endif /* __IA_CSS_BNR2_2_TYPES_H */
|
||||
|
|
|
@ -15,11 +15,11 @@
|
|||
#ifndef __IA_CSS_CNR2_TYPES_H
|
||||
#define __IA_CSS_CNR2_TYPES_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* CSS-API header file for Chroma Noise Reduction (CNR) parameters
|
||||
*/
|
||||
|
||||
/** Chroma Noise Reduction configuration.
|
||||
/* Chroma Noise Reduction configuration.
|
||||
*
|
||||
* Small sensitivity of edge means strong smoothness and NR performance.
|
||||
* If you see blurred color on vertical edges,
|
||||
|
@ -33,21 +33,21 @@
|
|||
* ISP2: CNR2 is used for Still.
|
||||
*/
|
||||
struct ia_css_cnr_config {
|
||||
uint16_t coring_u; /**< Coring level of U.
|
||||
uint16_t coring_u; /** Coring level of U.
|
||||
u0.13, [0,8191], default/ineffective 0 */
|
||||
uint16_t coring_v; /**< Coring level of V.
|
||||
uint16_t coring_v; /** Coring level of V.
|
||||
u0.13, [0,8191], default/ineffective 0 */
|
||||
uint16_t sense_gain_vy; /**< Sensitivity of horizontal edge of Y.
|
||||
uint16_t sense_gain_vy; /** Sensitivity of horizontal edge of Y.
|
||||
u13.0, [0,8191], default 100, ineffective 8191 */
|
||||
uint16_t sense_gain_vu; /**< Sensitivity of horizontal edge of U.
|
||||
uint16_t sense_gain_vu; /** Sensitivity of horizontal edge of U.
|
||||
u13.0, [0,8191], default 100, ineffective 8191 */
|
||||
uint16_t sense_gain_vv; /**< Sensitivity of horizontal edge of V.
|
||||
uint16_t sense_gain_vv; /** Sensitivity of horizontal edge of V.
|
||||
u13.0, [0,8191], default 100, ineffective 8191 */
|
||||
uint16_t sense_gain_hy; /**< Sensitivity of vertical edge of Y.
|
||||
uint16_t sense_gain_hy; /** Sensitivity of vertical edge of Y.
|
||||
u13.0, [0,8191], default 50, ineffective 8191 */
|
||||
uint16_t sense_gain_hu; /**< Sensitivity of vertical edge of U.
|
||||
uint16_t sense_gain_hu; /** Sensitivity of vertical edge of U.
|
||||
u13.0, [0,8191], default 50, ineffective 8191 */
|
||||
uint16_t sense_gain_hv; /**< Sensitivity of vertical edge of V.
|
||||
uint16_t sense_gain_hv; /** Sensitivity of vertical edge of V.
|
||||
u13.0, [0,8191], default 50, ineffective 8191 */
|
||||
};
|
||||
|
||||
|
|
|
@ -23,10 +23,10 @@
|
|||
*
|
||||
*/
|
||||
struct ia_css_conversion_config {
|
||||
uint32_t en; /**< en parameter */
|
||||
uint32_t dummy0; /**< dummy0 dummy parameter 0 */
|
||||
uint32_t dummy1; /**< dummy1 dummy parameter 1 */
|
||||
uint32_t dummy2; /**< dummy2 dummy parameter 2 */
|
||||
uint32_t en; /** en parameter */
|
||||
uint32_t dummy0; /** dummy0 dummy parameter 0 */
|
||||
uint32_t dummy1; /** dummy1 dummy parameter 1 */
|
||||
uint32_t dummy2; /** dummy2 dummy parameter 2 */
|
||||
};
|
||||
|
||||
#endif /* __IA_CSS_CONVERSION_TYPES_H */
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
#include "dma.h"
|
||||
#include "sh_css_internal.h" /* sh_css_crop_pos */
|
||||
|
||||
/** Crop frame */
|
||||
/* Crop frame */
|
||||
struct sh_css_isp_crop_isp_config {
|
||||
uint32_t width_a_over_b;
|
||||
struct dma_port_config port_b;
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
#ifndef __IA_CSS_CROP_TYPES_H
|
||||
#define __IA_CSS_CROP_TYPES_H
|
||||
|
||||
/** Crop frame
|
||||
/* Crop frame
|
||||
*
|
||||
* ISP block: crop frame
|
||||
*/
|
||||
|
|
|
@ -15,11 +15,11 @@
|
|||
#ifndef __IA_CSS_CSC_TYPES_H
|
||||
#define __IA_CSS_CSC_TYPES_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* CSS-API header file for Color Space Conversion parameters.
|
||||
*/
|
||||
|
||||
/** Color Correction configuration.
|
||||
/* Color Correction configuration.
|
||||
*
|
||||
* This structure is used for 3 cases.
|
||||
* ("YCgCo" is the output format of Demosaic.)
|
||||
|
@ -68,9 +68,9 @@
|
|||
* 4096 -3430 -666
|
||||
*/
|
||||
struct ia_css_cc_config {
|
||||
uint32_t fraction_bits;/**< Fractional bits of matrix.
|
||||
uint32_t fraction_bits;/** Fractional bits of matrix.
|
||||
u8.0, [0,13] */
|
||||
int32_t matrix[3 * 3]; /**< Conversion matrix.
|
||||
int32_t matrix[3 * 3]; /** Conversion matrix.
|
||||
s[13-fraction_bits].[fraction_bits],
|
||||
[-8192,8191] */
|
||||
};
|
||||
|
|
|
@ -22,11 +22,11 @@
|
|||
|
||||
/*VMEM Luma params*/
|
||||
struct ia_css_isp_ctc2_vmem_params {
|
||||
/**< Gains by Y(Luma) at Y = 0.0,Y_X1, Y_X2, Y_X3, Y_X4*/
|
||||
/** Gains by Y(Luma) at Y = 0.0,Y_X1, Y_X2, Y_X3, Y_X4*/
|
||||
VMEM_ARRAY(y_x, ISP_VEC_NELEMS);
|
||||
/** kneepoints by Y(Luma) 0.0, y_x1, y_x2, y _x3, y_x4*/
|
||||
/* kneepoints by Y(Luma) 0.0, y_x1, y_x2, y _x3, y_x4*/
|
||||
VMEM_ARRAY(y_y, ISP_VEC_NELEMS);
|
||||
/** Slopes of lines interconnecting
|
||||
/* Slopes of lines interconnecting
|
||||
* 0.0 -> y_x1 -> y_x2 -> y _x3 -> y_x4 -> 1.0*/
|
||||
VMEM_ARRAY(e_y_slope, ISP_VEC_NELEMS);
|
||||
};
|
||||
|
@ -34,15 +34,15 @@ struct ia_css_isp_ctc2_vmem_params {
|
|||
/*DMEM Chroma params*/
|
||||
struct ia_css_isp_ctc2_dmem_params {
|
||||
|
||||
/** Gains by UV(Chroma) under kneepoints uv_x0 and uv_x1*/
|
||||
/* Gains by UV(Chroma) under kneepoints uv_x0 and uv_x1*/
|
||||
int32_t uv_y0;
|
||||
int32_t uv_y1;
|
||||
|
||||
/** Kneepoints by UV(Chroma)- uv_x0 and uv_x1*/
|
||||
/* Kneepoints by UV(Chroma)- uv_x0 and uv_x1*/
|
||||
int32_t uv_x0;
|
||||
int32_t uv_x1;
|
||||
|
||||
/** Slope of line interconnecting uv_x0 -> uv_x1*/
|
||||
/* Slope of line interconnecting uv_x0 -> uv_x1*/
|
||||
int32_t uv_dydx;
|
||||
|
||||
};
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
#ifndef __IA_CSS_CTC2_TYPES_H
|
||||
#define __IA_CSS_CTC2_TYPES_H
|
||||
|
||||
/** Chroma Tone Control configuration.
|
||||
/* Chroma Tone Control configuration.
|
||||
*
|
||||
* ISP block: CTC2 (CTC by polygonal approximation)
|
||||
* (ISP1: CTC1 (CTC by look-up table) is used.)
|
||||
|
@ -24,7 +24,7 @@
|
|||
*/
|
||||
struct ia_css_ctc2_config {
|
||||
|
||||
/**< Gains by Y(Luma) at Y =0.0,Y_X1, Y_X2, Y_X3, Y_X4 and Y_X5
|
||||
/** Gains by Y(Luma) at Y =0.0,Y_X1, Y_X2, Y_X3, Y_X4 and Y_X5
|
||||
* --default/ineffective value: 4096(0.5f)
|
||||
*/
|
||||
int32_t y_y0;
|
||||
|
@ -33,19 +33,19 @@ struct ia_css_ctc2_config {
|
|||
int32_t y_y3;
|
||||
int32_t y_y4;
|
||||
int32_t y_y5;
|
||||
/** 1st-4th kneepoints by Y(Luma) --default/ineffective value:n/a
|
||||
/* 1st-4th kneepoints by Y(Luma) --default/ineffective value:n/a
|
||||
* requirement: 0.0 < y_x1 < y_x2 <y _x3 < y_x4 < 1.0
|
||||
*/
|
||||
int32_t y_x1;
|
||||
int32_t y_x2;
|
||||
int32_t y_x3;
|
||||
int32_t y_x4;
|
||||
/** Gains by UV(Chroma) under threholds uv_x0 and uv_x1
|
||||
/* Gains by UV(Chroma) under threholds uv_x0 and uv_x1
|
||||
* --default/ineffective value: 4096(0.5f)
|
||||
*/
|
||||
int32_t uv_y0;
|
||||
int32_t uv_y1;
|
||||
/** Minimum and Maximum Thresholds by UV(Chroma)- uv_x0 and uv_x1
|
||||
/* Minimum and Maximum Thresholds by UV(Chroma)- uv_x0 and uv_x1
|
||||
* --default/ineffective value: n/a
|
||||
*/
|
||||
int32_t uv_x0;
|
||||
|
|
|
@ -15,11 +15,11 @@
|
|||
#ifndef __IA_CSS_CTC_TYPES_H
|
||||
#define __IA_CSS_CTC_TYPES_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* CSS-API header file for Chroma Tone Control parameters.
|
||||
*/
|
||||
|
||||
/** Fractional bits for CTC gain (used only for ISP1).
|
||||
/* Fractional bits for CTC gain (used only for ISP1).
|
||||
*
|
||||
* IA_CSS_CTC_COEF_SHIFT(=13) includes not only the fractional bits
|
||||
* of gain(=8), but also the bits(=5) to convert chroma
|
||||
|
@ -32,14 +32,14 @@
|
|||
*/
|
||||
#define IA_CSS_CTC_COEF_SHIFT 13
|
||||
|
||||
/** Number of elements in the CTC table. */
|
||||
/* Number of elements in the CTC table. */
|
||||
#define IA_CSS_VAMEM_1_CTC_TABLE_SIZE_LOG2 10
|
||||
/** Number of elements in the CTC table. */
|
||||
/* Number of elements in the CTC table. */
|
||||
#define IA_CSS_VAMEM_1_CTC_TABLE_SIZE (1U<<IA_CSS_VAMEM_1_CTC_TABLE_SIZE_LOG2)
|
||||
|
||||
/** Number of elements in the CTC table. */
|
||||
/* Number of elements in the CTC table. */
|
||||
#define IA_CSS_VAMEM_2_CTC_TABLE_SIZE_LOG2 8
|
||||
/** Number of elements in the CTC table. */
|
||||
/* Number of elements in the CTC table. */
|
||||
#define IA_CSS_VAMEM_2_CTC_TABLE_SIZE ((1U<<IA_CSS_VAMEM_2_CTC_TABLE_SIZE_LOG2) + 1)
|
||||
|
||||
enum ia_css_vamem_type {
|
||||
|
@ -47,44 +47,44 @@ enum ia_css_vamem_type {
|
|||
IA_CSS_VAMEM_TYPE_2
|
||||
};
|
||||
|
||||
/** Chroma Tone Control configuration.
|
||||
/* Chroma Tone Control configuration.
|
||||
*
|
||||
* ISP block: CTC2 (CTC by polygonal line approximation)
|
||||
* (ISP1: CTC1 (CTC by look-up table) is used.)
|
||||
* ISP2: CTC2 is used.
|
||||
*/
|
||||
struct ia_css_ctc_config {
|
||||
uint16_t y0; /**< 1st kneepoint gain.
|
||||
uint16_t y0; /** 1st kneepoint gain.
|
||||
u[ce_gain_exp].[13-ce_gain_exp], [0,8191],
|
||||
default/ineffective 4096(0.5) */
|
||||
uint16_t y1; /**< 2nd kneepoint gain.
|
||||
uint16_t y1; /** 2nd kneepoint gain.
|
||||
u[ce_gain_exp].[13-ce_gain_exp], [0,8191],
|
||||
default/ineffective 4096(0.5) */
|
||||
uint16_t y2; /**< 3rd kneepoint gain.
|
||||
uint16_t y2; /** 3rd kneepoint gain.
|
||||
u[ce_gain_exp].[13-ce_gain_exp], [0,8191],
|
||||
default/ineffective 4096(0.5) */
|
||||
uint16_t y3; /**< 4th kneepoint gain.
|
||||
uint16_t y3; /** 4th kneepoint gain.
|
||||
u[ce_gain_exp].[13-ce_gain_exp], [0,8191],
|
||||
default/ineffective 4096(0.5) */
|
||||
uint16_t y4; /**< 5th kneepoint gain.
|
||||
uint16_t y4; /** 5th kneepoint gain.
|
||||
u[ce_gain_exp].[13-ce_gain_exp], [0,8191],
|
||||
default/ineffective 4096(0.5) */
|
||||
uint16_t y5; /**< 6th kneepoint gain.
|
||||
uint16_t y5; /** 6th kneepoint gain.
|
||||
u[ce_gain_exp].[13-ce_gain_exp], [0,8191],
|
||||
default/ineffective 4096(0.5) */
|
||||
uint16_t ce_gain_exp; /**< Common exponent of y-axis gain.
|
||||
uint16_t ce_gain_exp; /** Common exponent of y-axis gain.
|
||||
u8.0, [0,13],
|
||||
default/ineffective 1 */
|
||||
uint16_t x1; /**< 2nd kneepoint luma.
|
||||
uint16_t x1; /** 2nd kneepoint luma.
|
||||
u0.13, [0,8191], constraints: 0<x1<x2,
|
||||
default/ineffective 1024 */
|
||||
uint16_t x2; /**< 3rd kneepoint luma.
|
||||
uint16_t x2; /** 3rd kneepoint luma.
|
||||
u0.13, [0,8191], constraints: x1<x2<x3,
|
||||
default/ineffective 2048 */
|
||||
uint16_t x3; /**< 4th kneepoint luma.
|
||||
uint16_t x3; /** 4th kneepoint luma.
|
||||
u0.13, [0,8191], constraints: x2<x3<x4,
|
||||
default/ineffective 6144 */
|
||||
uint16_t x4; /**< 5tn kneepoint luma.
|
||||
uint16_t x4; /** 5tn kneepoint luma.
|
||||
u0.13, [0,8191], constraints: x3<x4<8191,
|
||||
default/ineffective 7168 */
|
||||
};
|
||||
|
@ -94,7 +94,7 @@ union ia_css_ctc_data {
|
|||
uint16_t vamem_2[IA_CSS_VAMEM_2_CTC_TABLE_SIZE];
|
||||
};
|
||||
|
||||
/** CTC table, used for Chroma Tone Control.
|
||||
/* CTC table, used for Chroma Tone Control.
|
||||
*
|
||||
* ISP block: CTC1 (CTC by look-up table)
|
||||
* ISP1: CTC1 is used.
|
||||
|
|
|
@ -15,25 +15,25 @@
|
|||
#ifndef __IA_CSS_DE_TYPES_H
|
||||
#define __IA_CSS_DE_TYPES_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* CSS-API header file for Demosaic (bayer-to-YCgCo) parameters.
|
||||
*/
|
||||
|
||||
/** Demosaic (bayer-to-YCgCo) configuration.
|
||||
/* Demosaic (bayer-to-YCgCo) configuration.
|
||||
*
|
||||
* ISP block: DE1
|
||||
* ISP1: DE1 is used.
|
||||
* (ISP2: DE2 is used.)
|
||||
*/
|
||||
struct ia_css_de_config {
|
||||
ia_css_u0_16 pixelnoise; /**< Pixel noise used in moire elimination.
|
||||
ia_css_u0_16 pixelnoise; /** Pixel noise used in moire elimination.
|
||||
u0.16, [0,65535],
|
||||
default 0, ineffective 0 */
|
||||
ia_css_u0_16 c1_coring_threshold; /**< Coring threshold for C1.
|
||||
ia_css_u0_16 c1_coring_threshold; /** Coring threshold for C1.
|
||||
This is the same as nr_config.threshold_cb.
|
||||
u0.16, [0,65535],
|
||||
default 128(0.001953125), ineffective 0 */
|
||||
ia_css_u0_16 c2_coring_threshold; /**< Coring threshold for C2.
|
||||
ia_css_u0_16 c2_coring_threshold; /** Coring threshold for C2.
|
||||
This is the same as nr_config.threshold_cr.
|
||||
u0.16, [0,65535],
|
||||
default 128(0.001953125), ineffective 0 */
|
||||
|
|
|
@ -15,24 +15,24 @@
|
|||
#ifndef __IA_CSS_DE2_TYPES_H
|
||||
#define __IA_CSS_DE2_TYPES_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* CSS-API header file for Demosaicing parameters.
|
||||
*/
|
||||
|
||||
/** Eigen Color Demosaicing configuration.
|
||||
/* Eigen Color Demosaicing configuration.
|
||||
*
|
||||
* ISP block: DE2
|
||||
* (ISP1: DE1 is used.)
|
||||
* ISP2: DE2 is used.
|
||||
*/
|
||||
struct ia_css_ecd_config {
|
||||
uint16_t zip_strength; /**< Strength of zipper reduction.
|
||||
uint16_t zip_strength; /** Strength of zipper reduction.
|
||||
u0.13, [0,8191],
|
||||
default 5489(0.67), ineffective 0 */
|
||||
uint16_t fc_strength; /**< Strength of false color reduction.
|
||||
uint16_t fc_strength; /** Strength of false color reduction.
|
||||
u0.13, [0,8191],
|
||||
default 8191(almost 1.0), ineffective 0 */
|
||||
uint16_t fc_debias; /**< Prevent color change
|
||||
uint16_t fc_debias; /** Prevent color change
|
||||
on noise or Gr/Gb imbalance.
|
||||
u0.13, [0,8191],
|
||||
default 0, ineffective 0 */
|
||||
|
|
|
@ -15,12 +15,12 @@
|
|||
#ifndef __IA_CSS_DP_TYPES_H
|
||||
#define __IA_CSS_DP_TYPES_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* CSS-API header file for Defect Pixel Correction (DPC) parameters.
|
||||
*/
|
||||
|
||||
|
||||
/** Defect Pixel Correction configuration.
|
||||
/* Defect Pixel Correction configuration.
|
||||
*
|
||||
* ISP block: DPC1 (DPC after WB)
|
||||
* DPC2 (DPC before WB)
|
||||
|
@ -28,14 +28,14 @@
|
|||
* ISP2: DPC2 is used.
|
||||
*/
|
||||
struct ia_css_dp_config {
|
||||
ia_css_u0_16 threshold; /**< The threshold of defect pixel correction,
|
||||
ia_css_u0_16 threshold; /** The threshold of defect pixel correction,
|
||||
representing the permissible difference of
|
||||
intensity between one pixel and its
|
||||
surrounding pixels. Smaller values result
|
||||
in more frequent pixel corrections.
|
||||
u0.16, [0,65535],
|
||||
default 8192, ineffective 65535 */
|
||||
ia_css_u8_8 gain; /**< The sensitivity of mis-correction. ISP will
|
||||
ia_css_u8_8 gain; /** The sensitivity of mis-correction. ISP will
|
||||
miss a lot of defects if the value is set
|
||||
too large.
|
||||
u8.8, [0,65535],
|
||||
|
|
|
@ -15,14 +15,14 @@
|
|||
#ifndef __IA_CSS_DPC2_TYPES_H
|
||||
#define __IA_CSS_DPC2_TYPES_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* CSS-API header file for Defect Pixel Correction 2 (DPC2) parameters.
|
||||
*/
|
||||
|
||||
#include "type_support.h"
|
||||
|
||||
/**@{*/
|
||||
/** Floating point constants for different metrics. */
|
||||
/* Floating point constants for different metrics. */
|
||||
#define METRIC1_ONE_FP (1<<12)
|
||||
#define METRIC2_ONE_FP (1<<5)
|
||||
#define METRIC3_ONE_FP (1<<12)
|
||||
|
@ -30,7 +30,7 @@
|
|||
/**@}*/
|
||||
|
||||
/**@{*/
|
||||
/** Defect Pixel Correction 2 configuration.
|
||||
/* Defect Pixel Correction 2 configuration.
|
||||
*
|
||||
* \brief DPC2 public parameters.
|
||||
* \details Struct with all parameters for the Defect Pixel Correction 2
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
#ifdef ISP2401
|
||||
|
||||
#endif
|
||||
/** dvserence frame */
|
||||
/* dvserence frame */
|
||||
struct sh_css_isp_dvs_isp_config {
|
||||
uint32_t num_horizontal_blocks;
|
||||
uint32_t num_vertical_blocks;
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
#ifndef __IA_CSS_DVS_TYPES_H
|
||||
#define __IA_CSS_DVS_TYPES_H
|
||||
|
||||
/** DVS frame
|
||||
/* DVS frame
|
||||
*
|
||||
* ISP block: dvs frame
|
||||
*/
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
#ifndef __IA_CSS_EED1_8_TYPES_H
|
||||
#define __IA_CSS_EED1_8_TYPES_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* CSS-API header file for Edge Enhanced Demosaic parameters.
|
||||
*/
|
||||
|
||||
|
@ -36,51 +36,51 @@
|
|||
*/
|
||||
#define IA_CSS_NUMBER_OF_DEW_ENHANCE_SEGMENTS 9
|
||||
|
||||
/** Edge Enhanced Demosaic configuration
|
||||
/* Edge Enhanced Demosaic configuration
|
||||
*
|
||||
* ISP2.6.1: EED1_8 is used.
|
||||
*/
|
||||
|
||||
struct ia_css_eed1_8_config {
|
||||
int32_t rbzp_strength; /**< Strength of zipper reduction. */
|
||||
int32_t rbzp_strength; /** Strength of zipper reduction. */
|
||||
|
||||
int32_t fcstrength; /**< Strength of false color reduction. */
|
||||
int32_t fcthres_0; /**< Threshold to prevent chroma coring due to noise or green disparity in dark region. */
|
||||
int32_t fcthres_1; /**< Threshold to prevent chroma coring due to noise or green disparity in bright region. */
|
||||
int32_t fc_sat_coef; /**< How much color saturation to maintain in high color saturation region. */
|
||||
int32_t fc_coring_prm; /**< Chroma coring coefficient for tint color suppression. */
|
||||
int32_t fcstrength; /** Strength of false color reduction. */
|
||||
int32_t fcthres_0; /** Threshold to prevent chroma coring due to noise or green disparity in dark region. */
|
||||
int32_t fcthres_1; /** Threshold to prevent chroma coring due to noise or green disparity in bright region. */
|
||||
int32_t fc_sat_coef; /** How much color saturation to maintain in high color saturation region. */
|
||||
int32_t fc_coring_prm; /** Chroma coring coefficient for tint color suppression. */
|
||||
|
||||
int32_t aerel_thres0; /**< Threshold for Non-Directional Reliability at dark region. */
|
||||
int32_t aerel_gain0; /**< Gain for Non-Directional Reliability at dark region. */
|
||||
int32_t aerel_thres1; /**< Threshold for Non-Directional Reliability at bright region. */
|
||||
int32_t aerel_gain1; /**< Gain for Non-Directional Reliability at bright region. */
|
||||
int32_t aerel_thres0; /** Threshold for Non-Directional Reliability at dark region. */
|
||||
int32_t aerel_gain0; /** Gain for Non-Directional Reliability at dark region. */
|
||||
int32_t aerel_thres1; /** Threshold for Non-Directional Reliability at bright region. */
|
||||
int32_t aerel_gain1; /** Gain for Non-Directional Reliability at bright region. */
|
||||
|
||||
int32_t derel_thres0; /**< Threshold for Directional Reliability at dark region. */
|
||||
int32_t derel_gain0; /**< Gain for Directional Reliability at dark region. */
|
||||
int32_t derel_thres1; /**< Threshold for Directional Reliability at bright region. */
|
||||
int32_t derel_gain1; /**< Gain for Directional Reliability at bright region. */
|
||||
int32_t derel_thres0; /** Threshold for Directional Reliability at dark region. */
|
||||
int32_t derel_gain0; /** Gain for Directional Reliability at dark region. */
|
||||
int32_t derel_thres1; /** Threshold for Directional Reliability at bright region. */
|
||||
int32_t derel_gain1; /** Gain for Directional Reliability at bright region. */
|
||||
|
||||
int32_t coring_pos0; /**< Positive Edge Coring Threshold in dark region. */
|
||||
int32_t coring_pos1; /**< Positive Edge Coring Threshold in bright region. */
|
||||
int32_t coring_neg0; /**< Negative Edge Coring Threshold in dark region. */
|
||||
int32_t coring_neg1; /**< Negative Edge Coring Threshold in bright region. */
|
||||
int32_t coring_pos0; /** Positive Edge Coring Threshold in dark region. */
|
||||
int32_t coring_pos1; /** Positive Edge Coring Threshold in bright region. */
|
||||
int32_t coring_neg0; /** Negative Edge Coring Threshold in dark region. */
|
||||
int32_t coring_neg1; /** Negative Edge Coring Threshold in bright region. */
|
||||
|
||||
int32_t gain_exp; /**< Common Exponent of Gain. */
|
||||
int32_t gain_pos0; /**< Gain for Positive Edge in dark region. */
|
||||
int32_t gain_pos1; /**< Gain for Positive Edge in bright region. */
|
||||
int32_t gain_neg0; /**< Gain for Negative Edge in dark region. */
|
||||
int32_t gain_neg1; /**< Gain for Negative Edge in bright region. */
|
||||
int32_t gain_exp; /** Common Exponent of Gain. */
|
||||
int32_t gain_pos0; /** Gain for Positive Edge in dark region. */
|
||||
int32_t gain_pos1; /** Gain for Positive Edge in bright region. */
|
||||
int32_t gain_neg0; /** Gain for Negative Edge in dark region. */
|
||||
int32_t gain_neg1; /** Gain for Negative Edge in bright region. */
|
||||
|
||||
int32_t pos_margin0; /**< Margin for Positive Edge in dark region. */
|
||||
int32_t pos_margin1; /**< Margin for Positive Edge in bright region. */
|
||||
int32_t neg_margin0; /**< Margin for Negative Edge in dark region. */
|
||||
int32_t neg_margin1; /**< Margin for Negative Edge in bright region. */
|
||||
int32_t pos_margin0; /** Margin for Positive Edge in dark region. */
|
||||
int32_t pos_margin1; /** Margin for Positive Edge in bright region. */
|
||||
int32_t neg_margin0; /** Margin for Negative Edge in dark region. */
|
||||
int32_t neg_margin1; /** Margin for Negative Edge in bright region. */
|
||||
|
||||
int32_t dew_enhance_seg_x[IA_CSS_NUMBER_OF_DEW_ENHANCE_SEGMENTS]; /**< Segment data for directional edge weight: X. */
|
||||
int32_t dew_enhance_seg_y[IA_CSS_NUMBER_OF_DEW_ENHANCE_SEGMENTS]; /**< Segment data for directional edge weight: Y. */
|
||||
int32_t dew_enhance_seg_slope[(IA_CSS_NUMBER_OF_DEW_ENHANCE_SEGMENTS - 1)]; /**< Segment data for directional edge weight: Slope. */
|
||||
int32_t dew_enhance_seg_exp[(IA_CSS_NUMBER_OF_DEW_ENHANCE_SEGMENTS - 1)]; /**< Segment data for directional edge weight: Exponent. */
|
||||
int32_t dedgew_max; /**< Max Weight for Directional Edge. */
|
||||
int32_t dew_enhance_seg_x[IA_CSS_NUMBER_OF_DEW_ENHANCE_SEGMENTS]; /** Segment data for directional edge weight: X. */
|
||||
int32_t dew_enhance_seg_y[IA_CSS_NUMBER_OF_DEW_ENHANCE_SEGMENTS]; /** Segment data for directional edge weight: Y. */
|
||||
int32_t dew_enhance_seg_slope[(IA_CSS_NUMBER_OF_DEW_ENHANCE_SEGMENTS - 1)]; /** Segment data for directional edge weight: Slope. */
|
||||
int32_t dew_enhance_seg_exp[(IA_CSS_NUMBER_OF_DEW_ENHANCE_SEGMENTS - 1)]; /** Segment data for directional edge weight: Exponent. */
|
||||
int32_t dedgew_max; /** Max Weight for Directional Edge. */
|
||||
};
|
||||
|
||||
#endif /* __IA_CSS_EED1_8_TYPES_H */
|
||||
|
|
|
@ -15,20 +15,20 @@
|
|||
#ifndef __IA_CSS_FORMATS_TYPES_H
|
||||
#define __IA_CSS_FORMATS_TYPES_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* CSS-API header file for output format parameters.
|
||||
*/
|
||||
|
||||
#include "type_support.h"
|
||||
|
||||
/** Formats configuration.
|
||||
/* Formats configuration.
|
||||
*
|
||||
* ISP block: FORMATS
|
||||
* ISP1: FORMATS is used.
|
||||
* ISP2: FORMATS is used.
|
||||
*/
|
||||
struct ia_css_formats_config {
|
||||
uint32_t video_full_range_flag; /**< selects the range of YUV output.
|
||||
uint32_t video_full_range_flag; /** selects the range of YUV output.
|
||||
u8.0, [0,1],
|
||||
default 1, ineffective n/a\n
|
||||
1 - full range, luma 0-255, chroma 0-255\n
|
||||
|
|
|
@ -15,11 +15,11 @@
|
|||
#ifndef __IA_CSS_FPN_TYPES_H
|
||||
#define __IA_CSS_FPN_TYPES_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* CSS-API header file for Fixed Pattern Noise parameters.
|
||||
*/
|
||||
|
||||
/** Fixed Pattern Noise table.
|
||||
/* Fixed Pattern Noise table.
|
||||
*
|
||||
* This contains the fixed patterns noise values
|
||||
* obtained from a black frame capture.
|
||||
|
@ -33,15 +33,15 @@
|
|||
*/
|
||||
|
||||
struct ia_css_fpn_table {
|
||||
int16_t *data; /**< Table content (fixed patterns noise).
|
||||
int16_t *data; /** Table content (fixed patterns noise).
|
||||
u0.[13-shift], [0,63] */
|
||||
uint32_t width; /**< Table width (in pixels).
|
||||
uint32_t width; /** Table width (in pixels).
|
||||
This is the input frame width. */
|
||||
uint32_t height; /**< Table height (in pixels).
|
||||
uint32_t height; /** Table height (in pixels).
|
||||
This is the input frame height. */
|
||||
uint32_t shift; /**< Common exponent of table content.
|
||||
uint32_t shift; /** Common exponent of table content.
|
||||
u8.0, [0,13] */
|
||||
uint32_t enabled; /**< Fpn is enabled.
|
||||
uint32_t enabled; /** Fpn is enabled.
|
||||
bool */
|
||||
};
|
||||
|
||||
|
|
|
@ -15,36 +15,36 @@
|
|||
#ifndef __IA_CSS_GC_TYPES_H
|
||||
#define __IA_CSS_GC_TYPES_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* CSS-API header file for Gamma Correction parameters.
|
||||
*/
|
||||
|
||||
#include "isp/kernels/ctc/ctc_1.0/ia_css_ctc_types.h" /* FIXME: Needed for ia_css_vamem_type */
|
||||
|
||||
/** Fractional bits for GAMMA gain */
|
||||
/* Fractional bits for GAMMA gain */
|
||||
#define IA_CSS_GAMMA_GAIN_K_SHIFT 13
|
||||
|
||||
/** Number of elements in the gamma table. */
|
||||
/* Number of elements in the gamma table. */
|
||||
#define IA_CSS_VAMEM_1_GAMMA_TABLE_SIZE_LOG2 10
|
||||
#define IA_CSS_VAMEM_1_GAMMA_TABLE_SIZE (1U<<IA_CSS_VAMEM_1_GAMMA_TABLE_SIZE_LOG2)
|
||||
|
||||
/** Number of elements in the gamma table. */
|
||||
/* Number of elements in the gamma table. */
|
||||
#define IA_CSS_VAMEM_2_GAMMA_TABLE_SIZE_LOG2 8
|
||||
#define IA_CSS_VAMEM_2_GAMMA_TABLE_SIZE ((1U<<IA_CSS_VAMEM_2_GAMMA_TABLE_SIZE_LOG2) + 1)
|
||||
|
||||
/** Gamma table, used for Y(Luma) Gamma Correction.
|
||||
/* Gamma table, used for Y(Luma) Gamma Correction.
|
||||
*
|
||||
* ISP block: GC1 (YUV Gamma Correction)
|
||||
* ISP1: GC1 is used.
|
||||
* (ISP2: GC2(sRGB Gamma Correction) is used.)
|
||||
*/
|
||||
/**< IA_CSS_VAMEM_TYPE_1(ISP2300) or
|
||||
/** IA_CSS_VAMEM_TYPE_1(ISP2300) or
|
||||
IA_CSS_VAMEM_TYPE_2(ISP2400) */
|
||||
union ia_css_gc_data {
|
||||
uint16_t vamem_1[IA_CSS_VAMEM_1_GAMMA_TABLE_SIZE];
|
||||
/**< Y(Luma) Gamma table on vamem type 1. u0.8, [0,255] */
|
||||
/** Y(Luma) Gamma table on vamem type 1. u0.8, [0,255] */
|
||||
uint16_t vamem_2[IA_CSS_VAMEM_2_GAMMA_TABLE_SIZE];
|
||||
/**< Y(Luma) Gamma table on vamem type 2. u0.8, [0,255] */
|
||||
/** Y(Luma) Gamma table on vamem type 2. u0.8, [0,255] */
|
||||
};
|
||||
|
||||
struct ia_css_gamma_table {
|
||||
|
@ -52,22 +52,22 @@ struct ia_css_gamma_table {
|
|||
union ia_css_gc_data data;
|
||||
};
|
||||
|
||||
/** Gamma Correction configuration (used only for YUV Gamma Correction).
|
||||
/* Gamma Correction configuration (used only for YUV Gamma Correction).
|
||||
*
|
||||
* ISP block: GC1 (YUV Gamma Correction)
|
||||
* ISP1: GC1 is used.
|
||||
* (ISP2: GC2 (sRGB Gamma Correction) is used.)
|
||||
*/
|
||||
struct ia_css_gc_config {
|
||||
uint16_t gain_k1; /**< Gain to adjust U after YUV Gamma Correction.
|
||||
uint16_t gain_k1; /** Gain to adjust U after YUV Gamma Correction.
|
||||
u0.16, [0,65535],
|
||||
default/ineffective 19000(0.29) */
|
||||
uint16_t gain_k2; /**< Gain to adjust V after YUV Gamma Correction.
|
||||
uint16_t gain_k2; /** Gain to adjust V after YUV Gamma Correction.
|
||||
u0.16, [0,65535],
|
||||
default/ineffective 19000(0.29) */
|
||||
};
|
||||
|
||||
/** Chroma Enhancement configuration.
|
||||
/* Chroma Enhancement configuration.
|
||||
*
|
||||
* This parameter specifies range of chroma output level.
|
||||
* The standard range is [0,255] or [16,240].
|
||||
|
@ -77,20 +77,20 @@ struct ia_css_gc_config {
|
|||
* (ISP2: CE1 is not used.)
|
||||
*/
|
||||
struct ia_css_ce_config {
|
||||
uint8_t uv_level_min; /**< Minimum of chroma output level.
|
||||
uint8_t uv_level_min; /** Minimum of chroma output level.
|
||||
u0.8, [0,255], default/ineffective 0 */
|
||||
uint8_t uv_level_max; /**< Maximum of chroma output level.
|
||||
uint8_t uv_level_max; /** Maximum of chroma output level.
|
||||
u0.8, [0,255], default/ineffective 255 */
|
||||
};
|
||||
|
||||
/** Multi-Axes Color Correction (MACC) configuration.
|
||||
/* Multi-Axes Color Correction (MACC) configuration.
|
||||
*
|
||||
* ISP block: MACC2 (MACC by matrix and exponent(ia_css_macc_config))
|
||||
* (ISP1: MACC1 (MACC by only matrix) is used.)
|
||||
* ISP2: MACC2 is used.
|
||||
*/
|
||||
struct ia_css_macc_config {
|
||||
uint8_t exp; /**< Common exponent of ia_css_macc_table.
|
||||
uint8_t exp; /** Common exponent of ia_css_macc_table.
|
||||
u8.0, [0,13], default 1, ineffective 1 */
|
||||
};
|
||||
|
||||
|
|
|
@ -17,33 +17,33 @@
|
|||
|
||||
#include "isp/kernels/ctc/ctc_1.0/ia_css_ctc_types.h" /* FIXME: needed for ia_css_vamem_type */
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* CSS-API header file for Gamma Correction parameters.
|
||||
*/
|
||||
|
||||
/** sRGB Gamma table, used for sRGB Gamma Correction.
|
||||
/* sRGB Gamma table, used for sRGB Gamma Correction.
|
||||
*
|
||||
* ISP block: GC2 (sRGB Gamma Correction)
|
||||
* (ISP1: GC1(YUV Gamma Correction) is used.)
|
||||
* ISP2: GC2 is used.
|
||||
*/
|
||||
|
||||
/** Number of elements in the sRGB gamma table. */
|
||||
/* Number of elements in the sRGB gamma table. */
|
||||
#define IA_CSS_VAMEM_1_RGB_GAMMA_TABLE_SIZE_LOG2 8
|
||||
#define IA_CSS_VAMEM_1_RGB_GAMMA_TABLE_SIZE (1U<<IA_CSS_VAMEM_1_RGB_GAMMA_TABLE_SIZE_LOG2)
|
||||
|
||||
/** Number of elements in the sRGB gamma table. */
|
||||
/* Number of elements in the sRGB gamma table. */
|
||||
#define IA_CSS_VAMEM_2_RGB_GAMMA_TABLE_SIZE_LOG2 8
|
||||
#define IA_CSS_VAMEM_2_RGB_GAMMA_TABLE_SIZE ((1U<<IA_CSS_VAMEM_2_RGB_GAMMA_TABLE_SIZE_LOG2) + 1)
|
||||
|
||||
/**< IA_CSS_VAMEM_TYPE_1(ISP2300) or
|
||||
/** IA_CSS_VAMEM_TYPE_1(ISP2300) or
|
||||
IA_CSS_VAMEM_TYPE_2(ISP2400) */
|
||||
union ia_css_rgb_gamma_data {
|
||||
uint16_t vamem_1[IA_CSS_VAMEM_1_RGB_GAMMA_TABLE_SIZE];
|
||||
/**< RGB Gamma table on vamem type1. This table is not used,
|
||||
/** RGB Gamma table on vamem type1. This table is not used,
|
||||
because sRGB Gamma Correction is not implemented for ISP2300. */
|
||||
uint16_t vamem_2[IA_CSS_VAMEM_2_RGB_GAMMA_TABLE_SIZE];
|
||||
/**< RGB Gamma table on vamem type2. u0.12, [0,4095] */
|
||||
/** RGB Gamma table on vamem type2. u0.12, [0,4095] */
|
||||
};
|
||||
|
||||
struct ia_css_rgb_gamma_table {
|
||||
|
|
|
@ -24,14 +24,14 @@
|
|||
* \detail Currently HDR paramters are used only for testing purposes
|
||||
*/
|
||||
struct ia_css_hdr_irradiance_params {
|
||||
int test_irr; /**< Test parameter */
|
||||
int match_shift[IA_CSS_HDR_MAX_NUM_INPUT_FRAMES - 1]; /**< Histogram matching shift parameter */
|
||||
int match_mul[IA_CSS_HDR_MAX_NUM_INPUT_FRAMES - 1]; /**< Histogram matching multiplication parameter */
|
||||
int thr_low[IA_CSS_HDR_MAX_NUM_INPUT_FRAMES - 1]; /**< Weight map soft threshold low bound parameter */
|
||||
int thr_high[IA_CSS_HDR_MAX_NUM_INPUT_FRAMES - 1]; /**< Weight map soft threshold high bound parameter */
|
||||
int thr_coeff[IA_CSS_HDR_MAX_NUM_INPUT_FRAMES - 1]; /**< Soft threshold linear function coefficien */
|
||||
int thr_shift[IA_CSS_HDR_MAX_NUM_INPUT_FRAMES - 1]; /**< Soft threshold precision shift parameter */
|
||||
int weight_bpp; /**< Weight map bits per pixel */
|
||||
int test_irr; /** Test parameter */
|
||||
int match_shift[IA_CSS_HDR_MAX_NUM_INPUT_FRAMES - 1]; /** Histogram matching shift parameter */
|
||||
int match_mul[IA_CSS_HDR_MAX_NUM_INPUT_FRAMES - 1]; /** Histogram matching multiplication parameter */
|
||||
int thr_low[IA_CSS_HDR_MAX_NUM_INPUT_FRAMES - 1]; /** Weight map soft threshold low bound parameter */
|
||||
int thr_high[IA_CSS_HDR_MAX_NUM_INPUT_FRAMES - 1]; /** Weight map soft threshold high bound parameter */
|
||||
int thr_coeff[IA_CSS_HDR_MAX_NUM_INPUT_FRAMES - 1]; /** Soft threshold linear function coefficien */
|
||||
int thr_shift[IA_CSS_HDR_MAX_NUM_INPUT_FRAMES - 1]; /** Soft threshold precision shift parameter */
|
||||
int weight_bpp; /** Weight map bits per pixel */
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -39,7 +39,7 @@ struct ia_css_hdr_irradiance_params {
|
|||
* \detail Currently HDR paramters are used only for testing purposes
|
||||
*/
|
||||
struct ia_css_hdr_deghost_params {
|
||||
int test_deg; /**< Test parameter */
|
||||
int test_deg; /** Test parameter */
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -47,7 +47,7 @@ struct ia_css_hdr_deghost_params {
|
|||
* \detail Currently HDR paramters are used only for testing purposes
|
||||
*/
|
||||
struct ia_css_hdr_exclusion_params {
|
||||
int test_excl; /**< Test parameter */
|
||||
int test_excl; /** Test parameter */
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -56,9 +56,9 @@ struct ia_css_hdr_exclusion_params {
|
|||
* the CSS API. Currenly, only test paramters are defined.
|
||||
*/
|
||||
struct ia_css_hdr_config {
|
||||
struct ia_css_hdr_irradiance_params irradiance; /**< HDR irradiance paramaters */
|
||||
struct ia_css_hdr_deghost_params deghost; /**< HDR deghosting parameters */
|
||||
struct ia_css_hdr_exclusion_params exclusion; /**< HDR exclusion parameters */
|
||||
struct ia_css_hdr_irradiance_params irradiance; /** HDR irradiance paramaters */
|
||||
struct ia_css_hdr_deghost_params deghost; /** HDR deghosting parameters */
|
||||
struct ia_css_hdr_exclusion_params exclusion; /** HDR exclusion parameters */
|
||||
};
|
||||
|
||||
#endif /* __IA_CSS_HDR_TYPES_H */
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#ifdef ISP2401
|
||||
/**
|
||||
/*
|
||||
Support for Intel Camera Imaging ISP subsystem.
|
||||
Copyright (c) 2010 - 2015, Intel Corporation.
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#ifdef ISP2401
|
||||
/**
|
||||
/*
|
||||
Support for Intel Camera Imaging ISP subsystem.
|
||||
Copyright (c) 2010 - 2015, Intel Corporation.
|
||||
|
||||
|
|
|
@ -15,22 +15,22 @@
|
|||
#ifndef __IA_CSS_MACC1_5_TYPES_H
|
||||
#define __IA_CSS_MACC1_5_TYPES_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* CSS-API header file for Multi-Axis Color Conversion algorithm parameters.
|
||||
*/
|
||||
|
||||
/** Multi-Axis Color Conversion configuration
|
||||
/* Multi-Axis Color Conversion configuration
|
||||
*
|
||||
* ISP2.6.1: MACC1_5 is used.
|
||||
*/
|
||||
|
||||
|
||||
/** Number of axes in the MACC table. */
|
||||
/* Number of axes in the MACC table. */
|
||||
#define IA_CSS_MACC_NUM_AXES 16
|
||||
/** Number of coefficients per MACC axes. */
|
||||
/* Number of coefficients per MACC axes. */
|
||||
#define IA_CSS_MACC_NUM_COEFS 4
|
||||
|
||||
/** Multi-Axes Color Correction (MACC) table.
|
||||
/* Multi-Axes Color Correction (MACC) table.
|
||||
*
|
||||
* ISP block: MACC (MACC by only matrix)
|
||||
* MACC1_5 (MACC by matrix and exponent(ia_css_macc_config))
|
||||
|
@ -55,19 +55,19 @@
|
|||
*/
|
||||
struct ia_css_macc1_5_table {
|
||||
int16_t data[IA_CSS_MACC_NUM_COEFS * IA_CSS_MACC_NUM_AXES];
|
||||
/**< 16 of 2x2 matix
|
||||
/** 16 of 2x2 matix
|
||||
MACC1_5: s[macc_config.exp].[13-macc_config.exp], [-8192,8191]
|
||||
default/ineffective: (s1.12)
|
||||
16 of "identity 2x2 matix" {4096,0,0,4096} */
|
||||
};
|
||||
|
||||
/** Multi-Axes Color Correction (MACC) configuration.
|
||||
/* Multi-Axes Color Correction (MACC) configuration.
|
||||
*
|
||||
* ISP block: MACC1_5 (MACC by matrix and exponent(ia_css_macc_config))
|
||||
* ISP2: MACC1_5 is used.
|
||||
*/
|
||||
struct ia_css_macc1_5_config {
|
||||
uint8_t exp; /**< Common exponent of ia_css_macc_table.
|
||||
uint8_t exp; /** Common exponent of ia_css_macc_table.
|
||||
u8.0, [0,13], default 1, ineffective 1 */
|
||||
};
|
||||
|
||||
|
|
|
@ -15,17 +15,17 @@
|
|||
#ifndef __IA_CSS_MACC_TYPES_H
|
||||
#define __IA_CSS_MACC_TYPES_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* CSS-API header file for Multi-Axis Color Correction (MACC) parameters.
|
||||
*/
|
||||
|
||||
/** Number of axes in the MACC table. */
|
||||
/* Number of axes in the MACC table. */
|
||||
#define IA_CSS_MACC_NUM_AXES 16
|
||||
/** Number of coefficients per MACC axes. */
|
||||
/* Number of coefficients per MACC axes. */
|
||||
#define IA_CSS_MACC_NUM_COEFS 4
|
||||
/** The number of planes in the morphing table. */
|
||||
/* The number of planes in the morphing table. */
|
||||
|
||||
/** Multi-Axis Color Correction (MACC) table.
|
||||
/* Multi-Axis Color Correction (MACC) table.
|
||||
*
|
||||
* ISP block: MACC1 (MACC by only matrix)
|
||||
* MACC2 (MACC by matrix and exponent(ia_css_macc_config))
|
||||
|
@ -51,7 +51,7 @@
|
|||
|
||||
struct ia_css_macc_table {
|
||||
int16_t data[IA_CSS_MACC_NUM_COEFS * IA_CSS_MACC_NUM_AXES];
|
||||
/**< 16 of 2x2 matix
|
||||
/** 16 of 2x2 matix
|
||||
MACC1: s2.13, [-65536,65535]
|
||||
default/ineffective:
|
||||
16 of "identity 2x2 matix" {8192,0,0,8192}
|
||||
|
|
|
@ -15,11 +15,11 @@
|
|||
#ifndef __IA_CSS_OB2_TYPES_H
|
||||
#define __IA_CSS_OB2_TYPES_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* CSS-API header file for Optical Black algorithm parameters.
|
||||
*/
|
||||
|
||||
/** Optical Black configuration
|
||||
/* Optical Black configuration
|
||||
*
|
||||
* ISP2.6.1: OB2 is used.
|
||||
*/
|
||||
|
@ -27,16 +27,16 @@
|
|||
#include "ia_css_frac.h"
|
||||
|
||||
struct ia_css_ob2_config {
|
||||
ia_css_u0_16 level_gr; /**< Black level for GR pixels.
|
||||
ia_css_u0_16 level_gr; /** Black level for GR pixels.
|
||||
u0.16, [0,65535],
|
||||
default/ineffective 0 */
|
||||
ia_css_u0_16 level_r; /**< Black level for R pixels.
|
||||
ia_css_u0_16 level_r; /** Black level for R pixels.
|
||||
u0.16, [0,65535],
|
||||
default/ineffective 0 */
|
||||
ia_css_u0_16 level_b; /**< Black level for B pixels.
|
||||
ia_css_u0_16 level_b; /** Black level for B pixels.
|
||||
u0.16, [0,65535],
|
||||
default/ineffective 0 */
|
||||
ia_css_u0_16 level_gb; /**< Black level for GB pixels.
|
||||
ia_css_u0_16 level_gb; /** Black level for GB pixels.
|
||||
u0.16, [0,65535],
|
||||
default/ineffective 0 */
|
||||
};
|
||||
|
|
|
@ -15,51 +15,51 @@
|
|||
#ifndef __IA_CSS_OB_TYPES_H
|
||||
#define __IA_CSS_OB_TYPES_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* CSS-API header file for Optical Black level parameters.
|
||||
*/
|
||||
|
||||
#include "ia_css_frac.h"
|
||||
|
||||
/** Optical black mode.
|
||||
/* Optical black mode.
|
||||
*/
|
||||
enum ia_css_ob_mode {
|
||||
IA_CSS_OB_MODE_NONE, /**< OB has no effect. */
|
||||
IA_CSS_OB_MODE_FIXED, /**< Fixed OB */
|
||||
IA_CSS_OB_MODE_RASTER /**< Raster OB */
|
||||
IA_CSS_OB_MODE_NONE, /** OB has no effect. */
|
||||
IA_CSS_OB_MODE_FIXED, /** Fixed OB */
|
||||
IA_CSS_OB_MODE_RASTER /** Raster OB */
|
||||
};
|
||||
|
||||
/** Optical Black level configuration.
|
||||
/* Optical Black level configuration.
|
||||
*
|
||||
* ISP block: OB1
|
||||
* ISP1: OB1 is used.
|
||||
* ISP2: OB1 is used.
|
||||
*/
|
||||
struct ia_css_ob_config {
|
||||
enum ia_css_ob_mode mode; /**< Mode (None / Fixed / Raster).
|
||||
enum ia_css_ob_mode mode; /** Mode (None / Fixed / Raster).
|
||||
enum, [0,2],
|
||||
default 1, ineffective 0 */
|
||||
ia_css_u0_16 level_gr; /**< Black level for GR pixels
|
||||
ia_css_u0_16 level_gr; /** Black level for GR pixels
|
||||
(used for Fixed Mode only).
|
||||
u0.16, [0,65535],
|
||||
default/ineffective 0 */
|
||||
ia_css_u0_16 level_r; /**< Black level for R pixels
|
||||
ia_css_u0_16 level_r; /** Black level for R pixels
|
||||
(used for Fixed Mode only).
|
||||
u0.16, [0,65535],
|
||||
default/ineffective 0 */
|
||||
ia_css_u0_16 level_b; /**< Black level for B pixels
|
||||
ia_css_u0_16 level_b; /** Black level for B pixels
|
||||
(used for Fixed Mode only).
|
||||
u0.16, [0,65535],
|
||||
default/ineffective 0 */
|
||||
ia_css_u0_16 level_gb; /**< Black level for GB pixels
|
||||
ia_css_u0_16 level_gb; /** Black level for GB pixels
|
||||
(used for Fixed Mode only).
|
||||
u0.16, [0,65535],
|
||||
default/ineffective 0 */
|
||||
uint16_t start_position; /**< Start position of OB area
|
||||
uint16_t start_position; /** Start position of OB area
|
||||
(used for Raster Mode only).
|
||||
u16.0, [0,63],
|
||||
default/ineffective 0 */
|
||||
uint16_t end_position; /**< End position of OB area
|
||||
uint16_t end_position; /** End position of OB area
|
||||
(used for Raster Mode only).
|
||||
u16.0, [0,63],
|
||||
default/ineffective 0 */
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
#include "dma.h"
|
||||
#include "ia_css_frame_comm.h" /* ia_css_frame_sp_info */
|
||||
|
||||
/** output frame */
|
||||
/* output frame */
|
||||
struct sh_css_isp_output_isp_config {
|
||||
uint32_t width_a_over_b;
|
||||
uint32_t height;
|
||||
|
|
|
@ -15,11 +15,11 @@
|
|||
#ifndef __IA_CSS_OUTPUT_TYPES_H
|
||||
#define __IA_CSS_OUTPUT_TYPES_H
|
||||
|
||||
/** @file
|
||||
/* @file
|
||||
* CSS-API header file for parameters of output frames.
|
||||
*/
|
||||
|
||||
/** Output frame
|
||||
/* Output frame
|
||||
*
|
||||
* ISP block: output frame
|
||||
*/
|
||||
|
@ -40,8 +40,8 @@ struct ia_css_output1_configuration {
|
|||
};
|
||||
|
||||
struct ia_css_output_config {
|
||||
uint8_t enable_hflip; /**< enable horizontal output mirroring */
|
||||
uint8_t enable_vflip; /**< enable vertical output mirroring */
|
||||
uint8_t enable_hflip; /** enable horizontal output mirroring */
|
||||
uint8_t enable_vflip; /** enable vertical output mirroring */
|
||||
};
|
||||
|
||||
#endif /* __IA_CSS_OUTPUT_TYPES_H */
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
#include <ia_css_frame_public.h>
|
||||
#include "sh_css_internal.h"
|
||||
|
||||
/** qplane frame
|
||||
/* qplane frame
|
||||
*
|
||||
* ISP block: qplane frame
|
||||
*/
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
#include <ia_css_frame_public.h>
|
||||
#include "sh_css_internal.h"
|
||||
|
||||
/** Raw frame
|
||||
/* Raw frame
|
||||
*
|
||||
* ISP block: Raw frame
|
||||
*/
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
#include "sh_css_defs.h"
|
||||
#include "dma.h"
|
||||
|
||||
/** Reference frame */
|
||||
/* Reference frame */
|
||||
struct ia_css_ref_configuration {
|
||||
const struct ia_css_frame *ref_frames[MAX_NUM_VIDEO_DELAY_FRAMES];
|
||||
uint32_t dvs_frame_delay;
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue