#include "hmm.h"
#include "ia_css_debug.h"
#include "sw_event_global.h"
#include "sp.h"
#include "assert_support.h"
#include "sh_css_sp.h"
#include "ia_css_pipeline.h"
#include "ia_css_isp_param.h"
#include "ia_css_bufq.h"
#define PIPELINE_NUM_UNMAPPED …
#define PIPELINE_SP_THREAD_EMPTY_TOKEN …
#define PIPELINE_SP_THREAD_RESERVED_TOKEN …
static unsigned int pipeline_num_to_sp_thread_map[IA_CSS_PIPELINE_NUM_MAX];
static unsigned int pipeline_sp_thread_list[SH_CSS_MAX_SP_THREADS];
static void pipeline_init_sp_thread_map(void);
static void pipeline_map_num_to_sp_thread(unsigned int pipe_num);
static void pipeline_unmap_num_to_sp_thread(unsigned int pipe_num);
static void pipeline_init_defaults(
struct ia_css_pipeline *pipeline,
enum ia_css_pipe_id pipe_id,
unsigned int pipe_num,
unsigned int dvs_frame_delay);
static void pipeline_stage_destroy(struct ia_css_pipeline_stage *stage);
static int pipeline_stage_create(
struct ia_css_pipeline_stage_desc *stage_desc,
struct ia_css_pipeline_stage **new_stage);
static void ia_css_pipeline_set_zoom_stage(struct ia_css_pipeline *pipeline);
static void ia_css_pipeline_configure_inout_port(struct ia_css_pipeline *me,
bool continuous);
void ia_css_pipeline_init(void)
{ … }
int ia_css_pipeline_create(
struct ia_css_pipeline *pipeline,
enum ia_css_pipe_id pipe_id,
unsigned int pipe_num,
unsigned int dvs_frame_delay)
{ … }
void ia_css_pipeline_map(unsigned int pipe_num, bool map)
{ … }
void ia_css_pipeline_destroy(struct ia_css_pipeline *pipeline)
{ … }
void ia_css_pipeline_start(enum ia_css_pipe_id pipe_id,
struct ia_css_pipeline *pipeline)
{ … }
bool ia_css_pipeline_get_sp_thread_id(unsigned int key, unsigned int *val)
{ … }
void ia_css_pipeline_dump_thread_map_info(void)
{ … }
int ia_css_pipeline_request_stop(struct ia_css_pipeline *pipeline)
{ … }
void ia_css_pipeline_clean(struct ia_css_pipeline *pipeline)
{ … }
int ia_css_pipeline_create_and_add_stage(
struct ia_css_pipeline *pipeline,
struct ia_css_pipeline_stage_desc *stage_desc,
struct ia_css_pipeline_stage **stage)
{ … }
void ia_css_pipeline_finalize_stages(struct ia_css_pipeline *pipeline,
bool continuous)
{ … }
int ia_css_pipeline_get_stage(struct ia_css_pipeline *pipeline,
int mode,
struct ia_css_pipeline_stage **stage)
{ … }
int ia_css_pipeline_get_stage_from_fw(struct ia_css_pipeline
*pipeline,
u32 fw_handle,
struct ia_css_pipeline_stage **stage)
{ … }
int ia_css_pipeline_get_fw_from_stage(struct ia_css_pipeline
*pipeline,
u32 stage_num,
uint32_t *fw_handle)
{ … }
int ia_css_pipeline_get_output_stage(
struct ia_css_pipeline *pipeline,
int mode,
struct ia_css_pipeline_stage **stage)
{ … }
bool ia_css_pipeline_has_stopped(struct ia_css_pipeline *pipeline)
{ … }
struct sh_css_sp_pipeline_io_status *ia_css_pipeline_get_pipe_io_status(void)
{ … }
bool ia_css_pipeline_is_mapped(unsigned int key)
{ … }
static void pipeline_stage_destroy(struct ia_css_pipeline_stage *stage)
{ … }
static void pipeline_init_sp_thread_map(void)
{ … }
static void pipeline_map_num_to_sp_thread(unsigned int pipe_num)
{ … }
static void pipeline_unmap_num_to_sp_thread(unsigned int pipe_num)
{ … }
static int pipeline_stage_create(
struct ia_css_pipeline_stage_desc *stage_desc,
struct ia_css_pipeline_stage **new_stage)
{ … }
static const struct ia_css_frame ia_css_default_frame = …;
static void pipeline_init_defaults(
struct ia_css_pipeline *pipeline,
enum ia_css_pipe_id pipe_id,
unsigned int pipe_num,
unsigned int dvs_frame_delay)
{ … }
static void ia_css_pipeline_set_zoom_stage(struct ia_css_pipeline *pipeline)
{ … }
static void
ia_css_pipeline_configure_inout_port(struct ia_css_pipeline *me,
bool continuous)
{ … }