#include "platform_support.h"
#include "ia_css_inputfifo.h"
#include "device_access.h"
#define __INLINE_SP__
#include "sp.h"
#define __INLINE_ISP__
#include "isp.h"
#define __INLINE_IRQ__
#include "irq.h"
#define __INLINE_FIFO_MONITOR__
#include "fifo_monitor.h"
#define __INLINE_EVENT__
#include "event_fifo.h"
#define __INLINE_SP__
#include "input_system.h"
#include "assert_support.h"
#include "sh_css_internal.h"
#include "ia_css_isys.h"
#define HBLANK_CYCLES …
#define MARKER_CYCLES …
#include <hive_isp_css_streaming_to_mipi_types_hrt.h>
enum inputfifo_mipi_data_type { … };
static unsigned int inputfifo_curr_ch_id, inputfifo_curr_fmt_type;
struct inputfifo_instance { … };
#define INPUTFIFO_NR_OF_S2M_CHANNELS …
static struct inputfifo_instance
inputfifo_inst_admin[INPUTFIFO_NR_OF_S2M_CHANNELS];
static unsigned int inputfifo_wrap_marker(
unsigned int marker)
{ … }
static inline void
_sh_css_fifo_snd(unsigned int token)
{ … }
static void inputfifo_send_data_a(
unsigned int data)
{ … }
static void inputfifo_send_data_b(
unsigned int data)
{ … }
static void inputfifo_send_data(
unsigned int a,
unsigned int b)
{ … }
static void inputfifo_send_sol(void)
{ … }
static void inputfifo_send_eol(void)
{ … }
static void inputfifo_send_sof(void)
{ … }
static void inputfifo_send_eof(void)
{ … }
static void inputfifo_send_ch_id_and_fmt_type(
unsigned int ch_id,
unsigned int fmt_type)
{ … }
static void inputfifo_send_empty_token(void)
{ … }
static void inputfifo_start_frame(
unsigned int ch_id,
unsigned int fmt_type)
{ … }
static void inputfifo_end_frame(
unsigned int marker_cycles)
{ … }
static void inputfifo_send_line2(
const unsigned short *data,
unsigned int width,
const unsigned short *data2,
unsigned int width2,
unsigned int hblank_cycles,
unsigned int marker_cycles,
unsigned int two_ppc,
enum inputfifo_mipi_data_type type)
{ … }
static void
inputfifo_send_line(const unsigned short *data,
unsigned int width,
unsigned int hblank_cycles,
unsigned int marker_cycles,
unsigned int two_ppc,
enum inputfifo_mipi_data_type type)
{ … }
static void inputfifo_send_frame(
const unsigned short *data,
unsigned int width,
unsigned int height,
unsigned int ch_id,
unsigned int fmt_type,
unsigned int hblank_cycles,
unsigned int marker_cycles,
unsigned int two_ppc,
enum inputfifo_mipi_data_type type)
{ … }
static enum inputfifo_mipi_data_type inputfifo_determine_type(
enum atomisp_input_format input_format)
{ … }
static struct inputfifo_instance *inputfifo_get_inst(
unsigned int ch_id)
{ … }
void ia_css_inputfifo_send_input_frame(
const unsigned short *data,
unsigned int width,
unsigned int height,
unsigned int ch_id,
enum atomisp_input_format input_format,
bool two_ppc)
{ … }
void ia_css_inputfifo_start_frame(
unsigned int ch_id,
enum atomisp_input_format input_format,
bool two_ppc)
{ … }
void ia_css_inputfifo_send_line(
unsigned int ch_id,
const unsigned short *data,
unsigned int width,
const unsigned short *data2,
unsigned int width2)
{ … }
void ia_css_inputfifo_send_embedded_line(
unsigned int ch_id,
enum atomisp_input_format data_type,
const unsigned short *data,
unsigned int width)
{ … }
void ia_css_inputfifo_end_frame(
unsigned int ch_id)
{ … }