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:
Mauro Carvalho Chehab 2017-11-29 03:16:17 -05:00
parent 04226916d2
commit d929fb4e16
160 changed files with 1739 additions and 1739 deletions

View File

@ -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,

View File

@ -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

View File

@ -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;

View File

@ -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 {

View File

@ -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;

View File

@ -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.
*/

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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__ */

View File

@ -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__ */

View File

@ -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)
{

View File

@ -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) */

View File

@ -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__ */

View File

@ -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__ */

View File

@ -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];

View File

@ -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__ */

View File

@ -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,

View File

@ -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

View File

@ -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);

View File

@ -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__ */

View File

@ -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__ */

View File

@ -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

View File

@ -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

View File

@ -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__ */

View File

@ -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__ */

View File

@ -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.
*

View File

@ -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
*

View File

@ -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

View File

@ -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

View File

@ -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.
*/

View File

@ -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
*

View File

@ -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

View File

@ -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
*

View File

@ -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.
*

View File

@ -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.
*/

View File

@ -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);

View File

@ -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 */

View File

@ -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. */
};

View File

@ -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.

View File

@ -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

View File

@ -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 */

View File

@ -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 */

View File

@ -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

View File

@ -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 */

View File

@ -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.

View File

@ -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

View File

@ -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.

View File

@ -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

View File

@ -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
*/

View File

@ -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

View File

@ -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 */

View File

@ -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
*

View File

@ -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
*/

View File

@ -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.

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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 */

View File

@ -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

View File

@ -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 */
};

View File

@ -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];
};

View File

@ -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];
};

View File

@ -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);

View File

@ -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];

View File

@ -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];
};

View File

@ -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];
/**@}*/

View File

@ -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 */

View File

@ -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 */
};

View File

@ -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 */

View File

@ -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;

View File

@ -15,7 +15,7 @@
#ifndef __IA_CSS_CROP_TYPES_H
#define __IA_CSS_CROP_TYPES_H
/** Crop frame
/* Crop frame
*
* ISP block: crop frame
*/

View File

@ -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] */
};

View File

@ -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;
};

View File

@ -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;

View File

@ -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.

View File

@ -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 */

View File

@ -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 */

View File

@ -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],

View File

@ -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

View File

@ -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;

View File

@ -15,7 +15,7 @@
#ifndef __IA_CSS_DVS_TYPES_H
#define __IA_CSS_DVS_TYPES_H
/** DVS frame
/* DVS frame
*
* ISP block: dvs frame
*/

View File

@ -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 */

View File

@ -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

View File

@ -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 */
};

View File

@ -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 */
};

View File

@ -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 {

View File

@ -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 */

View File

@ -1,5 +1,5 @@
#ifdef ISP2401
/**
/*
Support for Intel Camera Imaging ISP subsystem.
Copyright (c) 2010 - 2015, Intel Corporation.

View File

@ -1,5 +1,5 @@
#ifdef ISP2401
/**
/*
Support for Intel Camera Imaging ISP subsystem.
Copyright (c) 2010 - 2015, Intel Corporation.

View File

@ -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 */
};

View File

@ -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}

View File

@ -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 */
};

View File

@ -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 */

View File

@ -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;

View File

@ -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 */

View File

@ -18,7 +18,7 @@
#include <ia_css_frame_public.h>
#include "sh_css_internal.h"
/** qplane frame
/* qplane frame
*
* ISP block: qplane frame
*/

View File

@ -18,7 +18,7 @@
#include <ia_css_frame_public.h>
#include "sh_css_internal.h"
/** Raw frame
/* Raw frame
*
* ISP block: Raw frame
*/

View File

@ -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