media: atomisp: fix several coding style issues
Use checkpatch.pl --fix-inplace --strict to solve several coding style issues, manually reviewing the produced code and fixing some troubles caused by checkpatch. Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
This commit is contained in:
parent
4636a85cff
commit
bdfe0beb95
|
@ -239,6 +239,7 @@ static int gc0310_write_reg_array(struct i2c_client *client,
|
|||
|
||||
return __gc0310_flush_reg_array(client, &ctrl);
|
||||
}
|
||||
|
||||
static int gc0310_g_focal(struct v4l2_subdev *sd, s32 *val)
|
||||
{
|
||||
*val = (GC0310_FOCAL_LENGTH_NUM << 16) | GC0310_FOCAL_LENGTH_DEM;
|
||||
|
@ -499,6 +500,7 @@ static long gc0310_s_exposure(struct v4l2_subdev *sd,
|
|||
/* we should not accept the invalid value below. */
|
||||
if (gain == 0) {
|
||||
struct i2c_client *client = v4l2_get_subdevdata(sd);
|
||||
|
||||
v4l2_err(client, "%s: invalid value\n", __func__);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
@ -520,7 +522,6 @@ static int gc0310_h_flip(struct v4l2_subdev *sd, s32 value)
|
|||
|
||||
static long gc0310_ioctl(struct v4l2_subdev *sd, unsigned int cmd, void *arg)
|
||||
{
|
||||
|
||||
switch (cmd) {
|
||||
case ATOMISP_IOC_S_EXPOSURE:
|
||||
return gc0310_s_exposure(sd, arg);
|
||||
|
@ -734,6 +735,7 @@ static int power_ctrl(struct v4l2_subdev *sd, bool flag)
|
|||
{
|
||||
int ret = 0;
|
||||
struct gc0310_device *dev = to_gc0310_sensor(sd);
|
||||
|
||||
if (!dev || !dev->platform_data)
|
||||
return -ENODEV;
|
||||
|
||||
|
@ -783,7 +785,6 @@ static int gpio_ctrl(struct v4l2_subdev *sd, bool flag)
|
|||
return ret;
|
||||
}
|
||||
|
||||
|
||||
static int power_down(struct v4l2_subdev *sd);
|
||||
|
||||
static int power_up(struct v4l2_subdev *sd)
|
||||
|
@ -867,6 +868,7 @@ static int power_down(struct v4l2_subdev *sd)
|
|||
static int gc0310_s_power(struct v4l2_subdev *sd, int on)
|
||||
{
|
||||
int ret;
|
||||
|
||||
if (on == 0)
|
||||
return power_down(sd);
|
||||
else {
|
||||
|
@ -899,9 +901,9 @@ static int distance(struct gc0310_resolution *res, u32 w, u32 h)
|
|||
h_ratio = (res->height << 13) / h;
|
||||
if (h_ratio == 0)
|
||||
return -1;
|
||||
match = abs(((w_ratio << 13) / h_ratio) - ((int)8192));
|
||||
match = abs(((w_ratio << 13) / h_ratio) - 8192);
|
||||
|
||||
if ((w_ratio < (int)8192) || (h_ratio < (int)8192) ||
|
||||
if ((w_ratio < 8192) || (h_ratio < 8192) ||
|
||||
(match > LARGEST_ALLOWED_RATIO_MISMATCH))
|
||||
return -1;
|
||||
|
||||
|
@ -947,7 +949,6 @@ static int get_resolution_index(int w, int h)
|
|||
return -1;
|
||||
}
|
||||
|
||||
|
||||
/* TODO: remove it. */
|
||||
static int startup(struct v4l2_subdev *sd)
|
||||
{
|
||||
|
@ -977,6 +978,7 @@ static int gc0310_set_fmt(struct v4l2_subdev *sd,
|
|||
struct camera_mipi_info *gc0310_info = NULL;
|
||||
int ret = 0;
|
||||
int idx = 0;
|
||||
|
||||
pr_info("%s S\n", __func__);
|
||||
|
||||
if (format->pad)
|
||||
|
@ -1015,7 +1017,7 @@ static int gc0310_set_fmt(struct v4l2_subdev *sd,
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
printk("%s: before gc0310_write_reg_array %s\n", __FUNCTION__,
|
||||
printk("%s: before gc0310_write_reg_array %s\n", __func__,
|
||||
gc0310_res[dev->fmt_idx].desc);
|
||||
ret = startup(sd);
|
||||
if (ret) {
|
||||
|
@ -1079,7 +1081,7 @@ static int gc0310_detect(struct i2c_client *client)
|
|||
dev_err(&client->dev, "read sensor_id_low failed\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
id = ((((u16) high) << 8) | (u16) low);
|
||||
id = ((((u16)high) << 8) | (u16)low);
|
||||
pr_info("sensor ID = 0x%x\n", id);
|
||||
|
||||
if (id != GC0310_ID) {
|
||||
|
@ -1140,7 +1142,6 @@ static int gc0310_s_stream(struct v4l2_subdev *sd, int enable)
|
|||
return ret;
|
||||
}
|
||||
|
||||
|
||||
static int gc0310_s_config(struct v4l2_subdev *sd,
|
||||
int irq, void *platform_data)
|
||||
{
|
||||
|
@ -1241,10 +1242,8 @@ static int gc0310_enum_frame_size(struct v4l2_subdev *sd,
|
|||
fse->max_height = gc0310_res[index].height;
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
|
||||
static int gc0310_g_skip_frames(struct v4l2_subdev *sd, u32 *frames)
|
||||
{
|
||||
struct gc0310_device *dev = to_gc0310_sensor(sd);
|
||||
|
@ -1288,6 +1287,7 @@ static int gc0310_remove(struct i2c_client *client)
|
|||
{
|
||||
struct v4l2_subdev *sd = i2c_get_clientdata(client);
|
||||
struct gc0310_device *dev = to_gc0310_sensor(sd);
|
||||
|
||||
dev_dbg(&client->dev, "gc0310_remove...\n");
|
||||
|
||||
dev->platform_data->csi_cfg(sd, 0);
|
||||
|
@ -1315,7 +1315,7 @@ static int gc0310_probe(struct i2c_client *client)
|
|||
mutex_init(&dev->input_lock);
|
||||
|
||||
dev->fmt_idx = 0;
|
||||
v4l2_i2c_subdev_init(&(dev->sd), client, &gc0310_ops);
|
||||
v4l2_i2c_subdev_init(&dev->sd, client, &gc0310_ops);
|
||||
|
||||
pdata = gmin_camera_platform_data(&dev->sd,
|
||||
ATOMISP_INPUT_FORMAT_RAW_8,
|
||||
|
|
|
@ -168,6 +168,7 @@ static int __gc2235_buf_reg_array(struct i2c_client *client,
|
|||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int __gc2235_write_reg_is_consecutive(struct i2c_client *client,
|
||||
struct gc2235_write_ctrl *ctrl,
|
||||
const struct gc2235_reg *next)
|
||||
|
@ -177,6 +178,7 @@ static int __gc2235_write_reg_is_consecutive(struct i2c_client *client,
|
|||
|
||||
return ctrl->buffer.addr + ctrl->index == next->reg;
|
||||
}
|
||||
|
||||
static int gc2235_write_reg_array(struct i2c_client *client,
|
||||
const struct gc2235_reg *reglist)
|
||||
{
|
||||
|
@ -238,7 +240,6 @@ static int gc2235_g_fnumber_range(struct v4l2_subdev *sd, s32 *val)
|
|||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static int gc2235_get_intg_factor(struct i2c_client *client,
|
||||
struct camera_mipi_info *info,
|
||||
const struct gc2235_resolution *res)
|
||||
|
@ -355,6 +356,7 @@ static long __gc2235_set_exposure(struct v4l2_subdev *sd, int coarse_itg,
|
|||
u16 coarse_integration = (u16)coarse_itg;
|
||||
int ret = 0;
|
||||
u16 expo_coarse_h, expo_coarse_l, gain_val = 0xF0, gain_val2 = 0xF0;
|
||||
|
||||
expo_coarse_h = coarse_integration >> 8;
|
||||
expo_coarse_l = coarse_integration & 0xff;
|
||||
|
||||
|
@ -382,7 +384,6 @@ static long __gc2235_set_exposure(struct v4l2_subdev *sd, int coarse_itg,
|
|||
return ret;
|
||||
}
|
||||
|
||||
|
||||
static int gc2235_set_exposure(struct v4l2_subdev *sd, int exposure,
|
||||
int gain, int digitgain)
|
||||
{
|
||||
|
@ -406,12 +407,14 @@ static long gc2235_s_exposure(struct v4l2_subdev *sd,
|
|||
/* we should not accept the invalid value below. */
|
||||
if (gain == 0) {
|
||||
struct i2c_client *client = v4l2_get_subdevdata(sd);
|
||||
|
||||
v4l2_err(client, "%s: invalid value\n", __func__);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
return gc2235_set_exposure(sd, exp, gain, digitgain);
|
||||
}
|
||||
|
||||
static long gc2235_ioctl(struct v4l2_subdev *sd, unsigned int cmd, void *arg)
|
||||
{
|
||||
switch (cmd) {
|
||||
|
@ -422,6 +425,7 @@ static long gc2235_ioctl(struct v4l2_subdev *sd, unsigned int cmd, void *arg)
|
|||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* This returns the exposure time being used. This should only be used
|
||||
* for filling in EXIF data, not for actual image processing.
|
||||
*/
|
||||
|
@ -739,6 +743,7 @@ static int startup(struct v4l2_subdev *sd)
|
|||
struct gc2235_device *dev = to_gc2235_sensor(sd);
|
||||
struct i2c_client *client = v4l2_get_subdevdata(sd);
|
||||
int ret = 0;
|
||||
|
||||
if (is_init == 0) {
|
||||
/* force gc2235 to do a reset in res change, otherwise it
|
||||
* can not output normal after switching res. and it is not
|
||||
|
@ -764,7 +769,6 @@ static int gc2235_set_fmt(struct v4l2_subdev *sd,
|
|||
struct v4l2_subdev_pad_config *cfg,
|
||||
struct v4l2_subdev_format *format)
|
||||
{
|
||||
|
||||
struct v4l2_mbus_framefmt *fmt = &format->format;
|
||||
struct gc2235_device *dev = to_gc2235_sensor(sd);
|
||||
struct i2c_client *client = v4l2_get_subdevdata(sd);
|
||||
|
@ -873,6 +877,7 @@ static int gc2235_s_stream(struct v4l2_subdev *sd, int enable)
|
|||
struct gc2235_device *dev = to_gc2235_sensor(sd);
|
||||
struct i2c_client *client = v4l2_get_subdevdata(sd);
|
||||
int ret;
|
||||
|
||||
mutex_lock(&dev->input_lock);
|
||||
|
||||
if (enable)
|
||||
|
@ -884,7 +889,6 @@ static int gc2235_s_stream(struct v4l2_subdev *sd, int enable)
|
|||
return ret;
|
||||
}
|
||||
|
||||
|
||||
static int gc2235_s_config(struct v4l2_subdev *sd,
|
||||
int irq, void *platform_data)
|
||||
{
|
||||
|
@ -983,7 +987,6 @@ static int gc2235_enum_frame_size(struct v4l2_subdev *sd,
|
|||
fse->max_height = gc2235_res[index].height;
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
static int gc2235_g_skip_frames(struct v4l2_subdev *sd, u32 *frames)
|
||||
|
@ -1029,6 +1032,7 @@ static int gc2235_remove(struct i2c_client *client)
|
|||
{
|
||||
struct v4l2_subdev *sd = i2c_get_clientdata(client);
|
||||
struct gc2235_device *dev = to_gc2235_sensor(sd);
|
||||
|
||||
dev_dbg(&client->dev, "gc2235_remove...\n");
|
||||
|
||||
dev->platform_data->csi_cfg(sd, 0);
|
||||
|
@ -1055,7 +1059,7 @@ static int gc2235_probe(struct i2c_client *client)
|
|||
mutex_init(&dev->input_lock);
|
||||
|
||||
dev->fmt_idx = 0;
|
||||
v4l2_i2c_subdev_init(&(dev->sd), client, &gc2235_ops);
|
||||
v4l2_i2c_subdev_init(&dev->sd, client, &gc2235_ops);
|
||||
|
||||
gcpdev = gmin_camera_platform_data(&dev->sd,
|
||||
ATOMISP_INPUT_FORMAT_RAW_10,
|
||||
|
|
|
@ -22,26 +22,26 @@
|
|||
|
||||
/* Tagged binary data container structure definitions. */
|
||||
struct tbd_header {
|
||||
uint32_t tag; /*!< Tag identifier, also checks endianness */
|
||||
uint32_t size; /*!< Container size including this header */
|
||||
uint32_t version; /*!< Version, format 0xYYMMDDVV */
|
||||
uint32_t revision; /*!< Revision, format 0xYYMMDDVV */
|
||||
uint32_t config_bits; /*!< Configuration flag bits set */
|
||||
uint32_t checksum; /*!< Global checksum, header included */
|
||||
u32 tag; /*!< Tag identifier, also checks endianness */
|
||||
u32 size; /*!< Container size including this header */
|
||||
u32 version; /*!< Version, format 0xYYMMDDVV */
|
||||
u32 revision; /*!< Revision, format 0xYYMMDDVV */
|
||||
u32 config_bits; /*!< Configuration flag bits set */
|
||||
u32 checksum; /*!< Global checksum, header included */
|
||||
} __packed;
|
||||
|
||||
struct tbd_record_header {
|
||||
uint32_t size; /*!< Size of record including header */
|
||||
uint8_t format_id; /*!< tbd_format_t enumeration values used */
|
||||
uint8_t packing_key; /*!< Packing method; 0 = no packing */
|
||||
uint16_t class_id; /*!< tbd_class_t enumeration values used */
|
||||
u32 size; /*!< Size of record including header */
|
||||
u8 format_id; /*!< tbd_format_t enumeration values used */
|
||||
u8 packing_key; /*!< Packing method; 0 = no packing */
|
||||
u16 class_id; /*!< tbd_class_t enumeration values used */
|
||||
} __packed;
|
||||
|
||||
struct tbd_data_record_header {
|
||||
uint16_t next_offset;
|
||||
uint16_t flags;
|
||||
uint16_t data_offset;
|
||||
uint16_t data_size;
|
||||
u16 next_offset;
|
||||
u16 flags;
|
||||
u16 data_offset;
|
||||
u16 data_size;
|
||||
} __packed;
|
||||
|
||||
#define TBD_CLASS_DRV_ID 2
|
||||
|
@ -58,7 +58,8 @@ static int set_msr_configuration(struct i2c_client *client, uint8_t *bufptr,
|
|||
* followed by lobyte) where the remaining data in the sequence
|
||||
* will be written. */
|
||||
|
||||
uint8_t *ptr = bufptr;
|
||||
u8 *ptr = bufptr;
|
||||
|
||||
while (ptr < bufptr + size) {
|
||||
struct i2c_msg msg = {
|
||||
.addr = client->addr,
|
||||
|
@ -88,7 +89,7 @@ static int set_msr_configuration(struct i2c_client *client, uint8_t *bufptr,
|
|||
static int parse_and_apply(struct i2c_client *client, uint8_t *buffer,
|
||||
unsigned int size)
|
||||
{
|
||||
uint8_t *endptr8 = buffer + size;
|
||||
u8 *endptr8 = buffer + size;
|
||||
struct tbd_data_record_header *header =
|
||||
(struct tbd_data_record_header *)buffer;
|
||||
|
||||
|
@ -170,6 +171,7 @@ int load_msr_list(struct i2c_client *client, char *name,
|
|||
const struct firmware **fw)
|
||||
{
|
||||
int ret = request_firmware(fw, name, &client->dev);
|
||||
|
||||
if (ret) {
|
||||
dev_err(&client->dev,
|
||||
"Error %d while requesting firmware %s\n",
|
||||
|
|
|
@ -46,14 +46,14 @@
|
|||
#define LM3554_CURRENT_LIMIT_SHIFT 5
|
||||
|
||||
#define LM3554_FLAGS_REG 0xD0
|
||||
#define LM3554_FLAG_TIMEOUT (1 << 0)
|
||||
#define LM3554_FLAG_THERMAL_SHUTDOWN (1 << 1)
|
||||
#define LM3554_FLAG_LED_FAULT (1 << 2)
|
||||
#define LM3554_FLAG_TX1_INTERRUPT (1 << 3)
|
||||
#define LM3554_FLAG_TX2_INTERRUPT (1 << 4)
|
||||
#define LM3554_FLAG_LED_THERMAL_FAULT (1 << 5)
|
||||
#define LM3554_FLAG_UNUSED (1 << 6)
|
||||
#define LM3554_FLAG_INPUT_VOLTAGE_LOW (1 << 7)
|
||||
#define LM3554_FLAG_TIMEOUT BIT(0)
|
||||
#define LM3554_FLAG_THERMAL_SHUTDOWN BIT(1)
|
||||
#define LM3554_FLAG_LED_FAULT BIT(2)
|
||||
#define LM3554_FLAG_TX1_INTERRUPT BIT(3)
|
||||
#define LM3554_FLAG_TX2_INTERRUPT BIT(4)
|
||||
#define LM3554_FLAG_LED_THERMAL_FAULT BIT(5)
|
||||
#define LM3554_FLAG_UNUSED BIT(6)
|
||||
#define LM3554_FLAG_INPUT_VOLTAGE_LOW BIT(7)
|
||||
|
||||
#define LM3554_CONFIG_REG_1 0xE0
|
||||
#define LM3554_ENVM_TX2_SHIFT 5
|
||||
|
@ -881,7 +881,6 @@ static int lm3554_probe(struct i2c_client *client)
|
|||
NULL);
|
||||
|
||||
if (flash->ctrl_handler.error) {
|
||||
|
||||
dev_err(&client->dev, "ctrl_handler error.\n");
|
||||
goto fail2;
|
||||
}
|
||||
|
|
|
@ -73,8 +73,8 @@ mt9m114_read_reg(struct i2c_client *client, u16 data_length, u32 reg, u32 *val)
|
|||
msg[0].buf = data;
|
||||
|
||||
/* high byte goes out first */
|
||||
data[0] = (u16) (reg >> 8);
|
||||
data[1] = (u16) (reg & 0xff);
|
||||
data[0] = (u16)(reg >> 8);
|
||||
data[1] = (u16)(reg & 0xff);
|
||||
|
||||
msg[1].addr = client->addr;
|
||||
msg[1].len = data_length;
|
||||
|
@ -239,7 +239,6 @@ misensor_rmw_reg(struct i2c_client *client, u16 data_length, u16 reg,
|
|||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static int __mt9m114_flush_reg_array(struct i2c_client *client,
|
||||
struct mt9m114_write_ctrl *ctrl)
|
||||
{
|
||||
|
@ -428,12 +427,12 @@ static int mt9m114_wait_state(struct i2c_client *client, int timeout)
|
|||
}
|
||||
|
||||
return -EINVAL;
|
||||
|
||||
}
|
||||
|
||||
static int mt9m114_set_suspend(struct v4l2_subdev *sd)
|
||||
{
|
||||
struct i2c_client *client = v4l2_get_subdevdata(sd);
|
||||
|
||||
return mt9m114_write_reg_array(client,
|
||||
mt9m114_standby_reg, POST_POLLING);
|
||||
}
|
||||
|
@ -499,7 +498,7 @@ static int power_up(struct v4l2_subdev *sd)
|
|||
struct i2c_client *client = v4l2_get_subdevdata(sd);
|
||||
int ret;
|
||||
|
||||
if (NULL == dev->platform_data) {
|
||||
if (!dev->platform_data) {
|
||||
dev_err(&client->dev, "no camera_sensor_platform_data");
|
||||
return -ENODEV;
|
||||
}
|
||||
|
@ -541,7 +540,7 @@ static int power_down(struct v4l2_subdev *sd)
|
|||
struct i2c_client *client = v4l2_get_subdevdata(sd);
|
||||
int ret;
|
||||
|
||||
if (NULL == dev->platform_data) {
|
||||
if (!dev->platform_data) {
|
||||
dev_err(&client->dev, "no camera_sensor_platform_data");
|
||||
return -ENODEV;
|
||||
}
|
||||
|
@ -704,9 +703,9 @@ static int mt9m114_res2size(struct v4l2_subdev *sd, int *h_size, int *v_size)
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (h_size != NULL)
|
||||
if (h_size)
|
||||
*h_size = hsize;
|
||||
if (v_size != NULL)
|
||||
if (v_size)
|
||||
*v_size = vsize;
|
||||
|
||||
return 0;
|
||||
|
@ -720,7 +719,7 @@ static int mt9m114_get_intg_factor(struct i2c_client *client,
|
|||
u32 reg_val;
|
||||
int ret;
|
||||
|
||||
if (info == NULL)
|
||||
if (!info)
|
||||
return -EINVAL;
|
||||
|
||||
ret = mt9m114_read_reg(client, MISENSOR_32BIT,
|
||||
|
@ -807,6 +806,7 @@ static int mt9m114_get_fmt(struct v4l2_subdev *sd,
|
|||
struct v4l2_mbus_framefmt *fmt = &format->format;
|
||||
int width, height;
|
||||
int ret;
|
||||
|
||||
if (format->pad)
|
||||
return -EINVAL;
|
||||
fmt->code = MEDIA_BUS_FMT_SGRBG10_1X10;
|
||||
|
@ -833,13 +833,14 @@ static int mt9m114_set_fmt(struct v4l2_subdev *sd,
|
|||
struct camera_mipi_info *mt9m114_info = NULL;
|
||||
|
||||
int ret;
|
||||
|
||||
if (format->pad)
|
||||
return -EINVAL;
|
||||
dev->streamon = 0;
|
||||
dev->first_exp = MT9M114_DEFAULT_FIRST_EXP;
|
||||
|
||||
mt9m114_info = v4l2_get_subdev_hostdata(sd);
|
||||
if (mt9m114_info == NULL)
|
||||
if (!mt9m114_info)
|
||||
return -EINVAL;
|
||||
|
||||
mt9m114_try_res(&width, &height);
|
||||
|
@ -964,6 +965,7 @@ static int mt9m114_g_hflip(struct v4l2_subdev *sd, s32 *val)
|
|||
struct i2c_client *c = v4l2_get_subdevdata(sd);
|
||||
int ret;
|
||||
u32 data;
|
||||
|
||||
ret = mt9m114_read_reg(c, MISENSOR_16BIT,
|
||||
(u32)MISENSOR_READ_MODE, &data);
|
||||
if (ret)
|
||||
|
@ -1082,7 +1084,6 @@ static long mt9m114_s_exposure(struct v4l2_subdev *sd,
|
|||
|
||||
static long mt9m114_ioctl(struct v4l2_subdev *sd, unsigned int cmd, void *arg)
|
||||
{
|
||||
|
||||
switch (cmd) {
|
||||
case ATOMISP_IOC_S_EXPOSURE:
|
||||
return mt9m114_s_exposure(sd, arg);
|
||||
|
@ -1110,6 +1111,7 @@ static int mt9m114_g_exposure(struct v4l2_subdev *sd, s32 *value)
|
|||
*value = coarse;
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifndef CSS15
|
||||
/*
|
||||
* This function will return the sensor supported max exposure zone number.
|
||||
|
@ -1563,7 +1565,7 @@ mt9m114_s_config(struct v4l2_subdev *sd, int irq, void *platform_data)
|
|||
struct i2c_client *client = v4l2_get_subdevdata(sd);
|
||||
int ret;
|
||||
|
||||
if (NULL == platform_data)
|
||||
if (!platform_data)
|
||||
return -ENODEV;
|
||||
|
||||
dev->platform_data =
|
||||
|
@ -1738,7 +1740,6 @@ static int mt9m114_enum_frame_size(struct v4l2_subdev *sd,
|
|||
struct v4l2_subdev_pad_config *cfg,
|
||||
struct v4l2_subdev_frame_size_enum *fse)
|
||||
{
|
||||
|
||||
unsigned int index = fse->index;
|
||||
|
||||
if (index >= N_RES)
|
||||
|
@ -1757,7 +1758,7 @@ static int mt9m114_g_skip_frames(struct v4l2_subdev *sd, u32 *frames)
|
|||
int index;
|
||||
struct mt9m114_device *snr = to_mt9m114_sensor(sd);
|
||||
|
||||
if (frames == NULL)
|
||||
if (!frames)
|
||||
return -EINVAL;
|
||||
|
||||
for (index = 0; index < N_RES; index++) {
|
||||
|
|
|
@ -34,8 +34,8 @@
|
|||
|
||||
#include "ov2680.h"
|
||||
|
||||
static int h_flag = 0;
|
||||
static int v_flag = 0;
|
||||
static int h_flag;
|
||||
static int v_flag;
|
||||
static enum atomisp_bayer_order ov2680_bayer_order_mapping[] = {
|
||||
atomisp_bayer_order_bggr,
|
||||
atomisp_bayer_order_grbg,
|
||||
|
@ -64,7 +64,7 @@ static int ov2680_read_reg(struct i2c_client *client,
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
memset(msg, 0 , sizeof(msg));
|
||||
memset(msg, 0, sizeof(msg));
|
||||
|
||||
msg[0].addr = client->addr;
|
||||
msg[0].flags = 0;
|
||||
|
@ -235,6 +235,7 @@ static int ov2680_write_reg_array(struct i2c_client *client,
|
|||
const struct ov2680_reg *next = reglist;
|
||||
struct ov2680_write_ctrl ctrl;
|
||||
int err;
|
||||
|
||||
dev_dbg(&client->dev, "++++write reg array\n");
|
||||
ctrl.index = 0;
|
||||
for (; next->type != OV2680_TOK_TERM; next++) {
|
||||
|
@ -250,7 +251,7 @@ static int ov2680_write_reg_array(struct i2c_client *client,
|
|||
* If next address is not consecutive, data needs to be
|
||||
* flushed before proceed.
|
||||
*/
|
||||
dev_dbg(&client->dev, "+++ov2680_write_reg_array reg=%x->%x\n", next->reg,next->val);
|
||||
dev_dbg(&client->dev, "+++ov2680_write_reg_array reg=%x->%x\n", next->reg, next->val);
|
||||
if (!__ov2680_write_reg_is_consecutive(client, &ctrl,
|
||||
next)) {
|
||||
err = __ov2680_flush_reg_array(client, &ctrl);
|
||||
|
@ -269,9 +270,9 @@ static int ov2680_write_reg_array(struct i2c_client *client,
|
|||
|
||||
return __ov2680_flush_reg_array(client, &ctrl);
|
||||
}
|
||||
|
||||
static int ov2680_g_focal(struct v4l2_subdev *sd, s32 *val)
|
||||
{
|
||||
|
||||
*val = (OV2680_FOCAL_LENGTH_NUM << 16) | OV2680_FOCAL_LENGTH_DEM;
|
||||
return 0;
|
||||
}
|
||||
|
@ -296,6 +297,7 @@ static int ov2680_g_bin_factor_x(struct v4l2_subdev *sd, s32 *val)
|
|||
{
|
||||
struct ov2680_device *dev = to_ov2680_sensor(sd);
|
||||
struct i2c_client *client = v4l2_get_subdevdata(sd);
|
||||
|
||||
dev_dbg(&client->dev, "++++ov2680_g_bin_factor_x\n");
|
||||
*val = ov2680_res[dev->fmt_idx].bin_factor_x;
|
||||
|
||||
|
@ -312,7 +314,6 @@ static int ov2680_g_bin_factor_y(struct v4l2_subdev *sd, s32 *val)
|
|||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static int ov2680_get_intg_factor(struct i2c_client *client,
|
||||
struct camera_mipi_info *info,
|
||||
const struct ov2680_resolution *res)
|
||||
|
@ -323,6 +324,7 @@ static int ov2680_get_intg_factor(struct i2c_client *client,
|
|||
unsigned int pix_clk_freq_hz;
|
||||
u16 reg_val;
|
||||
int ret;
|
||||
|
||||
dev_dbg(&client->dev, "++++ov2680_get_intg_factor\n");
|
||||
if (!info)
|
||||
return -EINVAL;
|
||||
|
@ -398,7 +400,7 @@ static long __ov2680_set_exposure(struct v4l2_subdev *sd, int coarse_itg,
|
|||
struct i2c_client *client = v4l2_get_subdevdata(sd);
|
||||
struct ov2680_device *dev = to_ov2680_sensor(sd);
|
||||
u16 vts;
|
||||
int ret,exp_val;
|
||||
int ret, exp_val;
|
||||
|
||||
dev_dbg(&client->dev,
|
||||
"+++++++__ov2680_set_exposure coarse_itg %d, gain %d, digitgain %d++\n",
|
||||
|
@ -408,7 +410,7 @@ static long __ov2680_set_exposure(struct v4l2_subdev *sd, int coarse_itg,
|
|||
|
||||
/* group hold */
|
||||
ret = ov2680_write_reg(client, OV2680_8BIT,
|
||||
OV2680_GROUP_ACCESS, 0x00);
|
||||
OV2680_GROUP_ACCESS, 0x00);
|
||||
if (ret) {
|
||||
dev_err(&client->dev, "%s: write %x error, aborted\n",
|
||||
__func__, OV2680_GROUP_ACCESS);
|
||||
|
@ -417,7 +419,7 @@ static long __ov2680_set_exposure(struct v4l2_subdev *sd, int coarse_itg,
|
|||
|
||||
/* Increase the VTS to match exposure + MARGIN */
|
||||
if (coarse_itg > vts - OV2680_INTEGRATION_TIME_MARGIN)
|
||||
vts = (u16) coarse_itg + OV2680_INTEGRATION_TIME_MARGIN;
|
||||
vts = (u16)coarse_itg + OV2680_INTEGRATION_TIME_MARGIN;
|
||||
|
||||
ret = ov2680_write_reg(client, OV2680_16BIT, OV2680_TIMING_VTS_H, vts);
|
||||
if (ret) {
|
||||
|
@ -525,6 +527,7 @@ static long ov2680_s_exposure(struct v4l2_subdev *sd,
|
|||
/* we should not accept the invalid value below */
|
||||
if (analog_gain == 0) {
|
||||
struct i2c_client *client = v4l2_get_subdevdata(sd);
|
||||
|
||||
v4l2_err(client, "%s: invalid value\n", __func__);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
@ -533,13 +536,8 @@ static long ov2680_s_exposure(struct v4l2_subdev *sd,
|
|||
return ov2680_set_exposure(sd, coarse_itg, analog_gain, digital_gain);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
static long ov2680_ioctl(struct v4l2_subdev *sd, unsigned int cmd, void *arg)
|
||||
{
|
||||
|
||||
switch (cmd) {
|
||||
case ATOMISP_IOC_S_EXPOSURE:
|
||||
return ov2680_s_exposure(sd, arg);
|
||||
|
@ -607,6 +605,7 @@ static int ov2680_v_flip(struct v4l2_subdev *sd, s32 value)
|
|||
int ret;
|
||||
u16 val;
|
||||
u8 index;
|
||||
|
||||
dev_dbg(&client->dev, "@%s: value:%d\n", __func__, value);
|
||||
ret = ov2680_read_reg(client, OV2680_8BIT, OV2680_FLIP_REG, &val);
|
||||
if (ret)
|
||||
|
@ -620,7 +619,7 @@ static int ov2680_v_flip(struct v4l2_subdev *sd, s32 value)
|
|||
OV2680_FLIP_REG, val);
|
||||
if (ret)
|
||||
return ret;
|
||||
index = (v_flag>0?OV2680_FLIP_BIT:0) | (h_flag>0?OV2680_MIRROR_BIT:0);
|
||||
index = (v_flag > 0 ? OV2680_FLIP_BIT : 0) | (h_flag > 0 ? OV2680_MIRROR_BIT : 0);
|
||||
ov2680_info = v4l2_get_subdev_hostdata(sd);
|
||||
if (ov2680_info) {
|
||||
ov2680_info->raw_bayer_order = ov2680_bayer_order_mapping[index];
|
||||
|
@ -638,6 +637,7 @@ static int ov2680_h_flip(struct v4l2_subdev *sd, s32 value)
|
|||
int ret;
|
||||
u16 val;
|
||||
u8 index;
|
||||
|
||||
dev_dbg(&client->dev, "@%s: value:%d\n", __func__, value);
|
||||
|
||||
ret = ov2680_read_reg(client, OV2680_8BIT, OV2680_MIRROR_REG, &val);
|
||||
|
@ -652,7 +652,7 @@ static int ov2680_h_flip(struct v4l2_subdev *sd, s32 value)
|
|||
OV2680_MIRROR_REG, val);
|
||||
if (ret)
|
||||
return ret;
|
||||
index = (v_flag>0?OV2680_FLIP_BIT:0) | (h_flag>0?OV2680_MIRROR_BIT:0);
|
||||
index = (v_flag > 0 ? OV2680_FLIP_BIT : 0) | (h_flag > 0 ? OV2680_MIRROR_BIT : 0);
|
||||
ov2680_info = v4l2_get_subdev_hostdata(sd);
|
||||
if (ov2680_info) {
|
||||
ov2680_info->raw_bayer_order = ov2680_bayer_order_mapping[index];
|
||||
|
@ -846,6 +846,7 @@ static int power_ctrl(struct v4l2_subdev *sd, bool flag)
|
|||
{
|
||||
int ret = 0;
|
||||
struct ov2680_device *dev = to_ov2680_sensor(sd);
|
||||
|
||||
if (!dev || !dev->platform_data)
|
||||
return -ENODEV;
|
||||
|
||||
|
@ -973,7 +974,7 @@ static int ov2680_s_power(struct v4l2_subdev *sd, int on)
|
|||
{
|
||||
int ret;
|
||||
|
||||
if (on == 0){
|
||||
if (on == 0) {
|
||||
ret = power_down(sd);
|
||||
} else {
|
||||
ret = power_up(sd);
|
||||
|
@ -1005,10 +1006,9 @@ static int distance(struct ov2680_resolution *res, u32 w, u32 h)
|
|||
h_ratio = (res->height << 13) / h;
|
||||
if (h_ratio == 0)
|
||||
return -1;
|
||||
match = abs(((w_ratio << 13) / h_ratio) - ((int)8192));
|
||||
match = abs(((w_ratio << 13) / h_ratio) - 8192);
|
||||
|
||||
|
||||
if ((w_ratio < (int)8192) || (h_ratio < (int)8192) ||
|
||||
if ((w_ratio < 8192) || (h_ratio < 8192) ||
|
||||
(match > LARGEST_ALLOWED_RATIO_MISMATCH))
|
||||
return -1;
|
||||
|
||||
|
@ -1064,6 +1064,7 @@ static int ov2680_set_fmt(struct v4l2_subdev *sd,
|
|||
struct camera_mipi_info *ov2680_info = NULL;
|
||||
int ret = 0;
|
||||
int idx = 0;
|
||||
|
||||
dev_dbg(&client->dev, "+++++ov2680_s_mbus_fmt+++++l\n");
|
||||
if (format->pad)
|
||||
return -EINVAL;
|
||||
|
@ -1123,7 +1124,7 @@ static int ov2680_set_fmt(struct v4l2_subdev *sd,
|
|||
if (v_flag)
|
||||
ov2680_v_flip(sd, v_flag);
|
||||
|
||||
v4l2_info(client, "\n%s idx %d \n", __func__, dev->fmt_idx);
|
||||
v4l2_info(client, "\n%s idx %d\n", __func__, dev->fmt_idx);
|
||||
|
||||
/*ret = startup(sd);
|
||||
* if (ret)
|
||||
|
@ -1173,7 +1174,7 @@ static int ov2680_detect(struct i2c_client *client)
|
|||
}
|
||||
ret = ov2680_read_reg(client, OV2680_8BIT,
|
||||
OV2680_SC_CMMN_CHIP_ID_L, &low);
|
||||
id = ((((u16) high) << 8) | (u16) low);
|
||||
id = ((((u16)high) << 8) | (u16)low);
|
||||
|
||||
if (id != OV2680_ID) {
|
||||
dev_err(&client->dev, "sensor ID error 0x%x\n", id);
|
||||
|
@ -1182,7 +1183,7 @@ static int ov2680_detect(struct i2c_client *client)
|
|||
|
||||
ret = ov2680_read_reg(client, OV2680_8BIT,
|
||||
OV2680_SC_CMMN_SUB_ID, &high);
|
||||
revision = (u8) high & 0x0f;
|
||||
revision = (u8)high & 0x0f;
|
||||
|
||||
dev_info(&client->dev, "sensor_revision id = 0x%x, rev= %d\n",
|
||||
id, revision);
|
||||
|
@ -1197,10 +1198,10 @@ static int ov2680_s_stream(struct v4l2_subdev *sd, int enable)
|
|||
int ret;
|
||||
|
||||
mutex_lock(&dev->input_lock);
|
||||
if(enable )
|
||||
dev_dbg(&client->dev, "ov2680_s_stream one \n");
|
||||
if (enable)
|
||||
dev_dbg(&client->dev, "ov2680_s_stream one\n");
|
||||
else
|
||||
dev_dbg(&client->dev, "ov2680_s_stream off \n");
|
||||
dev_dbg(&client->dev, "ov2680_s_stream off\n");
|
||||
|
||||
ret = ov2680_write_reg(client, OV2680_8BIT, OV2680_SW_STREAM,
|
||||
enable ? OV2680_START_STREAMING :
|
||||
|
@ -1220,7 +1221,6 @@ static int ov2680_s_stream(struct v4l2_subdev *sd, int enable)
|
|||
return ret;
|
||||
}
|
||||
|
||||
|
||||
static int ov2680_s_config(struct v4l2_subdev *sd,
|
||||
int irq, void *platform_data)
|
||||
{
|
||||
|
@ -1319,7 +1319,6 @@ static int ov2680_enum_frame_size(struct v4l2_subdev *sd,
|
|||
fse->max_height = ov2680_res[index].height;
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
static int ov2680_g_skip_frames(struct v4l2_subdev *sd, u32 *frames)
|
||||
|
@ -1365,6 +1364,7 @@ static int ov2680_remove(struct i2c_client *client)
|
|||
{
|
||||
struct v4l2_subdev *sd = i2c_get_clientdata(client);
|
||||
struct ov2680_device *dev = to_ov2680_sensor(sd);
|
||||
|
||||
dev_dbg(&client->dev, "ov2680_remove...\n");
|
||||
|
||||
dev->platform_data->csi_cfg(sd, 0);
|
||||
|
@ -1391,7 +1391,7 @@ static int ov2680_probe(struct i2c_client *client)
|
|||
mutex_init(&dev->input_lock);
|
||||
|
||||
dev->fmt_idx = 0;
|
||||
v4l2_i2c_subdev_init(&(dev->sd), client, &ov2680_ops);
|
||||
v4l2_i2c_subdev_init(&dev->sd, client, &ov2680_ops);
|
||||
|
||||
pdata = gmin_camera_platform_data(&dev->sd,
|
||||
ATOMISP_INPUT_FORMAT_RAW_10,
|
||||
|
@ -1399,7 +1399,7 @@ static int ov2680_probe(struct i2c_client *client)
|
|||
if (!pdata) {
|
||||
ret = -EINVAL;
|
||||
goto out_free;
|
||||
}
|
||||
}
|
||||
|
||||
ret = ov2680_s_config(&dev->sd, client->irq, pdata);
|
||||
if (ret)
|
||||
|
@ -1438,11 +1438,11 @@ static int ov2680_probe(struct i2c_client *client)
|
|||
if (ret)
|
||||
{
|
||||
ov2680_remove(client);
|
||||
dev_dbg(&client->dev, "+++ remove ov2680 \n");
|
||||
dev_dbg(&client->dev, "+++ remove ov2680\n");
|
||||
}
|
||||
return ret;
|
||||
out_free:
|
||||
dev_dbg(&client->dev, "+++ out free \n");
|
||||
dev_dbg(&client->dev, "+++ out free\n");
|
||||
v4l2_device_unregister_subdev(&dev->sd);
|
||||
kfree(dev);
|
||||
return ret;
|
||||
|
|
|
@ -55,7 +55,7 @@ static int ov2722_read_reg(struct i2c_client *client,
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
memset(msg, 0 , sizeof(msg));
|
||||
memset(msg, 0, sizeof(msg));
|
||||
|
||||
msg[0].addr = client->addr;
|
||||
msg[0].flags = 0;
|
||||
|
@ -259,6 +259,7 @@ static int ov2722_write_reg_array(struct i2c_client *client,
|
|||
|
||||
return __ov2722_flush_reg_array(client, &ctrl);
|
||||
}
|
||||
|
||||
static int ov2722_g_focal(struct v4l2_subdev *sd, s32 *val)
|
||||
{
|
||||
*val = (OV2722_FOCAL_LENGTH_NUM << 16) | OV2722_FOCAL_LENGTH_DEM;
|
||||
|
@ -318,7 +319,7 @@ static int ov2722_get_intg_factor(struct i2c_client *client,
|
|||
return ret;
|
||||
|
||||
pre_pll_clk_div = (pre_pll_clk_div & 0x70) >> 4;
|
||||
if (0 == pre_pll_clk_div)
|
||||
if (!pre_pll_clk_div)
|
||||
return -EINVAL;
|
||||
|
||||
pll_multiplier = pll_multiplier & 0x7f;
|
||||
|
@ -481,6 +482,7 @@ static long ov2722_s_exposure(struct v4l2_subdev *sd,
|
|||
/* we should not accept the invalid value below. */
|
||||
if (gain == 0) {
|
||||
struct i2c_client *client = v4l2_get_subdevdata(sd);
|
||||
|
||||
v4l2_err(client, "%s: invalid value\n", __func__);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
@ -490,7 +492,6 @@ static long ov2722_s_exposure(struct v4l2_subdev *sd,
|
|||
|
||||
static long ov2722_ioctl(struct v4l2_subdev *sd, unsigned int cmd, void *arg)
|
||||
{
|
||||
|
||||
switch (cmd) {
|
||||
case ATOMISP_IOC_S_EXPOSURE:
|
||||
return ov2722_s_exposure(sd, arg);
|
||||
|
@ -540,6 +541,7 @@ static int ov2722_g_volatile_ctrl(struct v4l2_ctrl *ctrl)
|
|||
container_of(ctrl->handler, struct ov2722_device, ctrl_handler);
|
||||
int ret = 0;
|
||||
unsigned int val;
|
||||
|
||||
switch (ctrl->id) {
|
||||
case V4L2_CID_EXPOSURE_ABSOLUTE:
|
||||
ret = ov2722_q_exposure(&dev->sd, &ctrl->val);
|
||||
|
@ -768,6 +770,7 @@ static int power_down(struct v4l2_subdev *sd)
|
|||
static int ov2722_s_power(struct v4l2_subdev *sd, int on)
|
||||
{
|
||||
int ret;
|
||||
|
||||
if (on == 0)
|
||||
return power_down(sd);
|
||||
else {
|
||||
|
@ -881,6 +884,7 @@ static int ov2722_set_fmt(struct v4l2_subdev *sd,
|
|||
struct camera_mipi_info *ov2722_info = NULL;
|
||||
int ret = 0;
|
||||
int idx;
|
||||
|
||||
if (format->pad)
|
||||
return -EINVAL;
|
||||
if (!fmt)
|
||||
|
@ -919,6 +923,7 @@ static int ov2722_set_fmt(struct v4l2_subdev *sd,
|
|||
ret = startup(sd);
|
||||
if (ret) {
|
||||
int i = 0;
|
||||
|
||||
dev_err(&client->dev, "ov2722 startup err, retry to power up\n");
|
||||
for (i = 0; i < OV2722_POWER_UP_RETRY_NUM; i++) {
|
||||
dev_err(&client->dev,
|
||||
|
@ -953,6 +958,7 @@ err:
|
|||
mutex_unlock(&dev->input_lock);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int ov2722_get_fmt(struct v4l2_subdev *sd,
|
||||
struct v4l2_subdev_pad_config *cfg,
|
||||
struct v4l2_subdev_format *format)
|
||||
|
@ -1000,7 +1006,7 @@ static int ov2722_detect(struct i2c_client *client)
|
|||
|
||||
ret = ov2722_read_reg(client, OV2722_8BIT,
|
||||
OV2722_SC_CMMN_SUB_ID, &high);
|
||||
revision = (u8) high & 0x0f;
|
||||
revision = (u8)high & 0x0f;
|
||||
|
||||
dev_dbg(&client->dev, "sensor_revision = 0x%x\n", revision);
|
||||
dev_dbg(&client->dev, "detect ov2722 success\n");
|
||||
|
@ -1122,10 +1128,8 @@ static int ov2722_enum_frame_size(struct v4l2_subdev *sd,
|
|||
fse->max_height = ov2722_res[index].height;
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
|
||||
static int ov2722_g_skip_frames(struct v4l2_subdev *sd, u32 *frames)
|
||||
{
|
||||
struct ov2722_device *dev = to_ov2722_sensor(sd);
|
||||
|
@ -1169,6 +1173,7 @@ static int ov2722_remove(struct i2c_client *client)
|
|||
{
|
||||
struct v4l2_subdev *sd = i2c_get_clientdata(client);
|
||||
struct ov2722_device *dev = to_ov2722_sensor(sd);
|
||||
|
||||
dev_dbg(&client->dev, "ov2722_remove...\n");
|
||||
|
||||
dev->platform_data->csi_cfg(sd, 0);
|
||||
|
@ -1187,6 +1192,7 @@ static int __ov2722_init_ctrl_handler(struct ov2722_device *dev)
|
|||
{
|
||||
struct v4l2_ctrl_handler *hdl;
|
||||
unsigned int i;
|
||||
|
||||
hdl = &dev->ctrl_handler;
|
||||
v4l2_ctrl_handler_init(&dev->ctrl_handler, ARRAY_SIZE(ov2722_controls));
|
||||
for (i = 0; i < ARRAY_SIZE(ov2722_controls); i++)
|
||||
|
@ -1216,7 +1222,7 @@ static int ov2722_probe(struct i2c_client *client)
|
|||
mutex_init(&dev->input_lock);
|
||||
|
||||
dev->fmt_idx = 0;
|
||||
v4l2_i2c_subdev_init(&(dev->sd), client, &ov2722_ops);
|
||||
v4l2_i2c_subdev_init(&dev->sd, client, &ov2722_ops);
|
||||
|
||||
ovpdev = gmin_camera_platform_data(&dev->sd,
|
||||
ATOMISP_INPUT_FORMAT_RAW_10,
|
||||
|
|
|
@ -396,9 +396,9 @@ static struct gc0310_resolution gc0310_res_preview[] = {
|
|||
.regs = gc0310_VGA_30fps,
|
||||
},
|
||||
};
|
||||
|
||||
#define N_RES_PREVIEW (ARRAY_SIZE(gc0310_res_preview))
|
||||
|
||||
static struct gc0310_resolution *gc0310_res = gc0310_res_preview;
|
||||
static unsigned long N_RES = N_RES_PREVIEW;
|
||||
#endif
|
||||
|
||||
|
|
|
@ -286,6 +286,7 @@ static struct gc2235_reg const gc2235_init_settings[] = {
|
|||
{ GC2235_8BIT, 0xfe, 0x00 }, /* switch to P0 */
|
||||
{ GC2235_TOK_TERM, 0, 0 }
|
||||
};
|
||||
|
||||
/*
|
||||
* Register settings for various resolution
|
||||
*/
|
||||
|
@ -530,7 +531,6 @@ static struct gc2235_reg const gc2235_1616_1216_30fps[] = {
|
|||
};
|
||||
|
||||
static struct gc2235_resolution gc2235_res_preview[] = {
|
||||
|
||||
{
|
||||
.desc = "gc2235_1600_900_30fps",
|
||||
.width = 1600,
|
||||
|
@ -579,6 +579,7 @@ static struct gc2235_resolution gc2235_res_preview[] = {
|
|||
},
|
||||
|
||||
};
|
||||
|
||||
#define N_RES_PREVIEW (ARRAY_SIZE(gc2235_res_preview))
|
||||
|
||||
/*
|
||||
|
@ -634,6 +635,7 @@ static struct gc2235_resolution gc2235_res_still[] = {
|
|||
},
|
||||
|
||||
};
|
||||
|
||||
#define N_RES_STILL (ARRAY_SIZE(gc2235_res_still))
|
||||
|
||||
static struct gc2235_resolution gc2235_res_video[] = {
|
||||
|
@ -669,6 +671,7 @@ static struct gc2235_resolution gc2235_res_video[] = {
|
|||
},
|
||||
|
||||
};
|
||||
|
||||
#define N_RES_VIDEO (ARRAY_SIZE(gc2235_res_video))
|
||||
#endif
|
||||
|
||||
|
|
|
@ -53,8 +53,8 @@
|
|||
#define MISENSOR_TOK_POLL 0xfc00 /* token indicating poll instruction */
|
||||
#define MISENSOR_TOK_RMW 0x0010 /* RMW operation */
|
||||
#define MISENSOR_TOK_MASK 0xfff0
|
||||
#define MISENSOR_AWB_STEADY (1<<0) /* awb steady */
|
||||
#define MISENSOR_AE_READY (1<<3) /* ae status ready */
|
||||
#define MISENSOR_AWB_STEADY BIT(0) /* awb steady */
|
||||
#define MISENSOR_AE_READY BIT(3) /* ae status ready */
|
||||
|
||||
/* mask to set sensor read_mode via misensor_rmw_reg */
|
||||
#define MISENSOR_R_MODE_MASK 0x0330
|
||||
|
@ -127,13 +127,12 @@
|
|||
#define MT9M114_COARSE_INTG_TIME_MIN 1
|
||||
#define MT9M114_COARSE_INTG_TIME_MAX_MARGIN 6
|
||||
|
||||
|
||||
/* ulBPat; */
|
||||
|
||||
#define MT9M114_BPAT_RGRGGBGB (1 << 0)
|
||||
#define MT9M114_BPAT_GRGRBGBG (1 << 1)
|
||||
#define MT9M114_BPAT_GBGBRGRG (1 << 2)
|
||||
#define MT9M114_BPAT_BGBGGRGR (1 << 3)
|
||||
#define MT9M114_BPAT_RGRGGBGB BIT(0)
|
||||
#define MT9M114_BPAT_GRGRBGBG BIT(1)
|
||||
#define MT9M114_BPAT_GBGBRGRG BIT(2)
|
||||
#define MT9M114_BPAT_BGBGGRGR BIT(3)
|
||||
|
||||
#define MT9M114_FOCAL_LENGTH_NUM 208 /*2.08mm*/
|
||||
#define MT9M114_FOCAL_LENGTH_DEM 100
|
||||
|
@ -169,6 +168,7 @@ enum {
|
|||
MT9M114_RES_864P,
|
||||
MT9M114_RES_960P,
|
||||
};
|
||||
|
||||
#define MT9M114_RES_960P_SIZE_H 1296
|
||||
#define MT9M114_RES_960P_SIZE_V 976
|
||||
#define MT9M114_RES_720P_SIZE_H 1280
|
||||
|
@ -204,6 +204,7 @@ enum poll_reg {
|
|||
PRE_POLLING,
|
||||
POST_POLLING,
|
||||
};
|
||||
|
||||
/*
|
||||
* struct misensor_reg - MI sensor register format
|
||||
* @length: length of the register
|
||||
|
@ -388,6 +389,7 @@ static struct mt9m114_res_struct mt9m114_res[] = {
|
|||
.bin_mode = 0,
|
||||
},
|
||||
};
|
||||
|
||||
#define N_RES (ARRAY_SIZE(mt9m114_res))
|
||||
|
||||
#if 0 /* Currently unused */
|
||||
|
@ -795,6 +797,7 @@ static struct misensor_reg const mt9m114_common[] = {
|
|||
{MISENSOR_TOK_TERM, 0, 0},
|
||||
|
||||
};
|
||||
|
||||
#if 0 /* Currently unused */
|
||||
static struct misensor_reg const mt9m114_antiflicker_50hz[] = {
|
||||
{MISENSOR_16BIT, 0x098E, 0xC88B},
|
||||
|
|
|
@ -132,10 +132,8 @@
|
|||
#define OV2680_START_STREAMING 0x01
|
||||
#define OV2680_STOP_STREAMING 0x00
|
||||
|
||||
|
||||
#define OV2680_INVALID_CONFIG 0xffffffff
|
||||
|
||||
|
||||
struct regval_list {
|
||||
u16 reg_num;
|
||||
u8 value;
|
||||
|
@ -294,7 +292,6 @@ struct ov2680_format {
|
|||
{OV2680_TOK_TERM, 0, 0}
|
||||
};
|
||||
|
||||
|
||||
#if 0 /* None of the definitions below are used currently */
|
||||
/*
|
||||
* 176x144 30fps VBlanking 1lane 10Bit (binning)
|
||||
|
@ -427,7 +424,6 @@ struct ov2680_format {
|
|||
{OV2680_TOK_TERM, 0, 0}
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* 656x496 30fps VBlanking 1lane 10Bit (binning)
|
||||
*/
|
||||
|
@ -641,12 +637,12 @@ struct ov2680_format {
|
|||
{OV2680_8BIT, 0x3821, 0x00}, //miror/flip
|
||||
// {OV2680_8BIT, 0x5090, 0x0c},
|
||||
{OV2680_TOK_TERM, 0, 0}
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* 1456*1096 30fps VBlanking 1lane 10bit(no-scaling)
|
||||
*/
|
||||
static struct ov2680_reg const ov2680_1456x1096_30fps[]= {
|
||||
static struct ov2680_reg const ov2680_1456x1096_30fps[] = {
|
||||
{OV2680_8BIT, 0x3086, 0x00},
|
||||
{OV2680_8BIT, 0x3501, 0x48},
|
||||
{OV2680_8BIT, 0x3502, 0xe0},
|
||||
|
@ -773,7 +769,7 @@ struct ov2680_format {
|
|||
{OV2680_8BIT, 0x4009, 0x09},
|
||||
{OV2680_8BIT, 0x5081, 0x41},
|
||||
{OV2680_TOK_TERM, 0, 0}
|
||||
};
|
||||
};
|
||||
#endif
|
||||
/*
|
||||
* 1616x1216 30fps VBlanking 1lane 10Bit
|
||||
|
@ -821,7 +817,7 @@ struct ov2680_format {
|
|||
static struct ov2680_resolution ov2680_res_preview[] = {
|
||||
{
|
||||
.desc = "ov2680_1616x1216_30fps",
|
||||
.width = 1616,
|
||||
.width = 1616,
|
||||
.height = 1216,
|
||||
.pix_clk_freq = 66,
|
||||
.fps = 30,
|
||||
|
@ -834,7 +830,7 @@ struct ov2680_format {
|
|||
.skip_frames = 3,
|
||||
.regs = ov2680_1616x1216_30fps,
|
||||
},
|
||||
{
|
||||
{
|
||||
.desc = "ov2680_1616x916_30fps",
|
||||
.width = 1616,
|
||||
.height = 916,
|
||||
|
@ -850,6 +846,7 @@ struct ov2680_format {
|
|||
.regs = ov2680_1616x916_30fps,
|
||||
},
|
||||
};
|
||||
|
||||
#define N_RES_PREVIEW (ARRAY_SIZE(ov2680_res_preview))
|
||||
|
||||
static struct ov2680_resolution *ov2680_res = ov2680_res_preview;
|
||||
|
|
|
@ -786,6 +786,7 @@ static struct ov2722_reg const ov2722_1452_1092_30fps[] = {
|
|||
{OV2722_8BIT, 0x3509, 0x00},
|
||||
{OV2722_TOK_TERM, 0, 0}
|
||||
};
|
||||
|
||||
#if 0
|
||||
static struct ov2722_reg const ov2722_1M3_30fps[] = {
|
||||
{OV2722_8BIT, 0x3718, 0x10},
|
||||
|
@ -1152,6 +1153,7 @@ static struct ov2722_resolution ov2722_res_preview[] = {
|
|||
.mipi_freq = 345600,
|
||||
},
|
||||
};
|
||||
|
||||
#define N_RES_PREVIEW (ARRAY_SIZE(ov2722_res_preview))
|
||||
|
||||
/*
|
||||
|
@ -1209,6 +1211,7 @@ struct ov2722_resolution ov2722_res_still[] = {
|
|||
.mipi_freq = 345600,
|
||||
},
|
||||
};
|
||||
|
||||
#define N_RES_STILL (ARRAY_SIZE(ov2722_res_still))
|
||||
|
||||
struct ov2722_resolution ov2722_res_video[] = {
|
||||
|
@ -1260,6 +1263,7 @@ struct ov2722_resolution ov2722_res_video[] = {
|
|||
.mipi_freq = 345600,
|
||||
},
|
||||
};
|
||||
|
||||
#define N_RES_VIDEO (ARRAY_SIZE(ov2722_res_video))
|
||||
#endif
|
||||
|
||||
|
|
|
@ -20,7 +20,6 @@
|
|||
|
||||
#include <linux/types.h>
|
||||
|
||||
|
||||
#define AD5823_VCM_ADDR 0x0c
|
||||
|
||||
#define AD5823_REG_RESET 0x01
|
||||
|
|
|
@ -119,8 +119,7 @@ static int ad5823_i2c_read(struct i2c_client *client, u8 reg, u8 *val)
|
|||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static const uint32_t ov5693_embedded_effective_size = 28;
|
||||
static const u32 ov5693_embedded_effective_size = 28;
|
||||
|
||||
/* i2c read/write stuff */
|
||||
static int ov5693_read_reg(struct i2c_client *client,
|
||||
|
@ -413,6 +412,7 @@ static int ov5693_write_reg_array(struct i2c_client *client,
|
|||
|
||||
return __ov5693_flush_reg_array(client, &ctrl);
|
||||
}
|
||||
|
||||
static int ov5693_g_focal(struct v4l2_subdev *sd, s32 *val)
|
||||
{
|
||||
*val = (OV5693_FOCAL_LENGTH_NUM << 16) | OV5693_FOCAL_LENGTH_DEM;
|
||||
|
@ -463,7 +463,7 @@ static int ov5693_get_intg_factor(struct i2c_client *client,
|
|||
u16 reg_val;
|
||||
int ret;
|
||||
|
||||
if (info == NULL)
|
||||
if (!info)
|
||||
return -EINVAL;
|
||||
|
||||
/* pixel clock */
|
||||
|
@ -576,7 +576,7 @@ static long __ov5693_set_exposure(struct v4l2_subdev *sd, int coarse_itg,
|
|||
}
|
||||
/* Increase the VTS to match exposure + MARGIN */
|
||||
if (coarse_itg > vts - OV5693_INTEGRATION_TIME_MARGIN)
|
||||
vts = (u16) coarse_itg + OV5693_INTEGRATION_TIME_MARGIN;
|
||||
vts = (u16)coarse_itg + OV5693_INTEGRATION_TIME_MARGIN;
|
||||
|
||||
ret = ov5693_write_reg(client, OV5693_8BIT,
|
||||
OV5693_TIMING_VTS_H, (vts >> 8) & 0xFF);
|
||||
|
@ -718,7 +718,7 @@ static int ov5693_read_otp_reg_array(struct i2c_client *client, u16 size,
|
|||
u16 *pVal = NULL;
|
||||
|
||||
for (index = 0; index <= size; index++) {
|
||||
pVal = (u16 *) (buf + index);
|
||||
pVal = (u16 *)(buf + index);
|
||||
ret =
|
||||
ov5693_read_reg(client, OV5693_8BIT, addr + index,
|
||||
pVal);
|
||||
|
@ -873,12 +873,10 @@ out:
|
|||
priv->size = dev->otp_size;
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
static long ov5693_ioctl(struct v4l2_subdev *sd, unsigned int cmd, void *arg)
|
||||
{
|
||||
|
||||
switch (cmd) {
|
||||
case ATOMISP_IOC_S_EXPOSURE:
|
||||
return ov5693_s_exposure(sd, arg);
|
||||
|
@ -1588,7 +1586,7 @@ static int ov5693_set_fmt(struct v4l2_subdev *sd,
|
|||
if (!fmt)
|
||||
return -EINVAL;
|
||||
ov5693_info = v4l2_get_subdev_hostdata(sd);
|
||||
if (ov5693_info == NULL)
|
||||
if (!ov5693_info)
|
||||
return -EINVAL;
|
||||
|
||||
mutex_lock(&dev->input_lock);
|
||||
|
@ -1624,7 +1622,7 @@ static int ov5693_set_fmt(struct v4l2_subdev *sd,
|
|||
for (i = 0; i < OV5693_POWER_UP_RETRY_NUM; i++) {
|
||||
dev_err(&client->dev,
|
||||
"ov5693 retry to power up %d/%d times, result: ",
|
||||
i+1, OV5693_POWER_UP_RETRY_NUM);
|
||||
i + 1, OV5693_POWER_UP_RETRY_NUM);
|
||||
power_down(sd);
|
||||
ret = power_up(sd);
|
||||
if (!ret) {
|
||||
|
@ -1670,6 +1668,7 @@ err:
|
|||
mutex_unlock(&dev->input_lock);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int ov5693_get_fmt(struct v4l2_subdev *sd,
|
||||
struct v4l2_subdev_pad_config *cfg,
|
||||
struct v4l2_subdev_format *format)
|
||||
|
@ -1709,7 +1708,7 @@ static int ov5693_detect(struct i2c_client *client)
|
|||
}
|
||||
ret = ov5693_read_reg(client, OV5693_8BIT,
|
||||
OV5693_SC_CMMN_CHIP_ID_L, &low);
|
||||
id = ((((u16) high) << 8) | (u16) low);
|
||||
id = ((((u16)high) << 8) | (u16)low);
|
||||
|
||||
if (id != OV5693_ID) {
|
||||
dev_err(&client->dev, "sensor ID error 0x%x\n", id);
|
||||
|
@ -1718,7 +1717,7 @@ static int ov5693_detect(struct i2c_client *client)
|
|||
|
||||
ret = ov5693_read_reg(client, OV5693_8BIT,
|
||||
OV5693_SC_CMMN_SUB_ID, &high);
|
||||
revision = (u8) high & 0x0f;
|
||||
revision = (u8)high & 0x0f;
|
||||
|
||||
dev_dbg(&client->dev, "sensor_revision = 0x%x\n", revision);
|
||||
dev_dbg(&client->dev, "detect ov5693 success\n");
|
||||
|
@ -1742,7 +1741,6 @@ static int ov5693_s_stream(struct v4l2_subdev *sd, int enable)
|
|||
return ret;
|
||||
}
|
||||
|
||||
|
||||
static int ov5693_s_config(struct v4l2_subdev *sd,
|
||||
int irq, void *platform_data)
|
||||
{
|
||||
|
@ -1750,7 +1748,7 @@ static int ov5693_s_config(struct v4l2_subdev *sd,
|
|||
struct i2c_client *client = v4l2_get_subdevdata(sd);
|
||||
int ret = 0;
|
||||
|
||||
if (platform_data == NULL)
|
||||
if (!platform_data)
|
||||
return -ENODEV;
|
||||
|
||||
dev->platform_data =
|
||||
|
@ -1846,7 +1844,6 @@ static int ov5693_enum_frame_size(struct v4l2_subdev *sd,
|
|||
fse->max_height = ov5693_res[index].height;
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
static const struct v4l2_subdev_video_ops ov5693_video_ops = {
|
||||
|
@ -1921,7 +1918,7 @@ static int ov5693_probe(struct i2c_client *client)
|
|||
mutex_init(&dev->input_lock);
|
||||
|
||||
dev->fmt_idx = 0;
|
||||
v4l2_i2c_subdev_init(&(dev->sd), client, &ov5693_ops);
|
||||
v4l2_i2c_subdev_init(&dev->sd, client, &ov5693_ops);
|
||||
|
||||
pdata = gmin_camera_platform_data(&dev->sd,
|
||||
ATOMISP_INPUT_FORMAT_RAW_10,
|
||||
|
|
|
@ -36,7 +36,6 @@
|
|||
*/
|
||||
#define ENABLE_NON_PREVIEW 0
|
||||
|
||||
|
||||
#define OV5693_POWER_UP_RETRY_NUM 5
|
||||
|
||||
/* Defines for register writes and register array processing */
|
||||
|
@ -174,7 +173,7 @@
|
|||
#define OV5693_OTP_START_ADDR 0x3D00
|
||||
#define OV5693_OTP_END_ADDR 0x3D0F
|
||||
#define OV5693_OTP_DATA_SIZE 320
|
||||
#define OV5693_OTP_PROGRAM_REG 0x3D80
|
||||
#define OV5693_OTP_PROGRAM_REG 0x3D80
|
||||
#define OV5693_OTP_READ_REG 0x3D81 // 1:Enable 0:disable
|
||||
#define OV5693_OTP_BANK_REG 0x3D84 //otp bank and mode
|
||||
#define OV5693_OTP_READY_REG_DONE 1
|
||||
|
@ -586,7 +585,6 @@ static struct ov5693_reg const ov5693_1296x976[] = {
|
|||
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* 336x256 30fps 17ms VBlanking 2lane 10Bit (Scaling)
|
||||
DS from 2564x1956
|
||||
|
@ -675,7 +673,6 @@ static struct ov5693_reg const ov5693_192x160[] = {
|
|||
{OV5693_TOK_TERM, 0, 0}
|
||||
};
|
||||
|
||||
|
||||
static struct ov5693_reg const ov5693_736x496[] = {
|
||||
{OV5693_8BIT, 0x3501, 0x3d},
|
||||
{OV5693_8BIT, 0x3502, 0x00},
|
||||
|
@ -865,7 +862,6 @@ static struct ov5693_reg const ov5693_1616x1216_30fps[] = {
|
|||
{OV5693_TOK_TERM, 0, 0}
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* 1940x1096 30fps 8.8ms VBlanking 2lane 10bit (Scaling)
|
||||
*/
|
||||
|
@ -1161,6 +1157,7 @@ static struct ov5693_resolution ov5693_res_preview[] = {
|
|||
.regs = ov5693_2576x1936_30fps,
|
||||
},
|
||||
};
|
||||
|
||||
#define N_RES_PREVIEW (ARRAY_SIZE(ov5693_res_preview))
|
||||
|
||||
/*
|
||||
|
@ -1240,6 +1237,7 @@ struct ov5693_resolution ov5693_res_still[] = {
|
|||
.regs = ov5693_2592x1944_30fps,
|
||||
},
|
||||
};
|
||||
|
||||
#define N_RES_STILL (ARRAY_SIZE(ov5693_res_still))
|
||||
|
||||
struct ov5693_resolution ov5693_res_video[] = {
|
||||
|
@ -1384,6 +1382,7 @@ struct ov5693_resolution ov5693_res_video[] = {
|
|||
.regs = ov5693_2592x1944_30fps,
|
||||
},
|
||||
};
|
||||
|
||||
#define N_RES_VIDEO (ARRAY_SIZE(ov5693_res_video))
|
||||
#endif
|
||||
|
||||
|
|
|
@ -176,14 +176,14 @@ struct atomisp_3a_config {
|
|||
};
|
||||
|
||||
struct atomisp_dvs_grid_info {
|
||||
uint32_t enable;
|
||||
uint32_t width;
|
||||
uint32_t aligned_width;
|
||||
uint32_t height;
|
||||
uint32_t aligned_height;
|
||||
uint32_t bqs_per_grid_cell;
|
||||
uint32_t num_hor_coefs;
|
||||
uint32_t num_ver_coefs;
|
||||
u32 enable;
|
||||
u32 width;
|
||||
u32 aligned_width;
|
||||
u32 height;
|
||||
u32 aligned_height;
|
||||
u32 bqs_per_grid_cell;
|
||||
u32 num_hor_coefs;
|
||||
u32 num_ver_coefs;
|
||||
};
|
||||
|
||||
struct atomisp_dvs_envelop {
|
||||
|
@ -192,16 +192,16 @@ struct atomisp_dvs_envelop {
|
|||
};
|
||||
|
||||
struct atomisp_grid_info {
|
||||
uint32_t enable;
|
||||
uint32_t use_dmem;
|
||||
uint32_t has_histogram;
|
||||
uint32_t s3a_width;
|
||||
uint32_t s3a_height;
|
||||
uint32_t aligned_width;
|
||||
uint32_t aligned_height;
|
||||
uint32_t s3a_bqs_per_grid_cell;
|
||||
uint32_t deci_factor_log2;
|
||||
uint32_t elem_bit_depth;
|
||||
u32 enable;
|
||||
u32 use_dmem;
|
||||
u32 has_histogram;
|
||||
u32 s3a_width;
|
||||
u32 s3a_height;
|
||||
u32 aligned_width;
|
||||
u32 aligned_height;
|
||||
u32 s3a_bqs_per_grid_cell;
|
||||
u32 deci_factor_log2;
|
||||
u32 elem_bit_depth;
|
||||
};
|
||||
|
||||
struct atomisp_dis_vector {
|
||||
|
@ -209,7 +209,6 @@ struct atomisp_dis_vector {
|
|||
int y;
|
||||
};
|
||||
|
||||
|
||||
/* DVS 2.0 Coefficient types. This structure contains 4 pointers to
|
||||
* arrays that contain the coeffients for each type.
|
||||
*/
|
||||
|
@ -245,14 +244,14 @@ struct atomisp_dvs2_statistics {
|
|||
|
||||
struct atomisp_dis_statistics {
|
||||
struct atomisp_dvs2_statistics dvs2_stat;
|
||||
uint32_t exp_id;
|
||||
u32 exp_id;
|
||||
};
|
||||
|
||||
struct atomisp_3a_rgby_output {
|
||||
uint32_t r;
|
||||
uint32_t g;
|
||||
uint32_t b;
|
||||
uint32_t y;
|
||||
u32 r;
|
||||
u32 g;
|
||||
u32 b;
|
||||
u32 y;
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -273,33 +272,33 @@ struct atomisp_metadata_with_type {
|
|||
/* to specify which type of metadata to get */
|
||||
enum atomisp_metadata_type type;
|
||||
void __user *data;
|
||||
uint32_t width;
|
||||
uint32_t height;
|
||||
uint32_t stride; /* in bytes */
|
||||
uint32_t exp_id; /* exposure ID */
|
||||
uint32_t *effective_width; /* mipi packets valid data size */
|
||||
u32 width;
|
||||
u32 height;
|
||||
u32 stride; /* in bytes */
|
||||
u32 exp_id; /* exposure ID */
|
||||
u32 *effective_width; /* mipi packets valid data size */
|
||||
};
|
||||
|
||||
struct atomisp_metadata {
|
||||
void __user *data;
|
||||
uint32_t width;
|
||||
uint32_t height;
|
||||
uint32_t stride; /* in bytes */
|
||||
uint32_t exp_id; /* exposure ID */
|
||||
uint32_t *effective_width; /* mipi packets valid data size */
|
||||
u32 width;
|
||||
u32 height;
|
||||
u32 stride; /* in bytes */
|
||||
u32 exp_id; /* exposure ID */
|
||||
u32 *effective_width; /* mipi packets valid data size */
|
||||
};
|
||||
|
||||
struct atomisp_ext_isp_ctrl {
|
||||
uint32_t id;
|
||||
uint32_t data;
|
||||
u32 id;
|
||||
u32 data;
|
||||
};
|
||||
|
||||
struct atomisp_3a_statistics {
|
||||
struct atomisp_grid_info grid_info;
|
||||
struct atomisp_3a_output __user *data;
|
||||
struct atomisp_3a_rgby_output __user *rgby_data;
|
||||
uint32_t exp_id; /* exposure ID */
|
||||
uint32_t isp_config_id; /* isp config ID */
|
||||
u32 exp_id; /* exposure ID */
|
||||
u32 isp_config_id; /* isp config ID */
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -384,24 +383,24 @@ struct atomisp_xnr_config {
|
|||
|
||||
/* metadata config */
|
||||
struct atomisp_metadata_config {
|
||||
uint32_t metadata_height;
|
||||
uint32_t metadata_stride;
|
||||
u32 metadata_height;
|
||||
u32 metadata_stride;
|
||||
};
|
||||
|
||||
/*
|
||||
* Generic resolution structure.
|
||||
*/
|
||||
struct atomisp_resolution {
|
||||
uint32_t width; /** Width */
|
||||
uint32_t height; /** Height */
|
||||
u32 width; /** Width */
|
||||
u32 height; /** Height */
|
||||
};
|
||||
|
||||
/*
|
||||
* This specifies the coordinates (x,y)
|
||||
*/
|
||||
struct atomisp_zoom_point {
|
||||
int32_t x; /** x coordinate */
|
||||
int32_t y; /** y coordinate */
|
||||
s32 x; /** x coordinate */
|
||||
s32 y; /** y coordinate */
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -413,8 +412,8 @@ struct atomisp_zoom_region {
|
|||
};
|
||||
|
||||
struct atomisp_dz_config {
|
||||
uint32_t dx; /** Horizontal zoom factor */
|
||||
uint32_t dy; /** Vertical zoom factor */
|
||||
u32 dx; /** Horizontal zoom factor */
|
||||
u32 dy; /** Vertical zoom factor */
|
||||
struct atomisp_zoom_region zoom_region; /** region for zoom */
|
||||
};
|
||||
|
||||
|
@ -454,19 +453,19 @@ struct atomisp_dvs2_bq_resolutions {
|
|||
};
|
||||
|
||||
struct atomisp_dvs_6axis_config {
|
||||
uint32_t exp_id;
|
||||
uint32_t width_y;
|
||||
uint32_t height_y;
|
||||
uint32_t width_uv;
|
||||
uint32_t height_uv;
|
||||
uint32_t *xcoords_y;
|
||||
uint32_t *ycoords_y;
|
||||
uint32_t *xcoords_uv;
|
||||
uint32_t *ycoords_uv;
|
||||
u32 exp_id;
|
||||
u32 width_y;
|
||||
u32 height_y;
|
||||
u32 width_uv;
|
||||
u32 height_uv;
|
||||
u32 *xcoords_y;
|
||||
u32 *ycoords_y;
|
||||
u32 *xcoords_uv;
|
||||
u32 *ycoords_uv;
|
||||
};
|
||||
|
||||
struct atomisp_formats_config {
|
||||
uint32_t video_full_range_flag;
|
||||
u32 video_full_range_flag;
|
||||
};
|
||||
|
||||
struct atomisp_parameters {
|
||||
|
@ -543,7 +542,7 @@ struct atomisp_parameters {
|
|||
* Unique ID to track which config was actually applied to a particular
|
||||
* frame, driver will send this id back with output frame together.
|
||||
*/
|
||||
uint32_t isp_config_id;
|
||||
u32 isp_config_id;
|
||||
|
||||
/*
|
||||
* Switch to control per_frame setting:
|
||||
|
@ -551,7 +550,7 @@ struct atomisp_parameters {
|
|||
* 1: this is a per_frame setting
|
||||
* PLEASE KEEP THIS AT THE END OF THE STRUCTURE!!
|
||||
*/
|
||||
uint32_t per_frame_setting;
|
||||
u32 per_frame_setting;
|
||||
};
|
||||
|
||||
#define ATOMISP_GAMMA_TABLE_SIZE 1024
|
||||
|
@ -574,7 +573,7 @@ struct atomisp_morph_table {
|
|||
};
|
||||
|
||||
#define ATOMISP_NUM_SC_COLORS 4
|
||||
#define ATOMISP_SC_FLAG_QUERY (1 << 0)
|
||||
#define ATOMISP_SC_FLAG_QUERY BIT(0)
|
||||
|
||||
struct atomisp_shading_table {
|
||||
__u32 enable;
|
||||
|
@ -669,9 +668,9 @@ struct atomisp_sensor_mode_data {
|
|||
unsigned int crop_vertical_end;
|
||||
unsigned int output_width; /* input size to ISP after binning/scaling */
|
||||
unsigned int output_height;
|
||||
uint8_t binning_factor_x; /* horizontal binning factor used */
|
||||
uint8_t binning_factor_y; /* vertical binning factor used */
|
||||
uint16_t hts;
|
||||
u8 binning_factor_x; /* horizontal binning factor used */
|
||||
u8 binning_factor_y; /* vertical binning factor used */
|
||||
u16 hts;
|
||||
};
|
||||
|
||||
struct atomisp_exposure {
|
||||
|
@ -696,8 +695,8 @@ enum atomisp_focus_hp {
|
|||
};
|
||||
|
||||
/* Masks */
|
||||
#define ATOMISP_FOCUS_STATUS_MOVING (1U << 0)
|
||||
#define ATOMISP_FOCUS_STATUS_ACCEPTS_NEW_MOVE (1U << 1)
|
||||
#define ATOMISP_FOCUS_STATUS_MOVING BIT(0)
|
||||
#define ATOMISP_FOCUS_STATUS_ACCEPTS_NEW_MOVE BIT(1)
|
||||
#define ATOMISP_FOCUS_STATUS_HOME_POSITION (3U << 2)
|
||||
|
||||
enum atomisp_camera_port {
|
||||
|
@ -887,6 +886,7 @@ struct atomisp_acc_fw_load_to_pipe {
|
|||
__u32 type; /* Binary type */
|
||||
__u32 reserved[3]; /* Set to zero */
|
||||
};
|
||||
|
||||
/*
|
||||
* Set Senor run mode
|
||||
*/
|
||||
|
@ -894,12 +894,12 @@ struct atomisp_s_runmode {
|
|||
__u32 mode;
|
||||
};
|
||||
|
||||
#define ATOMISP_ACC_FW_LOAD_FL_PREVIEW (1 << 0)
|
||||
#define ATOMISP_ACC_FW_LOAD_FL_COPY (1 << 1)
|
||||
#define ATOMISP_ACC_FW_LOAD_FL_VIDEO (1 << 2)
|
||||
#define ATOMISP_ACC_FW_LOAD_FL_CAPTURE (1 << 3)
|
||||
#define ATOMISP_ACC_FW_LOAD_FL_ACC (1 << 4)
|
||||
#define ATOMISP_ACC_FW_LOAD_FL_ENABLE (1 << 16)
|
||||
#define ATOMISP_ACC_FW_LOAD_FL_PREVIEW BIT(0)
|
||||
#define ATOMISP_ACC_FW_LOAD_FL_COPY BIT(1)
|
||||
#define ATOMISP_ACC_FW_LOAD_FL_VIDEO BIT(2)
|
||||
#define ATOMISP_ACC_FW_LOAD_FL_CAPTURE BIT(3)
|
||||
#define ATOMISP_ACC_FW_LOAD_FL_ACC BIT(4)
|
||||
#define ATOMISP_ACC_FW_LOAD_FL_ENABLE BIT(16)
|
||||
|
||||
#define ATOMISP_ACC_FW_LOAD_TYPE_NONE 0 /* Normal binary: don't use */
|
||||
#define ATOMISP_ACC_FW_LOAD_TYPE_OUTPUT 1 /* Stage on output */
|
||||
|
@ -1285,8 +1285,8 @@ struct atomisp_sensor_ae_bracketing_lut {
|
|||
|
||||
/* Query sensor's 2A status */
|
||||
#define V4L2_CID_2A_STATUS (V4L2_CID_CAMERA_LASTP1 + 18)
|
||||
#define V4L2_2A_STATUS_AE_READY (1 << 0)
|
||||
#define V4L2_2A_STATUS_AWB_READY (1 << 1)
|
||||
#define V4L2_2A_STATUS_AE_READY BIT(0)
|
||||
#define V4L2_2A_STATUS_AWB_READY BIT(1)
|
||||
|
||||
#define V4L2_CID_FMT_AUTO (V4L2_CID_CAMERA_LASTP1 + 19)
|
||||
|
||||
|
|
|
@ -18,14 +18,14 @@
|
|||
#include "atomisp_platform.h"
|
||||
|
||||
int atomisp_register_i2c_module(struct v4l2_subdev *subdev,
|
||||
struct camera_sensor_platform_data *plat_data,
|
||||
enum intel_v4l2_subdev_type type);
|
||||
struct camera_sensor_platform_data *plat_data,
|
||||
enum intel_v4l2_subdev_type type);
|
||||
struct v4l2_subdev *atomisp_gmin_find_subdev(struct i2c_adapter *adapter,
|
||||
struct i2c_board_info *board_info);
|
||||
int atomisp_gmin_remove_subdev(struct v4l2_subdev *sd);
|
||||
int gmin_get_var_int(struct device *dev, const char *var, int def);
|
||||
int camera_sensor_csi(struct v4l2_subdev *sd, u32 port,
|
||||
u32 lanes, u32 format, u32 bayer_order, int flag);
|
||||
u32 lanes, u32 format, u32 bayer_order, int flag);
|
||||
struct camera_sensor_platform_data *gmin_camera_platform_data(
|
||||
struct v4l2_subdev *subdev,
|
||||
enum atomisp_input_format csi_format,
|
||||
|
|
|
@ -106,8 +106,6 @@ enum atomisp_input_format {
|
|||
|
||||
#define N_ATOMISP_INPUT_FORMAT (ATOMISP_INPUT_FORMAT_USER_DEF8 + 1)
|
||||
|
||||
|
||||
|
||||
enum intel_v4l2_subdev_type {
|
||||
RAW_CAMERA = 1,
|
||||
SOC_CAMERA = 2,
|
||||
|
@ -228,13 +226,13 @@ struct camera_mipi_info {
|
|||
enum atomisp_bayer_order raw_bayer_order;
|
||||
struct atomisp_sensor_mode_data data;
|
||||
enum atomisp_input_format metadata_format;
|
||||
uint32_t metadata_width;
|
||||
uint32_t metadata_height;
|
||||
const uint32_t *metadata_effective_width;
|
||||
u32 metadata_width;
|
||||
u32 metadata_height;
|
||||
const u32 *metadata_effective_width;
|
||||
};
|
||||
|
||||
extern const struct atomisp_platform_data *atomisp_get_platform_data(void);
|
||||
extern const struct atomisp_camera_caps *atomisp_get_default_camera_caps(void);
|
||||
const struct atomisp_platform_data *atomisp_get_platform_data(void);
|
||||
const struct atomisp_camera_caps *atomisp_get_default_camera_caps(void);
|
||||
|
||||
/* API from old platform_camera.h, new CPUID implementation */
|
||||
#define __IS_SOC(x) (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL && \
|
||||
|
|
|
@ -18,11 +18,10 @@
|
|||
struct i2c_client;
|
||||
struct firmware;
|
||||
|
||||
extern int load_msr_list(struct i2c_client *client, char *path,
|
||||
int load_msr_list(struct i2c_client *client, char *path,
|
||||
const struct firmware **fw);
|
||||
extern int apply_msr_data(struct i2c_client *client, const struct firmware *fw);
|
||||
extern void release_msr_list(struct i2c_client *client,
|
||||
int apply_msr_data(struct i2c_client *client, const struct firmware *fw);
|
||||
void release_msr_list(struct i2c_client *client,
|
||||
const struct firmware *fw);
|
||||
|
||||
|
||||
#endif /* ifndef __LIBMSRLISTHELPER_H__ */
|
||||
|
|
|
@ -91,8 +91,8 @@
|
|||
#define LM3554_CLAMP_PERCENTAGE(val) \
|
||||
clamp(val, LM3554_MIN_PERCENT, LM3554_MAX_PERCENT)
|
||||
|
||||
#define LM3554_VALUE_TO_PERCENT(v, step) (((((unsigned long)(v))*(step))+50)/100)
|
||||
#define LM3554_PERCENT_TO_VALUE(p, step) (((((unsigned long)(p))*100)+(step>>1))/(step))
|
||||
#define LM3554_VALUE_TO_PERCENT(v, step) (((((unsigned long)(v)) * (step)) + 50) / 100)
|
||||
#define LM3554_PERCENT_TO_VALUE(p, step) (((((unsigned long)(p)) * 100) + (step >> 1)) / (step))
|
||||
|
||||
/* Product specific limits
|
||||
* TODO: get these from platform data */
|
||||
|
@ -100,7 +100,7 @@
|
|||
|
||||
/* Flash brightness, input is percentage, output is [0..15] */
|
||||
#define LM3554_FLASH_STEP \
|
||||
((100ul*(LM3554_MAX_PERCENT)+((LM3554_FLASH_MAX_LVL)>>1))/((LM3554_FLASH_MAX_LVL)))
|
||||
((100ul * (LM3554_MAX_PERCENT) + ((LM3554_FLASH_MAX_LVL) >> 1)) / ((LM3554_FLASH_MAX_LVL)))
|
||||
#define LM3554_FLASH_DEFAULT_BRIGHTNESS \
|
||||
LM3554_VALUE_TO_PERCENT(13, LM3554_FLASH_STEP)
|
||||
|
||||
|
@ -128,4 +128,3 @@ struct lm3554_platform_data {
|
|||
};
|
||||
|
||||
#endif /* _LM3554_H_ */
|
||||
|
||||
|
|
|
@ -70,7 +70,6 @@ int atomisp_acc_unmap(struct atomisp_sub_device *asd,
|
|||
int atomisp_acc_s_mapped_arg(struct atomisp_sub_device *asd,
|
||||
struct atomisp_acc_s_mapped_arg *arg);
|
||||
|
||||
|
||||
/*
|
||||
* Start acceleration.
|
||||
* Return immediately, acceleration is left running in background.
|
||||
|
|
|
@ -60,7 +60,6 @@
|
|||
#include "error_support.h"
|
||||
#include "hrt/bits.h"
|
||||
|
||||
|
||||
/* We should never need to run the flash for more than 2 frames.
|
||||
* At 15fps this means 133ms. We set the timeout a bit longer.
|
||||
* Each flash driver is supposed to set its own timeout, but
|
||||
|
@ -200,6 +199,7 @@ static int write_target_freq_to_hw(struct atomisp_device *isp,
|
|||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int atomisp_freq_scaling(struct atomisp_device *isp,
|
||||
enum atomisp_dfs_mode mode,
|
||||
bool force)
|
||||
|
@ -436,7 +436,6 @@ static void atomisp_reset_event(struct atomisp_sub_device *asd)
|
|||
v4l2_event_queue(asd->subdev.devnode, &event);
|
||||
}
|
||||
|
||||
|
||||
static void print_csi_rx_errors(enum mipi_port_id port,
|
||||
struct atomisp_device *isp)
|
||||
{
|
||||
|
@ -475,6 +474,7 @@ static void print_csi_rx_errors(enum mipi_port_id port,
|
|||
static void clear_irq_reg(struct atomisp_device *isp)
|
||||
{
|
||||
u32 msg_ret;
|
||||
|
||||
pci_read_config_dword(isp->pdev, PCI_INTERRUPT_CTRL, &msg_ret);
|
||||
msg_ret |= 1 << INTR_IIR;
|
||||
pci_write_config_dword(isp->pdev, PCI_INTERRUPT_CTRL, msg_ret);
|
||||
|
@ -581,7 +581,7 @@ irqreturn_t atomisp_isr(int irq, void *dev)
|
|||
}
|
||||
|
||||
if (irq_infos & IA_CSS_IRQ_INFO_ISYS_EVENTS_READY) {
|
||||
while (ia_css_dequeue_isys_event(&(eof_event.event)) ==
|
||||
while (ia_css_dequeue_isys_event(&eof_event.event) ==
|
||||
IA_CSS_SUCCESS) {
|
||||
/* EOF Event does not have the css_pipe returned */
|
||||
asd = __get_asd_from_port(isp, eof_event.event.port);
|
||||
|
@ -614,6 +614,7 @@ out_nowake:
|
|||
void atomisp_clear_css_buffer_counters(struct atomisp_sub_device *asd)
|
||||
{
|
||||
int i;
|
||||
|
||||
memset(asd->s3a_bufs_in_css, 0, sizeof(asd->s3a_bufs_in_css));
|
||||
for (i = 0; i < ATOMISP_INPUT_STREAM_NUM; i++)
|
||||
memset(asd->metadata_bufs_in_css[i], 0,
|
||||
|
@ -915,7 +916,7 @@ void atomisp_buf_done(struct atomisp_sub_device *asd, int error,
|
|||
|
||||
/* need to know the atomisp pipe for frame buffers */
|
||||
pipe = __atomisp_get_pipe(asd, stream_id, css_pipe_id, buf_type);
|
||||
if (pipe == NULL) {
|
||||
if (!pipe) {
|
||||
dev_err(isp->dev, "error getting atomisp pipe\n");
|
||||
return;
|
||||
}
|
||||
|
@ -1296,13 +1297,15 @@ static void __atomisp_css_recover(struct atomisp_device *isp, bool isp_timeout)
|
|||
* HAL will be unblocked.
|
||||
*/
|
||||
acc_pipe = asd->stream_env[i].pipes[CSS_PIPE_ID_ACC];
|
||||
if (acc_pipe != NULL) {
|
||||
if (acc_pipe) {
|
||||
acc_pipeline = ia_css_pipe_get_pipeline(acc_pipe);
|
||||
if (acc_pipeline) {
|
||||
struct ia_css_pipeline_stage *stage;
|
||||
|
||||
for (stage = acc_pipeline->stages; stage;
|
||||
stage = stage->next) {
|
||||
const struct ia_css_fw_info *fw;
|
||||
|
||||
fw = stage->firmware;
|
||||
atomisp_acc_done(asd, fw->handle);
|
||||
}
|
||||
|
@ -1435,7 +1438,6 @@ static void __atomisp_css_recover(struct atomisp_device *isp, bool isp_timeout)
|
|||
if (ret)
|
||||
dev_warn(isp->dev,
|
||||
"can't start streaming on sensor!\n");
|
||||
|
||||
}
|
||||
|
||||
if (depth_mode) {
|
||||
|
@ -1469,6 +1471,7 @@ void atomisp_wdt_work(struct work_struct *work)
|
|||
#else
|
||||
for (i = 0; i < isp->num_of_streams; i++) {
|
||||
struct atomisp_sub_device *asd = &isp->asd[i];
|
||||
|
||||
pipe_wdt_cnt[i][0] +=
|
||||
atomic_read(&asd->video_out_capture.wdt_count);
|
||||
pipe_wdt_cnt[i][1] +=
|
||||
|
@ -1497,6 +1500,7 @@ void atomisp_wdt_work(struct work_struct *work)
|
|||
if (css_recover) {
|
||||
#endif
|
||||
unsigned int old_dbglevel = dbg_level;
|
||||
|
||||
atomisp_css_debug_dump_sp_sw_debug_info();
|
||||
atomisp_css_debug_dump_debug_info(__func__);
|
||||
dbg_level = old_dbglevel;
|
||||
|
@ -1566,7 +1570,7 @@ void atomisp_wdt_work(struct work_struct *work)
|
|||
|
||||
dev_err(isp->dev, "%s, raw_buffer_locked_count %d\n",
|
||||
__func__, asd->raw_buffer_locked_count);
|
||||
for (j = 0; j <= ATOMISP_MAX_EXP_ID/32; j++)
|
||||
for (j = 0; j <= ATOMISP_MAX_EXP_ID / 32; j++)
|
||||
dev_err(isp->dev, "%s, raw_buffer_bitmap[%d]: 0x%x\n",
|
||||
__func__, j,
|
||||
asd->raw_buffer_bitmap[j]);
|
||||
|
@ -1578,6 +1582,7 @@ void atomisp_wdt_work(struct work_struct *work)
|
|||
} else {
|
||||
for (i = 0; i < isp->num_of_streams; i++) {
|
||||
struct atomisp_sub_device *asd = &isp->asd[i];
|
||||
|
||||
if (asd->streaming ==
|
||||
ATOMISP_DEVICE_STREAMING_ENABLED) {
|
||||
atomisp_clear_css_buffer_counters(asd);
|
||||
|
@ -1603,6 +1608,7 @@ void atomisp_wdt_work(struct work_struct *work)
|
|||
#ifdef ISP2401
|
||||
for (i = 0; i < isp->num_of_streams; i++) {
|
||||
struct atomisp_sub_device *asd = &isp->asd[i];
|
||||
|
||||
if (asd->streaming ==
|
||||
ATOMISP_DEVICE_STREAMING_ENABLED) {
|
||||
atomisp_wdt_refresh(asd,
|
||||
|
@ -1628,6 +1634,7 @@ void atomisp_css_flush(struct atomisp_device *isp)
|
|||
/* Disable wdt */
|
||||
for (i = 0; i < isp->num_of_streams; i++) {
|
||||
struct atomisp_sub_device *asd = &isp->asd[i];
|
||||
|
||||
atomisp_wdt_stop(asd, true);
|
||||
}
|
||||
|
||||
|
@ -1753,7 +1760,6 @@ void atomisp_wdt_refresh(struct atomisp_sub_device *asd, unsigned int delay)
|
|||
atomisp_wdt_refresh_pipe(&asd->video_out_video_capture, delay);
|
||||
}
|
||||
|
||||
|
||||
void atomisp_wdt_stop_pipe(struct atomisp_video_pipe *pipe, bool sync)
|
||||
#endif
|
||||
{
|
||||
|
@ -1811,7 +1817,7 @@ void atomisp_setup_flash(struct atomisp_sub_device *asd)
|
|||
struct atomisp_device *isp = asd->isp;
|
||||
struct v4l2_control ctrl;
|
||||
|
||||
if (isp->flash == NULL)
|
||||
if (!isp->flash)
|
||||
return;
|
||||
|
||||
if (asd->params.flash_state != ATOMISP_FLASH_REQUESTED &&
|
||||
|
@ -1889,7 +1895,6 @@ irqreturn_t atomisp_isr_thread(int irq, void *isp_ptr)
|
|||
if (asd->streaming != ATOMISP_DEVICE_STREAMING_ENABLED)
|
||||
continue;
|
||||
atomisp_setup_flash(asd);
|
||||
|
||||
}
|
||||
out:
|
||||
rt_mutex_unlock(&isp->mutex);
|
||||
|
@ -1979,6 +1984,7 @@ v4l2_fmt_to_sh_fmt(u32 fmt)
|
|||
return -EINVAL;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* raw format match between SH format and V4L2 format
|
||||
*/
|
||||
|
@ -2343,7 +2349,7 @@ static void atomisp_update_grid_info(struct atomisp_sub_device *asd,
|
|||
{
|
||||
struct atomisp_device *isp = asd->isp;
|
||||
int err;
|
||||
uint16_t stream_id = atomisp_source_pad_to_stream_id(asd, source_pad);
|
||||
u16 stream_id = atomisp_source_pad_to_stream_id(asd, source_pad);
|
||||
|
||||
if (atomisp_css_get_grid_info(asd, pipe_id, source_pad))
|
||||
return;
|
||||
|
@ -2415,6 +2421,7 @@ int atomisp_gdc_cac_table(struct atomisp_sub_device *asd, int flag,
|
|||
if (flag == 0) {
|
||||
/* Get gdc table from current setup */
|
||||
struct atomisp_css_morph_table tab = {0};
|
||||
|
||||
atomisp_css_get_morph_table(asd, &tab);
|
||||
|
||||
config->width = tab.width;
|
||||
|
@ -2643,7 +2650,6 @@ int atomisp_get_dvs2_bq_resolutions(struct atomisp_sub_device *asd,
|
|||
pipe_cfg->bayer_ds_out_res.height /
|
||||
input_config->effective_res.height + 1) / 2;
|
||||
|
||||
|
||||
if (!asd->params.video_dis_en) {
|
||||
/*
|
||||
* We adjust the ispfilter_bq to:
|
||||
|
@ -2681,7 +2687,7 @@ int atomisp_get_dvs2_bq_resolutions(struct atomisp_sub_device *asd,
|
|||
w_padding = w_padding *
|
||||
pipe_cfg->bayer_ds_out_res.width /
|
||||
input_config->effective_res.width + 1;
|
||||
w_padding = roundup(w_padding/2, 1);
|
||||
w_padding = roundup(w_padding / 2, 1);
|
||||
|
||||
bq_res->gdc_shift_bq.width_bq = bq_res->ispfilter_bq.width_bq / 2
|
||||
+ w_padding;
|
||||
|
@ -2842,10 +2848,10 @@ int atomisp_get_metadata(struct atomisp_sub_device *asd, int flag,
|
|||
|
||||
mipi_info = atomisp_to_sensor_mipi_info(
|
||||
isp->inputs[asd->input_curr].camera);
|
||||
if (mipi_info == NULL)
|
||||
if (!mipi_info)
|
||||
return -EINVAL;
|
||||
|
||||
if (mipi_info->metadata_effective_width != NULL) {
|
||||
if (mipi_info->metadata_effective_width) {
|
||||
for (i = 0; i < md->height; i++)
|
||||
md->effective_width[i] =
|
||||
mipi_info->metadata_effective_width[i];
|
||||
|
@ -2925,10 +2931,10 @@ int atomisp_get_metadata_by_type(struct atomisp_sub_device *asd, int flag,
|
|||
|
||||
mipi_info = atomisp_to_sensor_mipi_info(
|
||||
isp->inputs[asd->input_curr].camera);
|
||||
if (mipi_info == NULL)
|
||||
if (!mipi_info)
|
||||
return -EINVAL;
|
||||
|
||||
if (mipi_info->metadata_effective_width != NULL) {
|
||||
if (mipi_info->metadata_effective_width) {
|
||||
for (i = 0; i < md->height; i++)
|
||||
md->effective_width[i] =
|
||||
mipi_info->metadata_effective_width[i];
|
||||
|
@ -3127,7 +3133,6 @@ int atomisp_calculate_real_zoom_region(struct atomisp_sub_device *asd,
|
|||
asd->sensor_array_res.height,
|
||||
out_res.width, out_res.height);
|
||||
|
||||
|
||||
if ((dz_config->zoom_region.origin.x +
|
||||
dz_config->zoom_region.resolution.width
|
||||
> eff_res.width) ||
|
||||
|
@ -3139,7 +3144,6 @@ int atomisp_calculate_real_zoom_region(struct atomisp_sub_device *asd,
|
|||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Function to check the zoom region whether is effective
|
||||
*/
|
||||
|
@ -3149,7 +3153,7 @@ static bool atomisp_check_zoom_region(
|
|||
{
|
||||
struct atomisp_resolution config;
|
||||
bool flag = false;
|
||||
unsigned int w , h;
|
||||
unsigned int w, h;
|
||||
|
||||
memset(&config, 0, sizeof(struct atomisp_resolution));
|
||||
|
||||
|
@ -3313,7 +3317,7 @@ int atomisp_cp_general_isp_parameters(struct atomisp_sub_device *asd,
|
|||
from_user))
|
||||
return -EFAULT;
|
||||
css_param->update_flag.wb_config =
|
||||
(struct atomisp_wb_config *) &css_param->wb_config;
|
||||
(struct atomisp_wb_config *)&css_param->wb_config;
|
||||
}
|
||||
|
||||
if (arg->ob_config && (from_user || !cur_config->ob_config)) {
|
||||
|
@ -3322,7 +3326,7 @@ int atomisp_cp_general_isp_parameters(struct atomisp_sub_device *asd,
|
|||
from_user))
|
||||
return -EFAULT;
|
||||
css_param->update_flag.ob_config =
|
||||
(struct atomisp_ob_config *) &css_param->ob_config;
|
||||
(struct atomisp_ob_config *)&css_param->ob_config;
|
||||
}
|
||||
|
||||
if (arg->dp_config && (from_user || !cur_config->dp_config)) {
|
||||
|
@ -3331,7 +3335,7 @@ int atomisp_cp_general_isp_parameters(struct atomisp_sub_device *asd,
|
|||
from_user))
|
||||
return -EFAULT;
|
||||
css_param->update_flag.dp_config =
|
||||
(struct atomisp_dp_config *) &css_param->dp_config;
|
||||
(struct atomisp_dp_config *)&css_param->dp_config;
|
||||
}
|
||||
|
||||
if (asd->run_mode->val != ATOMISP_RUN_MODE_VIDEO) {
|
||||
|
@ -3358,7 +3362,7 @@ int atomisp_cp_general_isp_parameters(struct atomisp_sub_device *asd,
|
|||
from_user))
|
||||
return -EFAULT;
|
||||
css_param->update_flag.nr_config =
|
||||
(struct atomisp_nr_config *) &css_param->nr_config;
|
||||
(struct atomisp_nr_config *)&css_param->nr_config;
|
||||
}
|
||||
|
||||
if (arg->ee_config && (from_user || !cur_config->ee_config)) {
|
||||
|
@ -3367,7 +3371,7 @@ int atomisp_cp_general_isp_parameters(struct atomisp_sub_device *asd,
|
|||
from_user))
|
||||
return -EFAULT;
|
||||
css_param->update_flag.ee_config =
|
||||
(struct atomisp_ee_config *) &css_param->ee_config;
|
||||
(struct atomisp_ee_config *)&css_param->ee_config;
|
||||
}
|
||||
|
||||
if (arg->tnr_config && (from_user || !cur_config->tnr_config)) {
|
||||
|
@ -3388,7 +3392,7 @@ int atomisp_cp_general_isp_parameters(struct atomisp_sub_device *asd,
|
|||
from_user))
|
||||
return -EFAULT;
|
||||
css_param->update_flag.a3a_config =
|
||||
(struct atomisp_3a_config *) &css_param->s3a_config;
|
||||
(struct atomisp_3a_config *)&css_param->s3a_config;
|
||||
}
|
||||
|
||||
if (arg->ctc_config && (from_user || !cur_config->ctc_config)) {
|
||||
|
@ -3442,7 +3446,7 @@ int atomisp_cp_general_isp_parameters(struct atomisp_sub_device *asd,
|
|||
from_user))
|
||||
return -EFAULT;
|
||||
css_param->update_flag.fc_config =
|
||||
(struct atomisp_fc_config *) &css_param->fc_config;
|
||||
(struct atomisp_fc_config *)&css_param->fc_config;
|
||||
}
|
||||
|
||||
if (arg->macc_config && (from_user || !cur_config->macc_config)) {
|
||||
|
@ -3462,7 +3466,7 @@ int atomisp_cp_general_isp_parameters(struct atomisp_sub_device *asd,
|
|||
from_user))
|
||||
return -EFAULT;
|
||||
css_param->update_flag.aa_config =
|
||||
(struct atomisp_aa_config *) &css_param->aa_config;
|
||||
(struct atomisp_aa_config *)&css_param->aa_config;
|
||||
}
|
||||
|
||||
if (arg->anr_config && (from_user || !cur_config->anr_config)) {
|
||||
|
@ -3529,7 +3533,7 @@ int atomisp_cp_general_isp_parameters(struct atomisp_sub_device *asd,
|
|||
from_user))
|
||||
return -EFAULT;
|
||||
css_param->update_flag.xnr_table =
|
||||
(struct atomisp_xnr_table *) &css_param->xnr_table;
|
||||
(struct atomisp_xnr_table *)&css_param->xnr_table;
|
||||
}
|
||||
|
||||
if (arg->r_gamma_table && (from_user || !cur_config->r_gamma_table)) {
|
||||
|
@ -3571,7 +3575,7 @@ int atomisp_cp_general_isp_parameters(struct atomisp_sub_device *asd,
|
|||
from_user))
|
||||
return -EFAULT;
|
||||
css_param->update_flag.anr_thres =
|
||||
(struct atomisp_anr_thres *) &css_param->anr_thres;
|
||||
(struct atomisp_anr_thres *)&css_param->anr_thres;
|
||||
}
|
||||
|
||||
if (from_user)
|
||||
|
@ -3697,7 +3701,6 @@ int atomisp_cp_lsc_table(struct atomisp_sub_device *asd,
|
|||
atomisp_css_shading_table_free(shading_table);
|
||||
return -EFAULT;
|
||||
}
|
||||
|
||||
}
|
||||
#ifndef ISP2401
|
||||
shading_table->sensor_width = source_st->sensor_width;
|
||||
|
@ -3712,7 +3715,7 @@ int atomisp_cp_lsc_table(struct atomisp_sub_device *asd,
|
|||
#endif
|
||||
|
||||
/* No need to update shading table if it is the same */
|
||||
if (old_table != NULL &&
|
||||
if (old_table &&
|
||||
old_table->sensor_width == shading_table->sensor_width &&
|
||||
old_table->sensor_height == shading_table->sensor_height &&
|
||||
old_table->width == shading_table->width &&
|
||||
|
@ -3739,8 +3742,8 @@ set_lsc:
|
|||
/* set LSC to CSS */
|
||||
css_param->shading_table = shading_table;
|
||||
css_param->update_flag.shading_table =
|
||||
(struct atomisp_shading_table *) shading_table;
|
||||
asd->params.sc_en = shading_table != NULL;
|
||||
(struct atomisp_shading_table *)shading_table;
|
||||
asd->params.sc_en = shading_table;
|
||||
|
||||
if (old_table)
|
||||
atomisp_css_shading_table_free(old_table);
|
||||
|
@ -3788,23 +3791,23 @@ int atomisp_css_cp_dvs2_coefs(struct atomisp_sub_device *asd,
|
|||
}
|
||||
|
||||
#ifndef ISP2401
|
||||
if (coefs->hor_coefs.odd_real == NULL ||
|
||||
coefs->hor_coefs.odd_imag == NULL ||
|
||||
coefs->hor_coefs.even_real == NULL ||
|
||||
coefs->hor_coefs.even_imag == NULL ||
|
||||
coefs->ver_coefs.odd_real == NULL ||
|
||||
coefs->ver_coefs.odd_imag == NULL ||
|
||||
coefs->ver_coefs.even_real == NULL ||
|
||||
coefs->ver_coefs.even_imag == NULL)
|
||||
if (!coefs->hor_coefs.odd_real ||
|
||||
!coefs->hor_coefs.odd_imag ||
|
||||
!coefs->hor_coefs.even_real ||
|
||||
!coefs->hor_coefs.even_imag ||
|
||||
!coefs->ver_coefs.odd_real ||
|
||||
!coefs->ver_coefs.odd_imag ||
|
||||
!coefs->ver_coefs.even_real ||
|
||||
!coefs->ver_coefs.even_imag)
|
||||
#else
|
||||
if (dvs2_coefs.hor_coefs.odd_real == NULL ||
|
||||
dvs2_coefs.hor_coefs.odd_imag == NULL ||
|
||||
dvs2_coefs.hor_coefs.even_real == NULL ||
|
||||
dvs2_coefs.hor_coefs.even_imag == NULL ||
|
||||
dvs2_coefs.ver_coefs.odd_real == NULL ||
|
||||
dvs2_coefs.ver_coefs.odd_imag == NULL ||
|
||||
dvs2_coefs.ver_coefs.even_real == NULL ||
|
||||
dvs2_coefs.ver_coefs.even_imag == NULL)
|
||||
if (!dvs2_coefs.hor_coefs.odd_real ||
|
||||
!dvs2_coefs.hor_coefs.odd_imag ||
|
||||
!dvs2_coefs.hor_coefs.even_real ||
|
||||
!dvs2_coefs.hor_coefs.even_imag ||
|
||||
!dvs2_coefs.ver_coefs.odd_real ||
|
||||
!dvs2_coefs.ver_coefs.odd_imag ||
|
||||
!dvs2_coefs.ver_coefs.even_real ||
|
||||
!dvs2_coefs.ver_coefs.even_imag)
|
||||
#endif
|
||||
return -EINVAL;
|
||||
|
||||
|
@ -3891,7 +3894,7 @@ int atomisp_cp_dvs_6axis_config(struct atomisp_sub_device *asd,
|
|||
atomisp_css_get_dvs_grid_info(&asd->params.curr_grid_info);
|
||||
int ret = -EFAULT;
|
||||
|
||||
if (stream == NULL) {
|
||||
if (!stream) {
|
||||
dev_err(asd->isp->dev, "%s: internal error!", __func__);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
@ -4007,7 +4010,7 @@ int atomisp_cp_dvs_6axis_config(struct atomisp_sub_device *asd,
|
|||
|
||||
css_param->dvs_6axis = dvs_6axis_config;
|
||||
css_param->update_flag.dvs_6axis_config =
|
||||
(struct atomisp_dvs_6axis_config *) dvs_6axis_config;
|
||||
(struct atomisp_dvs_6axis_config *)dvs_6axis_config;
|
||||
return 0;
|
||||
|
||||
error:
|
||||
|
@ -4087,7 +4090,7 @@ int atomisp_cp_morph_table(struct atomisp_sub_device *asd,
|
|||
if (old_morph_table)
|
||||
atomisp_css_morph_table_free(old_morph_table);
|
||||
css_param->update_flag.morph_table =
|
||||
(struct atomisp_morph_table *) morph_table;
|
||||
(struct atomisp_morph_table *)morph_table;
|
||||
return 0;
|
||||
|
||||
error:
|
||||
|
@ -4112,7 +4115,7 @@ int atomisp_makeup_css_parameters(struct atomisp_sub_device *asd,
|
|||
if (ret)
|
||||
return ret;
|
||||
ret = atomisp_css_cp_dvs2_coefs(asd,
|
||||
(struct ia_css_dvs2_coefficients *) arg->dvs2_coefs,
|
||||
(struct ia_css_dvs2_coefficients *)arg->dvs2_coefs,
|
||||
css_param, false);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
@ -4242,7 +4245,7 @@ int atomisp_set_parameters(struct video_device *vdev,
|
|||
struct atomisp_css_params *css_param = &asd->params.css_param;
|
||||
int ret;
|
||||
|
||||
if (asd->stream_env[ATOMISP_INPUT_STREAM_GENERAL].stream == NULL) {
|
||||
if (!asd->stream_env[ATOMISP_INPUT_STREAM_GENERAL].stream) {
|
||||
dev_err(asd->isp->dev, "%s: internal error!\n", __func__);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
@ -4288,7 +4291,7 @@ int atomisp_set_parameters(struct video_device *vdev,
|
|||
goto apply_parameter_failed;
|
||||
|
||||
ret = atomisp_css_cp_dvs2_coefs(asd,
|
||||
(struct ia_css_dvs2_coefficients *) arg->dvs2_coefs,
|
||||
(struct ia_css_dvs2_coefficients *)arg->dvs2_coefs,
|
||||
css_param, true);
|
||||
if (ret)
|
||||
goto apply_parameter_failed;
|
||||
|
@ -4334,7 +4337,7 @@ int atomisp_param(struct atomisp_sub_device *asd, int flag,
|
|||
atomisp_css_get_dvs_grid_info(
|
||||
&asd->params.curr_grid_info);
|
||||
|
||||
if (&config->info == NULL) {
|
||||
if (!&config->info) {
|
||||
dev_err(isp->dev, "ERROR: NULL pointer in grid_info\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
@ -4455,7 +4458,6 @@ int atomisp_color_effect(struct atomisp_sub_device *asd, int flag,
|
|||
return 0;
|
||||
}
|
||||
|
||||
|
||||
control.id = V4L2_CID_COLORFX;
|
||||
control.value = *effect;
|
||||
ret =
|
||||
|
@ -4537,7 +4539,6 @@ int atomisp_color_effect(struct atomisp_sub_device *asd, int flag,
|
|||
int atomisp_bad_pixel(struct atomisp_sub_device *asd, int flag,
|
||||
__s32 *value)
|
||||
{
|
||||
|
||||
if (flag == 0) {
|
||||
*value = asd->params.bad_pixel_en;
|
||||
return 0;
|
||||
|
@ -4588,7 +4589,6 @@ int atomisp_video_stable(struct atomisp_sub_device *asd, int flag,
|
|||
int atomisp_fixed_pattern(struct atomisp_sub_device *asd, int flag,
|
||||
__s32 *value)
|
||||
{
|
||||
|
||||
if (flag == 0) {
|
||||
*value = asd->params.fpn_en;
|
||||
return 0;
|
||||
|
@ -4612,9 +4612,9 @@ atomisp_bytesperline_to_padded_width(unsigned int bytesperline,
|
|||
case CSS_FRAME_FORMAT_YUYV:
|
||||
case CSS_FRAME_FORMAT_RAW:
|
||||
case CSS_FRAME_FORMAT_RGB565:
|
||||
return bytesperline/2;
|
||||
return bytesperline / 2;
|
||||
case CSS_FRAME_FORMAT_RGBA888:
|
||||
return bytesperline/4;
|
||||
return bytesperline / 4;
|
||||
/* The following cases could be removed, but we leave them
|
||||
in to document the formats that are included. */
|
||||
case CSS_FRAME_FORMAT_NV11:
|
||||
|
@ -4696,7 +4696,7 @@ int atomisp_fixed_pattern_table(struct atomisp_sub_device *asd,
|
|||
struct atomisp_css_frame *raw_black_frame = NULL;
|
||||
int ret;
|
||||
|
||||
if (arg == NULL)
|
||||
if (!arg)
|
||||
return -EINVAL;
|
||||
|
||||
ret = atomisp_v4l2_framebuffer_to_css_frame(arg, &raw_black_frame);
|
||||
|
@ -4838,7 +4838,7 @@ int atomisp_get_sensor_mode_data(struct atomisp_sub_device *asd,
|
|||
|
||||
mipi_info = atomisp_to_sensor_mipi_info(
|
||||
isp->inputs[asd->input_curr].camera);
|
||||
if (mipi_info == NULL)
|
||||
if (!mipi_info)
|
||||
return -EINVAL;
|
||||
|
||||
memcpy(config, &mipi_info->data, sizeof(*config));
|
||||
|
@ -4855,7 +4855,7 @@ int atomisp_get_fmt(struct video_device *vdev, struct v4l2_format *f)
|
|||
}
|
||||
|
||||
static void __atomisp_update_stream_env(struct atomisp_sub_device *asd,
|
||||
uint16_t stream_index, struct atomisp_input_stream_info *stream_info)
|
||||
u16 stream_index, struct atomisp_input_stream_info *stream_info)
|
||||
{
|
||||
int i;
|
||||
|
||||
|
@ -4874,7 +4874,7 @@ static void __atomisp_update_stream_env(struct atomisp_sub_device *asd,
|
|||
}
|
||||
}
|
||||
|
||||
static void __atomisp_init_stream_info(uint16_t stream_index,
|
||||
static void __atomisp_init_stream_info(u16 stream_index,
|
||||
struct atomisp_input_stream_info *stream_info)
|
||||
{
|
||||
int i;
|
||||
|
@ -4905,16 +4905,16 @@ int atomisp_try_fmt(struct video_device *vdev, struct v4l2_format *f,
|
|||
const struct atomisp_format_bridge *fmt;
|
||||
struct atomisp_input_stream_info *stream_info =
|
||||
(struct atomisp_input_stream_info *)snr_mbus_fmt->reserved;
|
||||
uint16_t stream_index;
|
||||
u16 stream_index;
|
||||
int source_pad = atomisp_subdev_source_pad(vdev);
|
||||
int ret;
|
||||
|
||||
if (isp->inputs[asd->input_curr].camera == NULL)
|
||||
if (!isp->inputs[asd->input_curr].camera)
|
||||
return -EINVAL;
|
||||
|
||||
stream_index = atomisp_source_pad_to_stream_id(asd, source_pad);
|
||||
fmt = atomisp_get_format_bridge(f->fmt.pix.pixelformat);
|
||||
if (fmt == NULL) {
|
||||
if (!fmt) {
|
||||
dev_err(isp->dev, "unsupported pixelformat!\n");
|
||||
fmt = atomisp_output_fmts;
|
||||
}
|
||||
|
@ -4942,7 +4942,7 @@ int atomisp_try_fmt(struct video_device *vdev, struct v4l2_format *f,
|
|||
snr_mbus_fmt->width, snr_mbus_fmt->height);
|
||||
|
||||
fmt = atomisp_get_format_bridge_from_mbus(snr_mbus_fmt->code);
|
||||
if (fmt == NULL) {
|
||||
if (!fmt) {
|
||||
dev_err(isp->dev, "unknown sensor format 0x%8.8x\n",
|
||||
snr_mbus_fmt->code);
|
||||
return -EINVAL;
|
||||
|
@ -4970,7 +4970,7 @@ int atomisp_try_fmt(struct video_device *vdev, struct v4l2_format *f,
|
|||
/* Set the flag when resolution requested is
|
||||
* beyond the max value supported by sensor
|
||||
*/
|
||||
if (res_overflow != NULL)
|
||||
if (res_overflow)
|
||||
*res_overflow = true;
|
||||
}
|
||||
|
||||
|
@ -5087,6 +5087,7 @@ static inline int atomisp_set_sensor_mipi_to_isp(
|
|||
input_format = fc->css_stream_fmt;
|
||||
} else {
|
||||
struct v4l2_mbus_framefmt *sink;
|
||||
|
||||
sink = atomisp_subdev_get_ffmt(&asd->subdev, NULL,
|
||||
V4L2_SUBDEV_FORMAT_ACTIVE,
|
||||
ATOMISP_SUBDEV_PAD_SINK);
|
||||
|
@ -5251,7 +5252,7 @@ static int atomisp_set_fmt_to_isp(struct video_device *vdev,
|
|||
int (*configure_pp_input)(struct atomisp_sub_device *asd,
|
||||
unsigned int width, unsigned int height) =
|
||||
configure_pp_input_nop;
|
||||
uint16_t stream_index = atomisp_source_pad_to_stream_id(asd, source_pad);
|
||||
u16 stream_index = atomisp_source_pad_to_stream_id(asd, source_pad);
|
||||
const struct atomisp_in_fmt_conv *fc;
|
||||
int ret;
|
||||
|
||||
|
@ -5262,7 +5263,7 @@ static int atomisp_set_fmt_to_isp(struct video_device *vdev,
|
|||
ATOMISP_SUBDEV_PAD_SINK, V4L2_SEL_TGT_CROP);
|
||||
|
||||
format = atomisp_get_format_bridge(pix->pixelformat);
|
||||
if (format == NULL)
|
||||
if (!format)
|
||||
return -EINVAL;
|
||||
|
||||
if (isp->inputs[asd->input_curr].type != TEST_PATTERN &&
|
||||
|
@ -5557,7 +5558,6 @@ static void atomisp_check_copy_mode(struct atomisp_sub_device *asd,
|
|||
asd->copy_mode = false;
|
||||
|
||||
dev_dbg(asd->isp->dev, "copy_mode: %d\n", asd->copy_mode);
|
||||
|
||||
}
|
||||
|
||||
static int atomisp_set_fmt_to_snr(struct video_device *vdev,
|
||||
|
@ -5576,7 +5576,7 @@ static int atomisp_set_fmt_to_snr(struct video_device *vdev,
|
|||
struct atomisp_device *isp = asd->isp;
|
||||
struct atomisp_input_stream_info *stream_info =
|
||||
(struct atomisp_input_stream_info *)ffmt->reserved;
|
||||
uint16_t stream_index = ATOMISP_INPUT_STREAM_GENERAL;
|
||||
u16 stream_index = ATOMISP_INPUT_STREAM_GENERAL;
|
||||
int source_pad = atomisp_subdev_source_pad(vdev);
|
||||
struct v4l2_subdev_fh fh;
|
||||
int ret;
|
||||
|
@ -5586,7 +5586,7 @@ static int atomisp_set_fmt_to_snr(struct video_device *vdev,
|
|||
stream_index = atomisp_source_pad_to_stream_id(asd, source_pad);
|
||||
|
||||
format = atomisp_get_format_bridge(pixelformat);
|
||||
if (format == NULL)
|
||||
if (!format)
|
||||
return -EINVAL;
|
||||
|
||||
v4l2_fill_mbus_format(ffmt, &f->fmt.pix, format->mbus_code);
|
||||
|
@ -5667,7 +5667,7 @@ int atomisp_set_fmt(struct video_device *vdev, struct v4l2_format *f)
|
|||
struct v4l2_mbus_framefmt isp_sink_fmt;
|
||||
struct v4l2_mbus_framefmt isp_source_fmt = {0};
|
||||
struct v4l2_rect isp_sink_crop;
|
||||
uint16_t source_pad = atomisp_subdev_source_pad(vdev);
|
||||
u16 source_pad = atomisp_subdev_source_pad(vdev);
|
||||
struct v4l2_subdev_fh fh;
|
||||
int ret;
|
||||
|
||||
|
@ -5687,7 +5687,7 @@ int atomisp_set_fmt(struct video_device *vdev, struct v4l2_format *f)
|
|||
v4l2_fh_init(&fh.vfh, vdev);
|
||||
|
||||
format_bridge = atomisp_get_format_bridge(f->fmt.pix.pixelformat);
|
||||
if (format_bridge == NULL)
|
||||
if (!format_bridge)
|
||||
return -EINVAL;
|
||||
|
||||
pipe->sh_fmt = format_bridge->sh_fmt;
|
||||
|
@ -5736,7 +5736,7 @@ int atomisp_set_fmt(struct video_device *vdev, struct v4l2_format *f)
|
|||
(asd->isp->inputs[asd->input_curr].camera_caps->
|
||||
sensor[asd->sensor_curr].stream_num > 1)) {
|
||||
/* For M10MO outputing YUV preview images. */
|
||||
uint16_t video_index =
|
||||
u16 video_index =
|
||||
atomisp_source_pad_to_stream_id(asd,
|
||||
ATOMISP_SUBDEV_PAD_SOURCE_VIDEO);
|
||||
|
||||
|
@ -6064,7 +6064,6 @@ done:
|
|||
output_info.padded_width, 8);
|
||||
pipe->pix.sizeimage =
|
||||
PAGE_ALIGN(f->fmt.pix.height * pipe->pix.bytesperline);
|
||||
|
||||
}
|
||||
if (f->fmt.pix.field == V4L2_FIELD_ANY)
|
||||
f->fmt.pix.field = V4L2_FIELD_NONE;
|
||||
|
@ -6109,7 +6108,7 @@ int atomisp_set_fmt_file(struct video_device *vdev, struct v4l2_format *f)
|
|||
}
|
||||
|
||||
format_bridge = atomisp_get_format_bridge(f->fmt.pix.pixelformat);
|
||||
if (format_bridge == NULL) {
|
||||
if (!format_bridge) {
|
||||
dev_dbg(isp->dev, "atomisp_get_format_bridge err! fmt:0x%x\n",
|
||||
f->fmt.pix.pixelformat);
|
||||
return -EINVAL;
|
||||
|
@ -6186,7 +6185,7 @@ int atomisp_set_shading_table(struct atomisp_sub_device *asd,
|
|||
asd->params.sc_en = true;
|
||||
|
||||
out:
|
||||
if (free_table != NULL)
|
||||
if (free_table)
|
||||
atomisp_css_shading_table_free(free_table);
|
||||
|
||||
return ret;
|
||||
|
@ -6226,6 +6225,7 @@ done:
|
|||
int atomisp_ospm_dphy_up(struct atomisp_device *isp)
|
||||
{
|
||||
unsigned long flags;
|
||||
|
||||
dev_dbg(isp->dev, "%s\n", __func__);
|
||||
|
||||
spin_lock_irqsave(&isp->lock, flags);
|
||||
|
@ -6235,7 +6235,6 @@ int atomisp_ospm_dphy_up(struct atomisp_device *isp)
|
|||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int atomisp_exif_makernote(struct atomisp_sub_device *asd,
|
||||
struct atomisp_makernote_info *config)
|
||||
{
|
||||
|
@ -6286,6 +6285,7 @@ int atomisp_offline_capture_configure(struct atomisp_sub_device *asd,
|
|||
V4L2_CID_START_ZSL_CAPTURE);
|
||||
if (c) {
|
||||
int ret;
|
||||
|
||||
dev_dbg(asd->isp->dev, "%s trigger ZSL capture request\n",
|
||||
__func__);
|
||||
/* TODO: use the cvf_config */
|
||||
|
@ -6447,6 +6447,7 @@ static int __checking_exp_id(struct atomisp_sub_device *asd, int exp_id)
|
|||
void atomisp_init_raw_buffer_bitmap(struct atomisp_sub_device *asd)
|
||||
{
|
||||
unsigned long flags;
|
||||
|
||||
spin_lock_irqsave(&asd->raw_buffer_bitmap_lock, flags);
|
||||
memset(asd->raw_buffer_bitmap, 0, sizeof(asd->raw_buffer_bitmap));
|
||||
asd->raw_buffer_locked_count = 0;
|
||||
|
@ -6582,7 +6583,7 @@ int atomisp_enable_dz_capt_pipe(struct atomisp_sub_device *asd,
|
|||
{
|
||||
bool value;
|
||||
|
||||
if (enable == NULL)
|
||||
if (!enable)
|
||||
return -EINVAL;
|
||||
|
||||
value = *enable > 0 ? true : false;
|
||||
|
|
|
@ -344,7 +344,6 @@ int atomisp_get_sensor_mode_data(struct atomisp_sub_device *asd,
|
|||
|
||||
int atomisp_get_fmt(struct video_device *vdev, struct v4l2_format *f);
|
||||
|
||||
|
||||
/* This function looks up the closest available resolution. */
|
||||
int atomisp_try_fmt(struct video_device *vdev, struct v4l2_format *f,
|
||||
bool *res_overflow);
|
||||
|
|
|
@ -202,7 +202,7 @@ int atomisp_css_dequeue_buffer(struct atomisp_sub_device *asd,
|
|||
struct atomisp_css_buffer *isp_css_buffer);
|
||||
|
||||
int atomisp_css_allocate_stat_buffers(struct atomisp_sub_device *asd,
|
||||
uint16_t stream_id,
|
||||
u16 stream_id,
|
||||
struct atomisp_s3a_buf *s3a_buf,
|
||||
struct atomisp_dis_buf *dis_buf,
|
||||
struct atomisp_metadata_buf *md_buf);
|
||||
|
@ -422,7 +422,7 @@ int atomisp_css_video_configure_output(struct atomisp_sub_device *asd,
|
|||
enum atomisp_css_frame_format format);
|
||||
|
||||
int atomisp_get_css_frame_info(struct atomisp_sub_device *asd,
|
||||
uint16_t source_pad,
|
||||
u16 source_pad,
|
||||
struct atomisp_css_frame_info *frame_info);
|
||||
|
||||
int atomisp_css_video_configure_viewfinder(struct atomisp_sub_device *asd,
|
||||
|
|
|
@ -118,7 +118,7 @@ static void atomisp_css2_hw_store_32(hrt_address addr, uint32_t data)
|
|||
static uint8_t atomisp_css2_hw_load_8(hrt_address addr)
|
||||
{
|
||||
unsigned long flags;
|
||||
uint8_t ret;
|
||||
u8 ret;
|
||||
|
||||
spin_lock_irqsave(&mmio_lock, flags);
|
||||
ret = _hrt_master_port_load_8(addr);
|
||||
|
@ -129,7 +129,7 @@ static uint8_t atomisp_css2_hw_load_8(hrt_address addr)
|
|||
static uint16_t atomisp_css2_hw_load_16(hrt_address addr)
|
||||
{
|
||||
unsigned long flags;
|
||||
uint16_t ret;
|
||||
u16 ret;
|
||||
|
||||
spin_lock_irqsave(&mmio_lock, flags);
|
||||
ret = _hrt_master_port_load_16(addr);
|
||||
|
@ -140,7 +140,7 @@ static uint16_t atomisp_css2_hw_load_16(hrt_address addr)
|
|||
static uint32_t atomisp_css2_hw_load_32(hrt_address addr)
|
||||
{
|
||||
unsigned long flags;
|
||||
uint32_t ret;
|
||||
u32 ret;
|
||||
|
||||
spin_lock_irqsave(&mmio_lock, flags);
|
||||
ret = _hrt_master_port_load_32(addr);
|
||||
|
@ -158,7 +158,7 @@ static void atomisp_css2_hw_store(hrt_address addr,
|
|||
|
||||
spin_lock_irqsave(&mmio_lock, flags);
|
||||
for (i = 0; i < n; i++, _to++, _from++)
|
||||
_hrt_master_port_store_8(_to , *_from);
|
||||
_hrt_master_port_store_8(_to, *_from);
|
||||
spin_unlock_irqrestore(&mmio_lock, flags);
|
||||
}
|
||||
|
||||
|
@ -202,9 +202,10 @@ void atomisp_load_uint32(hrt_address addr, uint32_t *data)
|
|||
{
|
||||
*data = atomisp_css2_hw_load_32(addr);
|
||||
}
|
||||
|
||||
static int hmm_get_mmu_base_addr(unsigned int *mmu_base_addr)
|
||||
{
|
||||
if (sh_mmu_mrfld.get_pd_base == NULL) {
|
||||
if (!sh_mmu_mrfld.get_pd_base) {
|
||||
dev_err(atomisp_dev, "get mmu base address failed.\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
@ -515,6 +516,7 @@ static int __destroy_streams(struct atomisp_sub_device *asd, bool force)
|
|||
asd->stream_prepared = false;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int __create_stream(struct atomisp_sub_device *asd,
|
||||
struct atomisp_stream_env *stream_env)
|
||||
{
|
||||
|
@ -598,7 +600,6 @@ static int __destroy_pipes(struct atomisp_sub_device *asd, bool force)
|
|||
|
||||
for (i = 0; i < ATOMISP_INPUT_STREAM_NUM; i++) {
|
||||
if (asd->stream_env[i].stream) {
|
||||
|
||||
dev_err(isp->dev,
|
||||
"cannot destroy css pipes for stream[%d].\n",
|
||||
i);
|
||||
|
@ -1286,7 +1287,6 @@ void atomisp_css_update_isp_params(struct atomisp_sub_device *asd)
|
|||
atomisp_isp_parameters_clean_up(&asd->params.config);
|
||||
}
|
||||
|
||||
|
||||
void atomisp_css_update_isp_params_on_pipe(struct atomisp_sub_device *asd,
|
||||
struct ia_css_pipe *pipe)
|
||||
{
|
||||
|
@ -1347,7 +1347,7 @@ int atomisp_css_dequeue_buffer(struct atomisp_sub_device *asd,
|
|||
}
|
||||
|
||||
int atomisp_css_allocate_stat_buffers(struct atomisp_sub_device *asd,
|
||||
uint16_t stream_id,
|
||||
u16 stream_id,
|
||||
struct atomisp_s3a_buf *s3a_buf,
|
||||
struct atomisp_dis_buf *dis_buf,
|
||||
struct atomisp_metadata_buf *md_buf)
|
||||
|
@ -1566,8 +1566,7 @@ int atomisp_css_get_grid_info(struct atomisp_sub_device *asd,
|
|||
|| asd->params.curr_grid_info.s3a_grid.height == 0)
|
||||
&& asd->params.metadata_width_size == md_width) {
|
||||
dev_dbg(isp->dev,
|
||||
"grid info change escape. memcmp=%d, s3a_user_stat=%d,"
|
||||
"dvs_stat=%d, s3a.width=%d, s3a.height=%d, metadata width =%d\n",
|
||||
"grid info change escape. memcmp=%d, s3a_user_stat=%d,dvs_stat=%d, s3a.width=%d, s3a.height=%d, metadata width =%d\n",
|
||||
!memcmp(&old_info, &asd->params.curr_grid_info,
|
||||
sizeof(old_info)),
|
||||
!!asd->params.s3a_user_stat, !!asd->params.dvs_stat,
|
||||
|
@ -1687,7 +1686,6 @@ void atomisp_css_get_dis_statistics(struct atomisp_sub_device *asd,
|
|||
else
|
||||
ia_css_get_dvs2_statistics(asd->params.dvs_stat,
|
||||
isp_css_buffer->css_buffer.data.stats_dvs);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1787,7 +1785,6 @@ void atomisp_css_isys_set_format(struct atomisp_sub_device *asd,
|
|||
enum atomisp_input_format format,
|
||||
int isys_stream)
|
||||
{
|
||||
|
||||
struct ia_css_stream_config *s_config =
|
||||
&asd->stream_env[stream_id].stream_config;
|
||||
|
||||
|
@ -1798,7 +1795,6 @@ void atomisp_css_input_set_format(struct atomisp_sub_device *asd,
|
|||
enum atomisp_input_stream_id stream_id,
|
||||
enum atomisp_input_format format)
|
||||
{
|
||||
|
||||
struct ia_css_stream_config *s_config =
|
||||
&asd->stream_env[stream_id].stream_config;
|
||||
|
||||
|
@ -2026,8 +2022,7 @@ void atomisp_css_input_set_mode(struct atomisp_sub_device *asd,
|
|||
else
|
||||
size_mem_words = CSS_MIPI_FRAME_BUFFER_SIZE_1;
|
||||
dev_warn(asd->isp->dev,
|
||||
"ia_css_mipi_frame_calculate_size failed,"
|
||||
"applying pre-defined MIPI buffer size %u.\n",
|
||||
"ia_css_mipi_frame_calculate_size failed,applying pre-defined MIPI buffer size %u.\n",
|
||||
size_mem_words);
|
||||
}
|
||||
s_config->mipi_buffer_config.size_mem_words = size_mem_words;
|
||||
|
@ -2390,7 +2385,6 @@ static enum ia_css_pipe_mode __pipe_id_to_pipe_mode(
|
|||
WARN_ON(1);
|
||||
return IA_CSS_PIPE_MODE_PREVIEW;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static void __configure_output(struct atomisp_sub_device *asd,
|
||||
|
@ -2912,7 +2906,7 @@ static unsigned int atomisp_get_pipe_index(struct atomisp_sub_device *asd,
|
|||
}
|
||||
|
||||
int atomisp_get_css_frame_info(struct atomisp_sub_device *asd,
|
||||
uint16_t source_pad,
|
||||
u16 source_pad,
|
||||
struct atomisp_css_frame_info *frame_info)
|
||||
{
|
||||
struct ia_css_pipe_info info;
|
||||
|
@ -3555,7 +3549,7 @@ void atomisp_css_set_ctc_table(struct atomisp_sub_device *asd,
|
|||
struct atomisp_css_ctc_table *ctc_table)
|
||||
{
|
||||
int i;
|
||||
uint16_t *vamem_ptr = ctc_table->data.vamem_1;
|
||||
u16 *vamem_ptr = ctc_table->data.vamem_1;
|
||||
int data_size = IA_CSS_VAMEM_1_CTC_TABLE_SIZE;
|
||||
bool valid = false;
|
||||
|
||||
|
@ -3653,22 +3647,22 @@ int atomisp_css_set_dis_coefs(struct atomisp_sub_device *asd,
|
|||
try again. */
|
||||
return -EAGAIN;
|
||||
|
||||
if (coefs->hor_coefs.odd_real == NULL ||
|
||||
coefs->hor_coefs.odd_imag == NULL ||
|
||||
coefs->hor_coefs.even_real == NULL ||
|
||||
coefs->hor_coefs.even_imag == NULL ||
|
||||
coefs->ver_coefs.odd_real == NULL ||
|
||||
coefs->ver_coefs.odd_imag == NULL ||
|
||||
coefs->ver_coefs.even_real == NULL ||
|
||||
coefs->ver_coefs.even_imag == NULL ||
|
||||
asd->params.css_param.dvs2_coeff->hor_coefs.odd_real == NULL ||
|
||||
asd->params.css_param.dvs2_coeff->hor_coefs.odd_imag == NULL ||
|
||||
asd->params.css_param.dvs2_coeff->hor_coefs.even_real == NULL ||
|
||||
asd->params.css_param.dvs2_coeff->hor_coefs.even_imag == NULL ||
|
||||
asd->params.css_param.dvs2_coeff->ver_coefs.odd_real == NULL ||
|
||||
asd->params.css_param.dvs2_coeff->ver_coefs.odd_imag == NULL ||
|
||||
asd->params.css_param.dvs2_coeff->ver_coefs.even_real == NULL ||
|
||||
asd->params.css_param.dvs2_coeff->ver_coefs.even_imag == NULL)
|
||||
if (!coefs->hor_coefs.odd_real ||
|
||||
!coefs->hor_coefs.odd_imag ||
|
||||
!coefs->hor_coefs.even_real ||
|
||||
!coefs->hor_coefs.even_imag ||
|
||||
!coefs->ver_coefs.odd_real ||
|
||||
!coefs->ver_coefs.odd_imag ||
|
||||
!coefs->ver_coefs.even_real ||
|
||||
!coefs->ver_coefs.even_imag ||
|
||||
!asd->params.css_param.dvs2_coeff->hor_coefs.odd_real ||
|
||||
!asd->params.css_param.dvs2_coeff->hor_coefs.odd_imag ||
|
||||
!asd->params.css_param.dvs2_coeff->hor_coefs.even_real ||
|
||||
!asd->params.css_param.dvs2_coeff->hor_coefs.even_imag ||
|
||||
!asd->params.css_param.dvs2_coeff->ver_coefs.odd_real ||
|
||||
!asd->params.css_param.dvs2_coeff->ver_coefs.odd_imag ||
|
||||
!asd->params.css_param.dvs2_coeff->ver_coefs.even_real ||
|
||||
!asd->params.css_param.dvs2_coeff->ver_coefs.even_imag)
|
||||
return -EINVAL;
|
||||
|
||||
if (copy_from_user(asd->params.css_param.dvs2_coeff->hor_coefs.odd_real,
|
||||
|
@ -3724,7 +3718,7 @@ void atomisp_css_set_zoom_factor(struct atomisp_sub_device *asd,
|
|||
asd->params.css_param.dz_config.dy = zoom;
|
||||
|
||||
asd->params.css_param.update_flag.dz_config =
|
||||
(struct atomisp_dz_config *) &asd->params.css_param.dz_config;
|
||||
(struct atomisp_dz_config *)&asd->params.css_param.dz_config;
|
||||
asd->params.css_update_params_needed = true;
|
||||
}
|
||||
|
||||
|
@ -4047,7 +4041,6 @@ int atomisp_css_get_zoom_factor(struct atomisp_sub_device *asd,
|
|||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Function to set/get image stablization statistics
|
||||
*/
|
||||
|
@ -4058,14 +4051,14 @@ int atomisp_css_get_dis_stat(struct atomisp_sub_device *asd,
|
|||
struct atomisp_dis_buf *dis_buf;
|
||||
unsigned long flags;
|
||||
|
||||
if (asd->params.dvs_stat->hor_prod.odd_real == NULL ||
|
||||
asd->params.dvs_stat->hor_prod.odd_imag == NULL ||
|
||||
asd->params.dvs_stat->hor_prod.even_real == NULL ||
|
||||
asd->params.dvs_stat->hor_prod.even_imag == NULL ||
|
||||
asd->params.dvs_stat->ver_prod.odd_real == NULL ||
|
||||
asd->params.dvs_stat->ver_prod.odd_imag == NULL ||
|
||||
asd->params.dvs_stat->ver_prod.even_real == NULL ||
|
||||
asd->params.dvs_stat->ver_prod.even_imag == NULL)
|
||||
if (!asd->params.dvs_stat->hor_prod.odd_real ||
|
||||
!asd->params.dvs_stat->hor_prod.odd_imag ||
|
||||
!asd->params.dvs_stat->hor_prod.even_real ||
|
||||
!asd->params.dvs_stat->hor_prod.even_imag ||
|
||||
!asd->params.dvs_stat->ver_prod.odd_real ||
|
||||
!asd->params.dvs_stat->ver_prod.odd_imag ||
|
||||
!asd->params.dvs_stat->ver_prod.even_real ||
|
||||
!asd->params.dvs_stat->ver_prod.even_imag)
|
||||
return -EINVAL;
|
||||
|
||||
/* isp needs to be streaming to get DIS statistics */
|
||||
|
@ -4646,12 +4639,12 @@ int atomisp_css_dump_blob_infor(void)
|
|||
|
||||
if (nm == 0)
|
||||
return -EPERM;
|
||||
if (bd == NULL)
|
||||
if (!bd)
|
||||
return -EPERM;
|
||||
|
||||
for (i = 1; i < sh_css_num_binaries; i++)
|
||||
dev_dbg(atomisp_dev, "Num%d binary id is %d, name is %s\n", i,
|
||||
bd[i-1].header.info.isp.sp.id, bd[i-1].name);
|
||||
bd[i - 1].header.info.isp.sp.id, bd[i - 1].name);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -4683,6 +4676,7 @@ int atomisp_set_css_dbgfunc(struct atomisp_device *isp, int opt)
|
|||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void atomisp_en_dz_capt_pipe(struct atomisp_sub_device *asd, bool enable)
|
||||
{
|
||||
ia_css_en_dz_capt_pipe(
|
||||
|
|
|
@ -253,7 +253,6 @@ static int put_atomisp_3a_statistics32(struct atomisp_3a_statistics *kp,
|
|||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static int get_atomisp_metadata_stat32(struct atomisp_metadata *kp,
|
||||
struct atomisp_metadata32 __user *up)
|
||||
{
|
||||
|
@ -274,7 +273,6 @@ static int get_atomisp_metadata_stat32(struct atomisp_metadata *kp,
|
|||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static int put_atomisp_metadata_stat32(struct atomisp_metadata *kp,
|
||||
struct atomisp_metadata32 __user *up)
|
||||
{
|
||||
|
@ -387,6 +385,7 @@ static int get_atomisp_overlay32(struct atomisp_overlay *kp,
|
|||
struct atomisp_overlay32 __user *up)
|
||||
{
|
||||
compat_uptr_t frame;
|
||||
|
||||
if (!access_ok(up, sizeof(struct atomisp_overlay32)) ||
|
||||
get_user(frame, &up->frame) ||
|
||||
get_user(kp->bg_y, &up->bg_y) ||
|
||||
|
@ -761,6 +760,7 @@ static int get_atomisp_acc_fw_load_to_pipe32(
|
|||
struct atomisp_acc_fw_load_to_pipe32 __user *up)
|
||||
{
|
||||
compat_uptr_t data;
|
||||
|
||||
if (!access_ok(up, sizeof(struct atomisp_acc_fw_load_to_pipe32)) ||
|
||||
get_user(kp->flags, &up->flags) ||
|
||||
get_user(kp->fw_handle, &up->fw_handle) ||
|
||||
|
@ -781,6 +781,7 @@ static int put_atomisp_acc_fw_load_to_pipe32(
|
|||
struct atomisp_acc_fw_load_to_pipe32 __user *up)
|
||||
{
|
||||
compat_uptr_t data = (compat_uptr_t)((uintptr_t)kp->data);
|
||||
|
||||
if (!access_ok(up, sizeof(struct atomisp_acc_fw_load_to_pipe32)) ||
|
||||
put_user(kp->flags, &up->flags) ||
|
||||
put_user(kp->fw_handle, &up->fw_handle) ||
|
||||
|
@ -800,6 +801,7 @@ static int get_atomisp_sensor_ae_bracketing_lut(
|
|||
struct atomisp_sensor_ae_bracketing_lut32 __user *up)
|
||||
{
|
||||
compat_uptr_t lut;
|
||||
|
||||
if (!access_ok(up, sizeof(struct atomisp_sensor_ae_bracketing_lut32)) ||
|
||||
get_user(kp->lut_size, &up->lut_size) ||
|
||||
get_user(lut, &up->lut))
|
||||
|
@ -1066,7 +1068,6 @@ static long atomisp_do_compat_ioctl(struct file *file,
|
|||
long atomisp_compat_ioctl32(struct file *file,
|
||||
unsigned int cmd, unsigned long arg)
|
||||
{
|
||||
|
||||
struct video_device *vdev = video_devdata(file);
|
||||
struct atomisp_device *isp = video_get_drvdata(vdev);
|
||||
long ret = -ENOIOCTLCMD;
|
||||
|
|
|
@ -49,7 +49,7 @@ struct atomisp_dvs2_statistics32 {
|
|||
|
||||
struct atomisp_dis_statistics32 {
|
||||
struct atomisp_dvs2_statistics32 dvs2_stat;
|
||||
uint32_t exp_id;
|
||||
u32 exp_id;
|
||||
};
|
||||
|
||||
struct atomisp_dis_coefficients32 {
|
||||
|
@ -62,27 +62,27 @@ struct atomisp_3a_statistics32 {
|
|||
struct atomisp_grid_info grid_info;
|
||||
compat_uptr_t data;
|
||||
compat_uptr_t rgby_data;
|
||||
uint32_t exp_id;
|
||||
uint32_t isp_config_id;
|
||||
u32 exp_id;
|
||||
u32 isp_config_id;
|
||||
};
|
||||
|
||||
struct atomisp_metadata_with_type32 {
|
||||
/* to specify which type of metadata to get */
|
||||
enum atomisp_metadata_type type;
|
||||
compat_uptr_t data;
|
||||
uint32_t width;
|
||||
uint32_t height;
|
||||
uint32_t stride; /* in bytes */
|
||||
uint32_t exp_id; /* exposure ID */
|
||||
u32 width;
|
||||
u32 height;
|
||||
u32 stride; /* in bytes */
|
||||
u32 exp_id; /* exposure ID */
|
||||
compat_uptr_t effective_width;
|
||||
};
|
||||
|
||||
struct atomisp_metadata32 {
|
||||
compat_uptr_t data;
|
||||
uint32_t width;
|
||||
uint32_t height;
|
||||
uint32_t stride;
|
||||
uint32_t exp_id;
|
||||
u32 width;
|
||||
u32 height;
|
||||
u32 stride;
|
||||
u32 exp_id;
|
||||
compat_uptr_t effective_width;
|
||||
};
|
||||
|
||||
|
@ -258,8 +258,8 @@ struct atomisp_parameters32 {
|
|||
* Unique ID to track which config was actually applied to a particular
|
||||
* frame, driver will send this id back with output frame together.
|
||||
*/
|
||||
uint32_t isp_config_id;
|
||||
uint32_t per_frame_setting;
|
||||
u32 isp_config_id;
|
||||
u32 per_frame_setting;
|
||||
};
|
||||
|
||||
struct atomisp_acc_fw_load_to_pipe32 {
|
||||
|
@ -272,11 +272,11 @@ struct atomisp_acc_fw_load_to_pipe32 {
|
|||
};
|
||||
|
||||
struct atomisp_dvs_6axis_config32 {
|
||||
uint32_t exp_id;
|
||||
uint32_t width_y;
|
||||
uint32_t height_y;
|
||||
uint32_t width_uv;
|
||||
uint32_t height_uv;
|
||||
u32 exp_id;
|
||||
u32 width_y;
|
||||
u32 height_y;
|
||||
u32 width_uv;
|
||||
u32 height_uv;
|
||||
compat_uptr_t xcoords_y;
|
||||
compat_uptr_t ycoords_y;
|
||||
compat_uptr_t xcoords_uv;
|
||||
|
|
|
@ -23,9 +23,9 @@
|
|||
|
||||
static struct v4l2_mbus_framefmt *__csi2_get_format(struct
|
||||
atomisp_mipi_csi2_device
|
||||
*csi2,
|
||||
* csi2,
|
||||
struct
|
||||
v4l2_subdev_pad_config *cfg,
|
||||
v4l2_subdev_pad_config * cfg,
|
||||
enum
|
||||
v4l2_subdev_format_whence
|
||||
which, unsigned int pad)
|
||||
|
@ -155,7 +155,7 @@ static int csi2_set_format(struct v4l2_subdev *sd,
|
|||
*/
|
||||
static int csi2_set_stream(struct v4l2_subdev *sd, int enable)
|
||||
{
|
||||
return 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* subdev core operations */
|
||||
|
@ -345,6 +345,7 @@ static void atomisp_csi2_configure_isp2401(struct atomisp_sub_device *asd)
|
|||
static const short int coeff_dat_settle[] = { 85, -2 };
|
||||
static const int TERMEN_DEFAULT = 0 * 0;
|
||||
static const int SETTLE_DEFAULT = 0x480;
|
||||
|
||||
static const hrt_address csi2_port_base[] = {
|
||||
[ATOMISP_CAMERA_PORT_PRIMARY] = CSI2_PORT_A_BASE,
|
||||
[ATOMISP_CAMERA_PORT_SECONDARY] = CSI2_PORT_B_BASE,
|
||||
|
@ -396,6 +397,7 @@ static void atomisp_csi2_configure_isp2401(struct atomisp_sub_device *asd)
|
|||
mipi_freq, SETTLE_DEFAULT);
|
||||
for (n = 0; n < csi2_port_lanes[port] + 1; n++) {
|
||||
hrt_address base = csi2_port_base[port] + csi2_lane_base[n];
|
||||
|
||||
atomisp_store_uint32(base + CSI2_REG_RX_CSI_DLY_CNT_TERMEN,
|
||||
n == 0 ? clk_termen : dat_termen);
|
||||
atomisp_store_uint32(base + CSI2_REG_RX_CSI_DLY_CNT_SETTLE,
|
||||
|
@ -439,4 +441,3 @@ fail:
|
|||
atomisp_mipi_csi2_cleanup(isp);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
|
@ -24,8 +24,8 @@
|
|||
#define CSI2_PAD_SOURCE 1
|
||||
#define CSI2_PADS_NUM 2
|
||||
|
||||
#define CSI2_OUTPUT_ISP_SUBDEV (1 << 0)
|
||||
#define CSI2_OUTPUT_MEMORY (1 << 1)
|
||||
#define CSI2_OUTPUT_ISP_SUBDEV BIT(0)
|
||||
#define CSI2_OUTPUT_MEMORY BIT(1)
|
||||
|
||||
struct atomisp_device;
|
||||
struct v4l2_device;
|
||||
|
|
|
@ -27,7 +27,6 @@ struct atomisp_freq_scaling_rule {
|
|||
unsigned int run_mode;
|
||||
};
|
||||
|
||||
|
||||
struct atomisp_dfs_config {
|
||||
unsigned int lowest_freq;
|
||||
unsigned int max_freq_at_vmin;
|
||||
|
|
|
@ -41,9 +41,9 @@ struct _iunit_debug {
|
|||
unsigned int dbgopt;
|
||||
};
|
||||
|
||||
#define OPTION_BIN_LIST (1<<0)
|
||||
#define OPTION_BIN_RUN (1<<1)
|
||||
#define OPTION_MEM_STAT (1<<2)
|
||||
#define OPTION_BIN_LIST BIT(0)
|
||||
#define OPTION_BIN_RUN BIT(1)
|
||||
#define OPTION_MEM_STAT BIT(2)
|
||||
#define OPTION_VALID (OPTION_BIN_LIST \
|
||||
| OPTION_BIN_RUN \
|
||||
| OPTION_MEM_STAT)
|
||||
|
|
|
@ -87,6 +87,7 @@ static int file_input_get_fmt(struct v4l2_subdev *sd,
|
|||
/* only support file injection on subdev0 */
|
||||
struct atomisp_sub_device *asd = &isp->asd[0];
|
||||
struct v4l2_mbus_framefmt *isp_sink_fmt;
|
||||
|
||||
if (format->pad)
|
||||
return -EINVAL;
|
||||
isp_sink_fmt = atomisp_subdev_get_ffmt(&asd->subdev, NULL,
|
||||
|
@ -105,6 +106,7 @@ static int file_input_set_fmt(struct v4l2_subdev *sd,
|
|||
struct v4l2_subdev_format *format)
|
||||
{
|
||||
struct v4l2_mbus_framefmt *fmt = &format->format;
|
||||
|
||||
if (format->pad)
|
||||
return -EINVAL;
|
||||
file_input_get_fmt(sd, cfg, format);
|
||||
|
@ -206,7 +208,7 @@ int atomisp_file_input_init(struct atomisp_device *isp)
|
|||
|
||||
file_dev->isp = isp;
|
||||
file_dev->work_queue = alloc_workqueue(isp->v4l2_dev.name, 0, 1);
|
||||
if (file_dev->work_queue == NULL) {
|
||||
if (!file_dev->work_queue) {
|
||||
dev_err(isp->dev, "Failed to initialize file inject workq\n");
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
|
|
@ -410,7 +410,6 @@ static int atomisp_qbuffers_to_css_for_all_pipes(struct atomisp_sub_device *asd)
|
|||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/* queue all available buffers to css */
|
||||
int atomisp_qbuffers_to_css(struct atomisp_sub_device *asd)
|
||||
{
|
||||
|
@ -737,6 +736,7 @@ static void atomisp_subdev_init_struct(struct atomisp_sub_device *asd)
|
|||
asd->sensor_array_res.width = 0;
|
||||
atomisp_css_init_struct(asd);
|
||||
}
|
||||
|
||||
/*
|
||||
* file operation functions
|
||||
*/
|
||||
|
@ -753,6 +753,7 @@ static unsigned int atomisp_subdev_users(struct atomisp_sub_device *asd)
|
|||
unsigned int atomisp_dev_users(struct atomisp_device *isp)
|
||||
{
|
||||
unsigned int i, sum;
|
||||
|
||||
for (i = 0, sum = 0; i < isp->num_of_streams; i++)
|
||||
sum += atomisp_subdev_users(&isp->asd[i]);
|
||||
|
||||
|
@ -902,7 +903,7 @@ static int atomisp_release(struct file *file)
|
|||
v4l2_fh_init(&fh.vfh, vdev);
|
||||
|
||||
req.count = 0;
|
||||
if (isp == NULL)
|
||||
if (!isp)
|
||||
return -EBADF;
|
||||
|
||||
mutex_lock(&isp->streamoff_mutex);
|
||||
|
@ -960,6 +961,7 @@ static int atomisp_release(struct file *file)
|
|||
*/
|
||||
if (!isp->sw_contex.file_input && asd->fmt_auto->val) {
|
||||
struct v4l2_mbus_framefmt isp_sink_fmt = { 0 };
|
||||
|
||||
atomisp_subdev_set_ffmt(&asd->subdev, fh.pad,
|
||||
V4L2_SUBDEV_FORMAT_ACTIVE,
|
||||
ATOMISP_SUBDEV_PAD_SINK, &isp_sink_fmt);
|
||||
|
@ -971,6 +973,7 @@ subdev_uninit:
|
|||
/* clear the sink pad for file input */
|
||||
if (isp->sw_contex.file_input && asd->fmt_auto->val) {
|
||||
struct v4l2_mbus_framefmt isp_sink_fmt = { 0 };
|
||||
|
||||
atomisp_subdev_set_ffmt(&asd->subdev, fh.pad,
|
||||
V4L2_SUBDEV_FORMAT_ACTIVE,
|
||||
ATOMISP_SUBDEV_PAD_SINK, &isp_sink_fmt);
|
||||
|
@ -1090,7 +1093,8 @@ int atomisp_videobuf_mmap_mapper(struct videobuf_queue *q,
|
|||
mutex_lock(&q->vb_lock);
|
||||
for (i = 0; i < VIDEO_MAX_FRAME; i++) {
|
||||
struct videobuf_buffer *buf = q->bufs[i];
|
||||
if (buf == NULL)
|
||||
|
||||
if (!buf)
|
||||
continue;
|
||||
|
||||
map = kzalloc(sizeof(struct videobuf_mapping), GFP_KERNEL);
|
||||
|
@ -1108,7 +1112,7 @@ int atomisp_videobuf_mmap_mapper(struct videobuf_queue *q,
|
|||
buf->boff == offset) {
|
||||
vm_mem = buf->priv;
|
||||
ret = frame_mmap(isp, vm_mem->vaddr, vma);
|
||||
vma->vm_flags |= VM_IO|VM_DONTEXPAND|VM_DONTDUMP;
|
||||
vma->vm_flags |= VM_IO | VM_DONTEXPAND | VM_DONTDUMP;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -1130,17 +1134,17 @@ static int remove_pad_from_frame(struct atomisp_device *isp,
|
|||
ia_css_ptr load = in_frame->data;
|
||||
ia_css_ptr store = load;
|
||||
|
||||
buffer = kmalloc(width*sizeof(load), GFP_KERNEL);
|
||||
buffer = kmalloc_array(width, sizeof(load), GFP_KERNEL);
|
||||
if (!buffer)
|
||||
return -ENOMEM;
|
||||
|
||||
load += ISP_LEFT_PAD;
|
||||
for (i = 0; i < height; i++) {
|
||||
ret = hmm_load(load, buffer, width*sizeof(load));
|
||||
ret = hmm_load(load, buffer, width * sizeof(load));
|
||||
if (ret < 0)
|
||||
goto remove_pad_error;
|
||||
|
||||
ret = hmm_store(store, buffer, width*sizeof(store));
|
||||
ret = hmm_store(store, buffer, width * sizeof(store));
|
||||
if (ret < 0)
|
||||
goto remove_pad_error;
|
||||
|
||||
|
@ -1194,7 +1198,7 @@ static int atomisp_mmap(struct file *file, struct vm_area_struct *vma)
|
|||
goto error;
|
||||
}
|
||||
raw_virt_addr = asd->raw_output_frame;
|
||||
if (raw_virt_addr == NULL) {
|
||||
if (!raw_virt_addr) {
|
||||
dev_err(isp->dev, "Failed to request RAW frame\n");
|
||||
ret = -EINVAL;
|
||||
goto error;
|
||||
|
@ -1222,7 +1226,7 @@ static int atomisp_mmap(struct file *file, struct vm_area_struct *vma)
|
|||
goto error;
|
||||
}
|
||||
raw_virt_addr->data_bytes = origin_size;
|
||||
vma->vm_flags |= VM_IO|VM_DONTEXPAND|VM_DONTDUMP;
|
||||
vma->vm_flags |= VM_IO | VM_DONTEXPAND | VM_DONTDUMP;
|
||||
rt_mutex_unlock(&isp->mutex);
|
||||
return 0;
|
||||
}
|
||||
|
@ -1299,4 +1303,3 @@ const struct v4l2_file_operations atomisp_file_fops = {
|
|||
#endif
|
||||
.poll = atomisp_poll,
|
||||
};
|
||||
|
||||
|
|
|
@ -26,4 +26,3 @@ static inline void __iomem *atomisp_get_io_virt_addr(unsigned int address)
|
|||
return ret;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
@ -156,7 +156,7 @@
|
|||
|
||||
#endif
|
||||
#define DIV_NEAREST_STEP(n, d, step) \
|
||||
round_down((2 * (n) + (d) * (step))/(2 * (d)), (step))
|
||||
round_down((2 * (n) + (d) * (step)) / (2 * (d)), (step))
|
||||
|
||||
struct atomisp_input_subdev {
|
||||
unsigned int type;
|
||||
|
@ -212,7 +212,6 @@ struct atomisp_sw_contex {
|
|||
int running_freq;
|
||||
};
|
||||
|
||||
|
||||
#define ATOMISP_DEVICE_STREAMING_DISABLED 0
|
||||
#define ATOMISP_DEVICE_STREAMING_ENABLED 1
|
||||
#define ATOMISP_DEVICE_STREAMING_STOPPING 2
|
||||
|
@ -295,16 +294,16 @@ extern struct device *atomisp_dev;
|
|||
|
||||
#define atomisp_is_wdt_running(a) timer_pending(&(a)->wdt)
|
||||
#ifdef ISP2401
|
||||
extern void atomisp_wdt_refresh_pipe(struct atomisp_video_pipe *pipe,
|
||||
void atomisp_wdt_refresh_pipe(struct atomisp_video_pipe *pipe,
|
||||
unsigned int delay);
|
||||
#endif
|
||||
extern void atomisp_wdt_refresh(struct atomisp_sub_device *asd, unsigned int delay);
|
||||
void atomisp_wdt_refresh(struct atomisp_sub_device *asd, unsigned int delay);
|
||||
#ifndef ISP2401
|
||||
extern void atomisp_wdt_start(struct atomisp_sub_device *asd);
|
||||
void atomisp_wdt_start(struct atomisp_sub_device *asd);
|
||||
#else
|
||||
extern void atomisp_wdt_start(struct atomisp_video_pipe *pipe);
|
||||
extern void atomisp_wdt_stop_pipe(struct atomisp_video_pipe *pipe, bool sync);
|
||||
void atomisp_wdt_start(struct atomisp_video_pipe *pipe);
|
||||
void atomisp_wdt_stop_pipe(struct atomisp_video_pipe *pipe, bool sync);
|
||||
#endif
|
||||
extern void atomisp_wdt_stop(struct atomisp_sub_device *asd, bool sync);
|
||||
void atomisp_wdt_stop(struct atomisp_sub_device *asd, bool sync);
|
||||
|
||||
#endif /* __ATOMISP_INTERNAL_H__ */
|
||||
|
|
|
@ -20,7 +20,6 @@
|
|||
#include <linux/delay.h>
|
||||
#include <linux/pci.h>
|
||||
|
||||
|
||||
#include <media/v4l2-ioctl.h>
|
||||
#include <media/v4l2-event.h>
|
||||
#include <media/videobuf-vmalloc.h>
|
||||
|
@ -333,6 +332,7 @@ static struct v4l2_queryctrl ci_v4l2_controls[] = {
|
|||
.default_value = 0,
|
||||
},
|
||||
};
|
||||
|
||||
static const u32 ctrls_num = ARRAY_SIZE(ci_v4l2_controls);
|
||||
|
||||
/*
|
||||
|
@ -651,6 +651,7 @@ unsigned int atomisp_is_acc_enabled(struct atomisp_device *isp)
|
|||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* get input are used to get current primary/secondary camera
|
||||
*/
|
||||
|
@ -666,6 +667,7 @@ static int atomisp_g_input(struct file *file, void *fh, unsigned int *input)
|
|||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* set input are used to set current primary/secondary camera
|
||||
*/
|
||||
|
@ -689,7 +691,7 @@ static int atomisp_s_input(struct file *file, void *fh, unsigned int input)
|
|||
* 1: already in use
|
||||
* 2: if in use, whether it is used by other streams
|
||||
*/
|
||||
if (isp->inputs[input].asd != NULL && isp->inputs[input].asd != asd) {
|
||||
if (isp->inputs[input].asd && isp->inputs[input].asd != asd) {
|
||||
dev_err(isp->dev,
|
||||
"%s, camera is already used by stream: %d\n", __func__,
|
||||
isp->inputs[input].asd->index);
|
||||
|
@ -898,7 +900,7 @@ void atomisp_videobuf_free_buf(struct videobuf_buffer *vb)
|
|||
{
|
||||
struct videobuf_vmalloc_memory *vm_mem;
|
||||
|
||||
if (vb == NULL)
|
||||
if (!vb)
|
||||
return;
|
||||
|
||||
vm_mem = vb->priv;
|
||||
|
@ -1037,8 +1039,8 @@ int __atomisp_reqbufs(struct file *file, void *fh,
|
|||
struct atomisp_css_frame_info frame_info;
|
||||
struct atomisp_css_frame *frame;
|
||||
struct videobuf_vmalloc_memory *vm_mem;
|
||||
uint16_t source_pad = atomisp_subdev_source_pad(vdev);
|
||||
uint16_t stream_id = atomisp_source_pad_to_stream_id(asd, source_pad);
|
||||
u16 source_pad = atomisp_subdev_source_pad(vdev);
|
||||
u16 stream_id = atomisp_source_pad_to_stream_id(asd, source_pad);
|
||||
int ret = 0, i = 0;
|
||||
|
||||
if (req->count == 0) {
|
||||
|
@ -1194,6 +1196,7 @@ static int atomisp_qbuf(struct file *file, void *fh, struct v4l2_buffer *buf)
|
|||
*/
|
||||
if (buf->memory == V4L2_MEMORY_USERPTR) {
|
||||
struct hrt_userbuffer_attr attributes;
|
||||
|
||||
vb = pipe->capq.bufs[buf->index];
|
||||
vm_mem = vb->priv;
|
||||
if (!vm_mem) {
|
||||
|
@ -1338,7 +1341,7 @@ done:
|
|||
asd->pending_capture_request++;
|
||||
dev_dbg(isp->dev, "Add one pending capture request.\n");
|
||||
#else
|
||||
if (asd->re_trigger_capture) {
|
||||
if (asd->re_trigger_capture) {
|
||||
ret = atomisp_css_offline_capture_configure(asd,
|
||||
asd->params.offline_parm.num_captures,
|
||||
asd->params.offline_parm.skip_frames,
|
||||
|
@ -1347,11 +1350,11 @@ done:
|
|||
dev_dbg(isp->dev, "%s Trigger capture again ret=%d\n",
|
||||
__func__, ret);
|
||||
|
||||
} else {
|
||||
} else {
|
||||
asd->pending_capture_request++;
|
||||
asd->re_trigger_capture = false;
|
||||
dev_dbg(isp->dev, "Add one pending capture request.\n");
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
rt_mutex_unlock(&isp->mutex);
|
||||
|
@ -1557,6 +1560,7 @@ int atomisp_stream_on_master_slave_sensor(struct atomisp_device *isp,
|
|||
*/
|
||||
for (i = 0; i < isp->num_of_streams; i++) {
|
||||
int sensor_index = isp->asd[i].input_curr;
|
||||
|
||||
if (isp->inputs[sensor_index].camera_caps->
|
||||
sensor[isp->asd[i].sensor_curr].is_slave)
|
||||
slave = sensor_index;
|
||||
|
@ -1643,6 +1647,7 @@ static void atomisp_pause_buffer_event(struct atomisp_device *isp)
|
|||
|
||||
for (i = 0; i < isp->num_of_streams; i++) {
|
||||
int sensor_index = isp->asd[i].input_curr;
|
||||
|
||||
if (isp->inputs[sensor_index].camera_caps->
|
||||
sensor[isp->asd[i].sensor_curr].is_slave) {
|
||||
v4l2_event_queue(isp->asd[i].subdev.devnode, &event);
|
||||
|
@ -1657,13 +1662,13 @@ static void atomisp_pause_buffer_event(struct atomisp_device *isp)
|
|||
/* manually to 128 in case of 13MPx snapshot and to 1 otherwise. */
|
||||
static void atomisp_dma_burst_len_cfg(struct atomisp_sub_device *asd)
|
||||
{
|
||||
|
||||
struct v4l2_mbus_framefmt *sink;
|
||||
|
||||
sink = atomisp_subdev_get_ffmt(&asd->subdev, NULL,
|
||||
V4L2_SUBDEV_FORMAT_ACTIVE,
|
||||
ATOMISP_SUBDEV_PAD_SINK);
|
||||
|
||||
if (sink->width * sink->height >= 4096*3072)
|
||||
if (sink->width * sink->height >= 4096 * 3072)
|
||||
atomisp_store_uint32(DMA_BURST_SIZE_REG, 0x7F);
|
||||
else
|
||||
atomisp_store_uint32(DMA_BURST_SIZE_REG, 0x00);
|
||||
|
@ -1717,7 +1722,7 @@ static int atomisp_streamon(struct file *file, void *fh,
|
|||
sensor_start_stream = atomisp_sensor_start_stream(asd);
|
||||
|
||||
spin_lock_irqsave(&pipe->irq_lock, irqflags);
|
||||
if (list_empty(&(pipe->capq.stream))) {
|
||||
if (list_empty(&pipe->capq.stream)) {
|
||||
spin_unlock_irqrestore(&pipe->irq_lock, irqflags);
|
||||
dev_dbg(isp->dev, "no buffer in the queue\n");
|
||||
ret = -EINVAL;
|
||||
|
@ -1971,7 +1976,6 @@ int __atomisp_streamoff(struct file *file, void *fh, enum v4l2_buf_type type)
|
|||
ATOMISP_SUBDEV_PAD_SOURCE_PREVIEW &&
|
||||
atomisp_subdev_source_pad(vdev) !=
|
||||
ATOMISP_SUBDEV_PAD_SOURCE_VIDEO) {
|
||||
|
||||
if (isp->inputs[asd->input_curr].camera_caps->multi_stream_ctrl) {
|
||||
v4l2_subdev_call(isp->inputs[asd->input_curr].camera,
|
||||
video, s_stream, 0);
|
||||
|
@ -2138,6 +2142,7 @@ stopsensor:
|
|||
if (isp->sw_contex.power_state == ATOM_ISP_POWER_UP) {
|
||||
unsigned int i;
|
||||
bool recreate_streams[MAX_STREAM_NUM] = {0};
|
||||
|
||||
if (isp->isp_timeout)
|
||||
dev_err(isp->dev, "%s: Resetting with WA activated",
|
||||
__func__);
|
||||
|
@ -2345,6 +2350,7 @@ static int atomisp_s_ctrl(struct file *file, void *fh,
|
|||
rt_mutex_unlock(&isp->mutex);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*
|
||||
* To query the attributes of a control.
|
||||
* applications set the id field of a struct v4l2_queryctrl and call the
|
||||
|
|
|
@ -127,10 +127,11 @@ bool atomisp_subdev_format_conversion(struct atomisp_sub_device *asd,
|
|||
&& !atomisp_is_mbuscode_raw(src->code);
|
||||
}
|
||||
|
||||
uint16_t atomisp_subdev_source_pad(struct video_device * vdev)
|
||||
uint16_t atomisp_subdev_source_pad(struct video_device *vdev)
|
||||
{
|
||||
struct media_link *link;
|
||||
uint16_t ret = 0;
|
||||
u16 ret = 0;
|
||||
|
||||
list_for_each_entry(link, &vdev->entity.links, list) {
|
||||
if (link->source) {
|
||||
ret = link->source->index;
|
||||
|
@ -243,7 +244,7 @@ static int isp_subdev_validate_rect(struct v4l2_subdev *sd, uint32_t pad,
|
|||
|
||||
struct v4l2_rect *atomisp_subdev_get_rect(struct v4l2_subdev *sd,
|
||||
struct v4l2_subdev_pad_config *cfg,
|
||||
uint32_t which, uint32_t pad,
|
||||
u32 which, uint32_t pad,
|
||||
uint32_t target)
|
||||
{
|
||||
struct atomisp_sub_device *isp_sd = v4l2_get_subdevdata(sd);
|
||||
|
@ -299,7 +300,7 @@ static void isp_get_fmt_rect(struct v4l2_subdev *sd,
|
|||
|
||||
static void isp_subdev_propagate(struct v4l2_subdev *sd,
|
||||
struct v4l2_subdev_pad_config *cfg,
|
||||
uint32_t which, uint32_t pad, uint32_t target,
|
||||
u32 which, uint32_t pad, uint32_t target,
|
||||
uint32_t flags)
|
||||
{
|
||||
struct v4l2_mbus_framefmt *ffmt[ATOMISP_SUBDEV_PADS_NUM];
|
||||
|
@ -353,13 +354,13 @@ static char *atomisp_pad_str[] = { "ATOMISP_SUBDEV_PAD_SINK",
|
|||
|
||||
int atomisp_subdev_set_selection(struct v4l2_subdev *sd,
|
||||
struct v4l2_subdev_pad_config *cfg,
|
||||
uint32_t which, uint32_t pad, uint32_t target,
|
||||
uint32_t flags, struct v4l2_rect *r)
|
||||
u32 which, uint32_t pad, uint32_t target,
|
||||
u32 flags, struct v4l2_rect *r)
|
||||
{
|
||||
struct atomisp_sub_device *isp_sd = v4l2_get_subdevdata(sd);
|
||||
struct atomisp_device *isp = isp_sd->isp;
|
||||
struct v4l2_mbus_framefmt *ffmt[ATOMISP_SUBDEV_PADS_NUM];
|
||||
uint16_t vdev_pad = atomisp_subdev_source_pad(sd->devnode);
|
||||
u16 vdev_pad = atomisp_subdev_source_pad(sd->devnode);
|
||||
struct v4l2_rect *crop[ATOMISP_SUBDEV_PADS_NUM],
|
||||
*comp[ATOMISP_SUBDEV_PADS_NUM];
|
||||
enum atomisp_input_stream_id stream_id;
|
||||
|
@ -551,6 +552,7 @@ static int isp_subdev_set_selection(struct v4l2_subdev *sd,
|
|||
struct v4l2_subdev_selection *sel)
|
||||
{
|
||||
int rval = isp_subdev_validate_rect(sd, sel->pad, sel->target);
|
||||
|
||||
if (rval)
|
||||
return rval;
|
||||
|
||||
|
@ -594,13 +596,13 @@ static int atomisp_get_sensor_bin_factor(struct atomisp_sub_device *asd)
|
|||
|
||||
void atomisp_subdev_set_ffmt(struct v4l2_subdev *sd,
|
||||
struct v4l2_subdev_pad_config *cfg, uint32_t which,
|
||||
uint32_t pad, struct v4l2_mbus_framefmt *ffmt)
|
||||
u32 pad, struct v4l2_mbus_framefmt *ffmt)
|
||||
{
|
||||
struct atomisp_sub_device *isp_sd = v4l2_get_subdevdata(sd);
|
||||
struct atomisp_device *isp = isp_sd->isp;
|
||||
struct v4l2_mbus_framefmt *__ffmt =
|
||||
atomisp_subdev_get_ffmt(sd, cfg, which, pad);
|
||||
uint16_t vdev_pad = atomisp_subdev_source_pad(sd->devnode);
|
||||
u16 vdev_pad = atomisp_subdev_source_pad(sd->devnode);
|
||||
enum atomisp_input_stream_id stream_id;
|
||||
|
||||
dev_dbg(isp->dev, "ffmt: pad %s w %d h %d code 0x%8.8x which %s\n",
|
||||
|
@ -1240,6 +1242,7 @@ int atomisp_create_pads_links(struct atomisp_device *isp)
|
|||
{
|
||||
struct atomisp_sub_device *asd;
|
||||
int i, j, ret = 0;
|
||||
|
||||
isp->num_of_streams = 2;
|
||||
for (i = 0; i < ATOMISP_CAMERA_NR_PORTS; i++) {
|
||||
for (j = 0; j < isp->num_of_streams; j++) {
|
||||
|
|
|
@ -56,8 +56,8 @@ enum atomisp_subdev_input_entity {
|
|||
|
||||
struct atomisp_in_fmt_conv {
|
||||
u32 code;
|
||||
uint8_t bpp; /* bits per pixel */
|
||||
uint8_t depth; /* uncompressed */
|
||||
u8 bpp; /* bits per pixel */
|
||||
u8 depth; /* uncompressed */
|
||||
enum atomisp_input_format atomisp_in_fmt;
|
||||
enum atomisp_css_bayer_order bayer_order;
|
||||
enum atomisp_input_format css_stream_fmt;
|
||||
|
@ -91,7 +91,7 @@ struct atomisp_video_pipe {
|
|||
|
||||
struct atomisp_device *isp;
|
||||
struct v4l2_pix_format pix;
|
||||
uint32_t sh_fmt;
|
||||
u32 sh_fmt;
|
||||
|
||||
struct atomisp_sub_device *asd;
|
||||
|
||||
|
@ -192,7 +192,7 @@ struct atomisp_css_params {
|
|||
* translate to ia_css_frame * and then set to CSS.
|
||||
*/
|
||||
void *output_frame;
|
||||
uint32_t isp_config_id;
|
||||
u32 isp_config_id;
|
||||
|
||||
/* Indicates which parameters need to be updated. */
|
||||
struct atomisp_parameters update_flag;
|
||||
|
@ -238,11 +238,11 @@ struct atomisp_subdev_params {
|
|||
struct ia_css_3a_statistics *s3a_user_stat;
|
||||
|
||||
void *metadata_user[ATOMISP_METADATA_TYPE_NUM];
|
||||
uint32_t metadata_width_size;
|
||||
u32 metadata_width_size;
|
||||
|
||||
struct ia_css_dvs2_statistics *dvs_stat;
|
||||
struct atomisp_css_dvs_6axis *dvs_6axis;
|
||||
uint32_t exp_id;
|
||||
u32 exp_id;
|
||||
int dvs_hor_coef_bytes;
|
||||
int dvs_ver_coef_bytes;
|
||||
int dvs_ver_proj_bytes;
|
||||
|
@ -291,7 +291,7 @@ struct atomisp_sub_device {
|
|||
struct v4l2_subdev subdev;
|
||||
struct media_pad pads[ATOMISP_SUBDEV_PADS_NUM];
|
||||
struct atomisp_pad_format fmt[ATOMISP_SUBDEV_PADS_NUM];
|
||||
uint16_t capture_pad; /* main capture pad; defines much of isp config */
|
||||
u16 capture_pad; /* main capture pad; defines much of isp config */
|
||||
|
||||
enum atomisp_subdev_input_entity input;
|
||||
unsigned int output;
|
||||
|
@ -395,7 +395,7 @@ struct atomisp_sub_device {
|
|||
bool copy_mode; /* CSI2+ use copy mode */
|
||||
bool yuvpp_mode; /* CSI2+ yuvpp pipe */
|
||||
|
||||
int raw_buffer_bitmap[ATOMISP_MAX_EXP_ID/32 + 1]; /* Record each Raw Buffer lock status */
|
||||
int raw_buffer_bitmap[ATOMISP_MAX_EXP_ID / 32 + 1]; /* Record each Raw Buffer lock status */
|
||||
int raw_buffer_locked_count;
|
||||
spinlock_t raw_buffer_bitmap_lock;
|
||||
|
||||
|
@ -442,16 +442,16 @@ struct v4l2_mbus_framefmt
|
|||
uint32_t pad);
|
||||
struct v4l2_rect *atomisp_subdev_get_rect(struct v4l2_subdev *sd,
|
||||
struct v4l2_subdev_pad_config *cfg,
|
||||
uint32_t which, uint32_t pad,
|
||||
u32 which, uint32_t pad,
|
||||
uint32_t target);
|
||||
int atomisp_subdev_set_selection(struct v4l2_subdev *sd,
|
||||
struct v4l2_subdev_pad_config *cfg,
|
||||
uint32_t which, uint32_t pad, uint32_t target,
|
||||
uint32_t flags, struct v4l2_rect *r);
|
||||
u32 which, uint32_t pad, uint32_t target,
|
||||
u32 flags, struct v4l2_rect *r);
|
||||
/* Actually set the format */
|
||||
void atomisp_subdev_set_ffmt(struct v4l2_subdev *sd,
|
||||
struct v4l2_subdev_pad_config *cfg, uint32_t which,
|
||||
uint32_t pad, struct v4l2_mbus_framefmt *ffmt);
|
||||
u32 pad, struct v4l2_mbus_framefmt *ffmt);
|
||||
|
||||
int atomisp_update_run_mode(struct atomisp_sub_device *asd);
|
||||
|
||||
|
|
|
@ -134,7 +134,6 @@ error:
|
|||
|
||||
void atomisp_tpg_cleanup(struct atomisp_device *isp)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
int atomisp_tpg_init(struct atomisp_device *isp)
|
||||
|
|
|
@ -54,9 +54,7 @@ TRACE_EVENT(camera_meminfo,
|
|||
),
|
||||
|
||||
TP_printk(
|
||||
"<%s> User ptr memory:%d pages,\tISP private memory used:%d"
|
||||
" pages:\tsysFP system size:%d,\treserved size:%d"
|
||||
"\tcamFP sysUse:%d,\tdycUse:%d,\tresUse:%d.\n",
|
||||
"<%s> User ptr memory:%d pages,\tISP private memory used:%d pages:\tsysFP system size:%d,\treserved size:%d\tcamFP sysUse:%d,\tdycUse:%d,\tresUse:%d.\n",
|
||||
__entry->name, __entry->uptr_size, __entry->counter,
|
||||
__entry->sys_size, __entry->sys_res_size, __entry->cam_sys_use,
|
||||
__entry->cam_dyc_use, __entry->cam_res_use)
|
||||
|
|
|
@ -376,7 +376,6 @@ done:
|
|||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* WA for DDR DVFS enable/disable
|
||||
* By default, ISP will force DDR DVFS 1600MHz before disable DVFS
|
||||
|
@ -448,7 +447,6 @@ int atomisp_mrfld_power_down(struct atomisp_device *isp)
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/* Workaround for pmu_nc_set_power_state not ready in MRFLD */
|
||||
int atomisp_mrfld_power_up(struct atomisp_device *isp)
|
||||
{
|
||||
|
@ -735,7 +733,7 @@ static int atomisp_subdev_probe(struct atomisp_device *isp)
|
|||
int ret, raw_index = -1;
|
||||
|
||||
pdata = atomisp_get_platform_data();
|
||||
if (pdata == NULL) {
|
||||
if (!pdata) {
|
||||
dev_err(isp->dev, "no platform data available\n");
|
||||
return 0;
|
||||
}
|
||||
|
@ -748,7 +746,7 @@ static int atomisp_subdev_probe(struct atomisp_device *isp)
|
|||
i2c_get_adapter(subdevs->v4l2_subdev.i2c_adapter_id);
|
||||
int sensor_num, i;
|
||||
|
||||
if (adapter == NULL) {
|
||||
if (!adapter) {
|
||||
dev_err(isp->dev,
|
||||
"Failed to find i2c adapter for subdev %s\n",
|
||||
board_info->type);
|
||||
|
@ -766,7 +764,7 @@ static int atomisp_subdev_probe(struct atomisp_device *isp)
|
|||
continue;
|
||||
}
|
||||
|
||||
if (subdev == NULL) {
|
||||
if (!subdev) {
|
||||
dev_warn(isp->dev, "Subdev %s detection fail\n",
|
||||
board_info->type);
|
||||
continue;
|
||||
|
@ -825,7 +823,6 @@ static int atomisp_subdev_probe(struct atomisp_device *isp)
|
|||
dev_dbg(isp->dev, "unknown subdev probed\n");
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -937,7 +934,7 @@ static int atomisp_register_entities(struct atomisp_device *isp)
|
|||
asd->delayed_init_workq =
|
||||
alloc_workqueue(isp->v4l2_dev.name, WQ_CPU_INTENSIVE,
|
||||
1);
|
||||
if (asd->delayed_init_workq == NULL) {
|
||||
if (!asd->delayed_init_workq) {
|
||||
dev_err(isp->dev,
|
||||
"Failed to initialize delayed init workq\n");
|
||||
ret = -ENOMEM;
|
||||
|
@ -1037,7 +1034,6 @@ static int atomisp_initialize_modules(struct atomisp_device *isp)
|
|||
goto error_isp_subdev;
|
||||
}
|
||||
|
||||
|
||||
return 0;
|
||||
|
||||
error_isp_subdev:
|
||||
|
@ -1128,7 +1124,7 @@ static int init_atomisp_wdts(struct atomisp_device *isp)
|
|||
|
||||
atomic_set(&isp->wdt_work_queued, 0);
|
||||
isp->wdt_work_queue = alloc_workqueue(isp->v4l2_dev.name, 0, 1);
|
||||
if (isp->wdt_work_queue == NULL) {
|
||||
if (!isp->wdt_work_queue) {
|
||||
dev_err(isp->dev, "Failed to initialize wdt work queue\n");
|
||||
err = -ENOMEM;
|
||||
goto alloc_fail;
|
||||
|
@ -1174,7 +1170,7 @@ static int atomisp_pci_probe(struct pci_dev *dev,
|
|||
atomisp_dev = &dev->dev;
|
||||
|
||||
pdata = atomisp_get_platform_data();
|
||||
if (pdata == NULL)
|
||||
if (!pdata)
|
||||
dev_warn(&dev->dev, "no platform data available\n");
|
||||
|
||||
err = pcim_enable_device(dev);
|
||||
|
@ -1243,13 +1239,13 @@ static int atomisp_pci_probe(struct pci_dev *dev,
|
|||
(ATOMISP_HW_REVISION_ISP2400
|
||||
<< ATOMISP_HW_REVISION_SHIFT) |
|
||||
ATOMISP_HW_STEPPING_B0;
|
||||
#ifdef FIXME
|
||||
#ifdef FIXME
|
||||
if (INTEL_MID_BOARD(3, TABLET, BYT, BLK, PRO, CRV2) ||
|
||||
INTEL_MID_BOARD(3, TABLET, BYT, BLK, ENG, CRV2)) {
|
||||
isp->dfs = &dfs_config_byt_cr;
|
||||
isp->hpll_freq = HPLL_FREQ_2000MHZ;
|
||||
} else
|
||||
#endif
|
||||
#endif
|
||||
{
|
||||
isp->dfs = &dfs_config_byt;
|
||||
isp->hpll_freq = HPLL_FREQ_1600MHZ;
|
||||
|
|
|
@ -44,7 +44,7 @@ struct ia_css_circbuf_s {
|
|||
* @param elems An array of elements.
|
||||
* @param desc The descriptor set to the size using ia_css_circbuf_desc_init().
|
||||
*/
|
||||
extern void ia_css_circbuf_create(
|
||||
void ia_css_circbuf_create(
|
||||
ia_css_circbuf_t *cb,
|
||||
ia_css_circbuf_elem_t *elems,
|
||||
ia_css_circbuf_desc_t *desc);
|
||||
|
@ -54,7 +54,7 @@ extern void ia_css_circbuf_create(
|
|||
*
|
||||
* @param cb The pointer to the circular buffer.
|
||||
*/
|
||||
extern void ia_css_circbuf_destroy(
|
||||
void ia_css_circbuf_destroy(
|
||||
ia_css_circbuf_t *cb);
|
||||
|
||||
/**
|
||||
|
@ -67,7 +67,7 @@ extern void ia_css_circbuf_destroy(
|
|||
*
|
||||
* @return the pop-out value.
|
||||
*/
|
||||
extern uint32_t ia_css_circbuf_pop(
|
||||
uint32_t ia_css_circbuf_pop(
|
||||
ia_css_circbuf_t *cb);
|
||||
|
||||
/**
|
||||
|
@ -81,7 +81,7 @@ extern uint32_t ia_css_circbuf_pop(
|
|||
*
|
||||
* @return the extracted value.
|
||||
*/
|
||||
extern uint32_t ia_css_circbuf_extract(
|
||||
uint32_t ia_css_circbuf_extract(
|
||||
ia_css_circbuf_t *cb,
|
||||
int offset);
|
||||
|
||||
|
@ -100,7 +100,7 @@ static inline void ia_css_circbuf_elem_set_val(
|
|||
ia_css_circbuf_elem_t *elem,
|
||||
uint32_t val)
|
||||
{
|
||||
OP___assert(elem != NULL);
|
||||
OP___assert(elem);
|
||||
|
||||
elem->val = val;
|
||||
}
|
||||
|
@ -113,7 +113,7 @@ static inline void ia_css_circbuf_elem_set_val(
|
|||
static inline void ia_css_circbuf_elem_init(
|
||||
ia_css_circbuf_elem_t *elem)
|
||||
{
|
||||
OP___assert(elem != NULL);
|
||||
OP___assert(elem);
|
||||
ia_css_circbuf_elem_set_val(elem, 0);
|
||||
}
|
||||
|
||||
|
@ -127,8 +127,8 @@ static inline void ia_css_circbuf_elem_cpy(
|
|||
ia_css_circbuf_elem_t *src,
|
||||
ia_css_circbuf_elem_t *dest)
|
||||
{
|
||||
OP___assert(src != NULL);
|
||||
OP___assert(dest != NULL);
|
||||
OP___assert(src);
|
||||
OP___assert(dest);
|
||||
|
||||
ia_css_circbuf_elem_set_val(dest, src->val);
|
||||
}
|
||||
|
@ -144,13 +144,13 @@ static inline void ia_css_circbuf_elem_cpy(
|
|||
*/
|
||||
static inline uint8_t ia_css_circbuf_get_pos_at_offset(
|
||||
ia_css_circbuf_t *cb,
|
||||
uint32_t base,
|
||||
u32 base,
|
||||
int offset)
|
||||
{
|
||||
uint8_t dest;
|
||||
u8 dest;
|
||||
|
||||
OP___assert(cb != NULL);
|
||||
OP___assert(cb->desc != NULL);
|
||||
OP___assert(cb);
|
||||
OP___assert(cb->desc);
|
||||
OP___assert(cb->desc->size > 0);
|
||||
|
||||
/* step 1: adjudst the offset */
|
||||
|
@ -177,13 +177,13 @@ static inline uint8_t ia_css_circbuf_get_pos_at_offset(
|
|||
*/
|
||||
static inline int ia_css_circbuf_get_offset(
|
||||
ia_css_circbuf_t *cb,
|
||||
uint32_t src_pos,
|
||||
u32 src_pos,
|
||||
uint32_t dest_pos)
|
||||
{
|
||||
int offset;
|
||||
|
||||
OP___assert(cb != NULL);
|
||||
OP___assert(cb->desc != NULL);
|
||||
OP___assert(cb);
|
||||
OP___assert(cb->desc);
|
||||
|
||||
offset = (int)(dest_pos - src_pos);
|
||||
offset += (offset < 0) ? cb->desc->size : 0;
|
||||
|
@ -203,8 +203,8 @@ static inline int ia_css_circbuf_get_offset(
|
|||
static inline uint32_t ia_css_circbuf_get_size(
|
||||
ia_css_circbuf_t *cb)
|
||||
{
|
||||
OP___assert(cb != NULL);
|
||||
OP___assert(cb->desc != NULL);
|
||||
OP___assert(cb);
|
||||
OP___assert(cb->desc);
|
||||
|
||||
return cb->desc->size;
|
||||
}
|
||||
|
@ -221,8 +221,8 @@ static inline uint32_t ia_css_circbuf_get_num_elems(
|
|||
{
|
||||
int num;
|
||||
|
||||
OP___assert(cb != NULL);
|
||||
OP___assert(cb->desc != NULL);
|
||||
OP___assert(cb);
|
||||
OP___assert(cb->desc);
|
||||
|
||||
num = ia_css_circbuf_get_offset(cb, cb->desc->start, cb->desc->end);
|
||||
|
||||
|
@ -241,8 +241,8 @@ static inline uint32_t ia_css_circbuf_get_num_elems(
|
|||
static inline bool ia_css_circbuf_is_empty(
|
||||
ia_css_circbuf_t *cb)
|
||||
{
|
||||
OP___assert(cb != NULL);
|
||||
OP___assert(cb->desc != NULL);
|
||||
OP___assert(cb);
|
||||
OP___assert(cb->desc);
|
||||
|
||||
return ia_css_circbuf_desc_is_empty(cb->desc);
|
||||
}
|
||||
|
@ -258,8 +258,8 @@ static inline bool ia_css_circbuf_is_empty(
|
|||
*/
|
||||
static inline bool ia_css_circbuf_is_full(ia_css_circbuf_t *cb)
|
||||
{
|
||||
OP___assert(cb != NULL);
|
||||
OP___assert(cb->desc != NULL);
|
||||
OP___assert(cb);
|
||||
OP___assert(cb->desc);
|
||||
|
||||
return ia_css_circbuf_desc_is_full(cb->desc);
|
||||
}
|
||||
|
@ -277,8 +277,8 @@ static inline void ia_css_circbuf_write(
|
|||
ia_css_circbuf_t *cb,
|
||||
ia_css_circbuf_elem_t elem)
|
||||
{
|
||||
OP___assert(cb != NULL);
|
||||
OP___assert(cb->desc != NULL);
|
||||
OP___assert(cb);
|
||||
OP___assert(cb->desc);
|
||||
|
||||
/* Cannot continue as the queue is full*/
|
||||
assert(!ia_css_circbuf_is_full(cb));
|
||||
|
@ -303,7 +303,7 @@ static inline void ia_css_circbuf_push(
|
|||
{
|
||||
ia_css_circbuf_elem_t elem;
|
||||
|
||||
OP___assert(cb != NULL);
|
||||
OP___assert(cb);
|
||||
|
||||
/* set up an element */
|
||||
ia_css_circbuf_elem_init(&elem);
|
||||
|
@ -323,8 +323,8 @@ static inline void ia_css_circbuf_push(
|
|||
static inline uint32_t ia_css_circbuf_get_free_elems(
|
||||
ia_css_circbuf_t *cb)
|
||||
{
|
||||
OP___assert(cb != NULL);
|
||||
OP___assert(cb->desc != NULL);
|
||||
OP___assert(cb);
|
||||
OP___assert(cb->desc);
|
||||
|
||||
return ia_css_circbuf_desc_get_free_elems(cb->desc);
|
||||
}
|
||||
|
@ -337,7 +337,7 @@ static inline uint32_t ia_css_circbuf_get_free_elems(
|
|||
*
|
||||
* @return the elements value.
|
||||
*/
|
||||
extern uint32_t ia_css_circbuf_peek(
|
||||
uint32_t ia_css_circbuf_peek(
|
||||
ia_css_circbuf_t *cb,
|
||||
int offset);
|
||||
|
||||
|
@ -349,7 +349,7 @@ extern uint32_t ia_css_circbuf_peek(
|
|||
*
|
||||
* @return the elements value.
|
||||
*/
|
||||
extern uint32_t ia_css_circbuf_peek_from_start(
|
||||
uint32_t ia_css_circbuf_peek_from_start(
|
||||
ia_css_circbuf_t *cb,
|
||||
int offset);
|
||||
|
||||
|
@ -362,13 +362,13 @@ extern uint32_t ia_css_circbuf_peek_from_start(
|
|||
* @param sz_delta delta increase for new size
|
||||
* @param elems (optional) pointers to new additional elements
|
||||
* cb element array size will not be increased dynamically,
|
||||
* but new elements should be added at the end to existing
|
||||
* cb element array which if of max_size >= new size
|
||||
* but new elements should be added at the end to existing
|
||||
* cb element array which if of max_size >= new size
|
||||
*
|
||||
* @return true on successfully increasing the size
|
||||
* false on failure
|
||||
* false on failure
|
||||
*/
|
||||
extern bool ia_css_circbuf_increase_size(
|
||||
bool ia_css_circbuf_increase_size(
|
||||
ia_css_circbuf_t *cb,
|
||||
unsigned int sz_delta,
|
||||
ia_css_circbuf_elem_t *elems);
|
||||
|
|
|
@ -35,11 +35,12 @@
|
|||
*/
|
||||
typedef struct ia_css_circbuf_desc_s ia_css_circbuf_desc_t;
|
||||
struct ia_css_circbuf_desc_s {
|
||||
uint8_t size; /* the maximum number of elements*/
|
||||
uint8_t step; /* number of bytes per element */
|
||||
uint8_t start; /* index of the oldest element */
|
||||
uint8_t end; /* index at which to write the new element */
|
||||
u8 size; /* the maximum number of elements*/
|
||||
u8 step; /* number of bytes per element */
|
||||
u8 start; /* index of the oldest element */
|
||||
u8 end; /* index at which to write the new element */
|
||||
};
|
||||
|
||||
#define SIZE_OF_IA_CSS_CIRCBUF_DESC_S_STRUCT \
|
||||
(4 * sizeof(uint8_t))
|
||||
|
||||
|
@ -48,8 +49,9 @@ struct ia_css_circbuf_desc_s {
|
|||
*/
|
||||
typedef struct ia_css_circbuf_elem_s ia_css_circbuf_elem_t;
|
||||
struct ia_css_circbuf_elem_s {
|
||||
uint32_t val; /* the value stored in the element */
|
||||
u32 val; /* the value stored in the element */
|
||||
};
|
||||
|
||||
#define SIZE_OF_IA_CSS_CIRCBUF_ELEM_S_STRUCT \
|
||||
(sizeof(uint32_t))
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
static inline bool ia_css_circbuf_desc_is_empty(
|
||||
ia_css_circbuf_desc_t *cb_desc)
|
||||
{
|
||||
OP___assert(cb_desc != NULL);
|
||||
OP___assert(cb_desc);
|
||||
return (cb_desc->end == cb_desc->start);
|
||||
}
|
||||
|
||||
|
@ -54,7 +54,7 @@ static inline bool ia_css_circbuf_desc_is_empty(
|
|||
static inline bool ia_css_circbuf_desc_is_full(
|
||||
ia_css_circbuf_desc_t *cb_desc)
|
||||
{
|
||||
OP___assert(cb_desc != NULL);
|
||||
OP___assert(cb_desc);
|
||||
return (OP_std_modadd(cb_desc->end, 1, cb_desc->size) == cb_desc->start);
|
||||
}
|
||||
|
||||
|
@ -68,7 +68,7 @@ static inline void ia_css_circbuf_desc_init(
|
|||
ia_css_circbuf_desc_t *cb_desc,
|
||||
int8_t size)
|
||||
{
|
||||
OP___assert(cb_desc != NULL);
|
||||
OP___assert(cb_desc);
|
||||
cb_desc->size = size;
|
||||
}
|
||||
|
||||
|
@ -83,11 +83,12 @@ static inline void ia_css_circbuf_desc_init(
|
|||
*/
|
||||
static inline uint8_t ia_css_circbuf_desc_get_pos_at_offset(
|
||||
ia_css_circbuf_desc_t *cb_desc,
|
||||
uint32_t base,
|
||||
u32 base,
|
||||
int offset)
|
||||
{
|
||||
uint8_t dest;
|
||||
OP___assert(cb_desc != NULL);
|
||||
u8 dest;
|
||||
|
||||
OP___assert(cb_desc);
|
||||
OP___assert(cb_desc->size > 0);
|
||||
|
||||
/* step 1: adjust the offset */
|
||||
|
@ -115,11 +116,12 @@ static inline uint8_t ia_css_circbuf_desc_get_pos_at_offset(
|
|||
*/
|
||||
static inline int ia_css_circbuf_desc_get_offset(
|
||||
ia_css_circbuf_desc_t *cb_desc,
|
||||
uint32_t src_pos,
|
||||
u32 src_pos,
|
||||
uint32_t dest_pos)
|
||||
{
|
||||
int offset;
|
||||
OP___assert(cb_desc != NULL);
|
||||
|
||||
OP___assert(cb_desc);
|
||||
|
||||
offset = (int)(dest_pos - src_pos);
|
||||
offset += (offset < 0) ? cb_desc->size : 0;
|
||||
|
@ -138,7 +140,8 @@ static inline uint32_t ia_css_circbuf_desc_get_num_elems(
|
|||
ia_css_circbuf_desc_t *cb_desc)
|
||||
{
|
||||
int num;
|
||||
OP___assert(cb_desc != NULL);
|
||||
|
||||
OP___assert(cb_desc);
|
||||
|
||||
num = ia_css_circbuf_desc_get_offset(cb_desc,
|
||||
cb_desc->start,
|
||||
|
@ -157,8 +160,9 @@ static inline uint32_t ia_css_circbuf_desc_get_num_elems(
|
|||
static inline uint32_t ia_css_circbuf_desc_get_free_elems(
|
||||
ia_css_circbuf_desc_t *cb_desc)
|
||||
{
|
||||
uint32_t num;
|
||||
OP___assert(cb_desc != NULL);
|
||||
u32 num;
|
||||
|
||||
OP___assert(cb_desc);
|
||||
|
||||
num = ia_css_circbuf_desc_get_offset(cb_desc,
|
||||
cb_desc->start,
|
||||
|
|
|
@ -45,7 +45,7 @@ ia_css_circbuf_read(ia_css_circbuf_t *cb);
|
|||
* @param chunk_dest The position to which the first element in the chunk would be shift.
|
||||
*/
|
||||
static inline void ia_css_circbuf_shift_chunk(ia_css_circbuf_t *cb,
|
||||
uint32_t chunk_src,
|
||||
u32 chunk_src,
|
||||
uint32_t chunk_dest);
|
||||
|
||||
/*
|
||||
|
@ -72,7 +72,7 @@ ia_css_circbuf_create(ia_css_circbuf_t *cb,
|
|||
ia_css_circbuf_elem_t *elems,
|
||||
ia_css_circbuf_desc_t *desc)
|
||||
{
|
||||
uint32_t i;
|
||||
u32 i;
|
||||
|
||||
OP___assert(desc);
|
||||
|
||||
|
@ -105,7 +105,7 @@ void ia_css_circbuf_destroy(ia_css_circbuf_t *cb)
|
|||
*/
|
||||
uint32_t ia_css_circbuf_pop(ia_css_circbuf_t *cb)
|
||||
{
|
||||
uint32_t ret;
|
||||
u32 ret;
|
||||
ia_css_circbuf_elem_t elem;
|
||||
|
||||
assert(!ia_css_circbuf_is_empty(cb));
|
||||
|
@ -123,10 +123,10 @@ uint32_t ia_css_circbuf_pop(ia_css_circbuf_t *cb)
|
|||
uint32_t ia_css_circbuf_extract(ia_css_circbuf_t *cb, int offset)
|
||||
{
|
||||
int max_offset;
|
||||
uint32_t val;
|
||||
uint32_t pos;
|
||||
uint32_t src_pos;
|
||||
uint32_t dest_pos;
|
||||
u32 val;
|
||||
u32 pos;
|
||||
u32 src_pos;
|
||||
u32 dest_pos;
|
||||
|
||||
/* get the maximum offest */
|
||||
max_offset = ia_css_circbuf_get_offset(cb, cb->desc->start, cb->desc->end);
|
||||
|
@ -204,8 +204,8 @@ bool ia_css_circbuf_increase_size(
|
|||
unsigned int sz_delta,
|
||||
ia_css_circbuf_elem_t *elems)
|
||||
{
|
||||
uint8_t curr_size;
|
||||
uint8_t curr_end;
|
||||
u8 curr_size;
|
||||
u8 curr_end;
|
||||
unsigned int i = 0;
|
||||
|
||||
if (!cb || sz_delta == 0)
|
||||
|
@ -288,7 +288,7 @@ ia_css_circbuf_read(ia_css_circbuf_t *cb)
|
|||
*/
|
||||
static inline void
|
||||
ia_css_circbuf_shift_chunk(ia_css_circbuf_t *cb,
|
||||
uint32_t chunk_src, uint32_t chunk_dest)
|
||||
u32 chunk_src, uint32_t chunk_dest)
|
||||
{
|
||||
int chunk_offset;
|
||||
int chunk_sz;
|
||||
|
@ -301,7 +301,6 @@ ia_css_circbuf_shift_chunk(ia_css_circbuf_t *cb,
|
|||
|
||||
/* shift each element to its terminal position */
|
||||
for (i = 0; i < chunk_sz; i++) {
|
||||
|
||||
/* copy the element from the source to the destination */
|
||||
ia_css_circbuf_elem_cpy(&cb->elems[chunk_src],
|
||||
&cb->elems[chunk_dest]);
|
||||
|
@ -312,10 +311,8 @@ ia_css_circbuf_shift_chunk(ia_css_circbuf_t *cb,
|
|||
/* adjust the source/terminal positions */
|
||||
chunk_src = ia_css_circbuf_get_pos_at_offset(cb, chunk_src, -1);
|
||||
chunk_dest = ia_css_circbuf_get_pos_at_offset(cb, chunk_dest, -1);
|
||||
|
||||
}
|
||||
|
||||
/* adjust the index "start" */
|
||||
cb->desc->start = ia_css_circbuf_get_pos_at_offset(cb, cb->desc->start, chunk_offset);
|
||||
}
|
||||
|
||||
|
|
|
@ -26,13 +26,13 @@ typedef void (*clear_func)(hrt_vaddress ptr);
|
|||
* \param[in] size Size of the refcount list.
|
||||
* \return ia_css_err
|
||||
*/
|
||||
extern enum ia_css_err ia_css_refcount_init(uint32_t size);
|
||||
enum ia_css_err ia_css_refcount_init(uint32_t size);
|
||||
|
||||
/*! \brief Function for de-initializing refcount list
|
||||
*
|
||||
* \return None
|
||||
*/
|
||||
extern void ia_css_refcount_uninit(void);
|
||||
void ia_css_refcount_uninit(void);
|
||||
|
||||
/*! \brief Function for increasing reference by 1.
|
||||
*
|
||||
|
@ -40,7 +40,7 @@ extern void ia_css_refcount_uninit(void);
|
|||
* \param[in] ptr Data of the object (ptr).
|
||||
* \return hrt_vaddress (saved address)
|
||||
*/
|
||||
extern hrt_vaddress ia_css_refcount_increment(int32_t id, hrt_vaddress ptr);
|
||||
hrt_vaddress ia_css_refcount_increment(s32 id, hrt_vaddress ptr);
|
||||
|
||||
/*! \brief Function for decrease reference by 1.
|
||||
*
|
||||
|
@ -50,7 +50,7 @@ extern hrt_vaddress ia_css_refcount_increment(int32_t id, hrt_vaddress ptr);
|
|||
* - true, if it is successful.
|
||||
* - false, otherwise.
|
||||
*/
|
||||
extern bool ia_css_refcount_decrement(int32_t id, hrt_vaddress ptr);
|
||||
bool ia_css_refcount_decrement(s32 id, hrt_vaddress ptr);
|
||||
|
||||
/*! \brief Function to check if reference count is 1.
|
||||
*
|
||||
|
@ -59,7 +59,7 @@ extern bool ia_css_refcount_decrement(int32_t id, hrt_vaddress ptr);
|
|||
* - true, if it is successful.
|
||||
* - false, otherwise.
|
||||
*/
|
||||
extern bool ia_css_refcount_is_single(hrt_vaddress ptr);
|
||||
bool ia_css_refcount_is_single(hrt_vaddress ptr);
|
||||
|
||||
/*! \brief Function to clear reference list objects.
|
||||
*
|
||||
|
@ -68,7 +68,7 @@ extern bool ia_css_refcount_is_single(hrt_vaddress ptr);
|
|||
*
|
||||
* return None
|
||||
*/
|
||||
extern void ia_css_refcount_clear(int32_t id,
|
||||
void ia_css_refcount_clear(s32 id,
|
||||
clear_func clear_func_ptr);
|
||||
|
||||
/*! \brief Function to verify if object is valid
|
||||
|
@ -78,6 +78,6 @@ extern void ia_css_refcount_clear(int32_t id,
|
|||
* - true, if valid
|
||||
* - false, if invalid
|
||||
*/
|
||||
extern bool ia_css_refcount_is_valid(hrt_vaddress ptr);
|
||||
bool ia_css_refcount_is_valid(hrt_vaddress ptr);
|
||||
|
||||
#endif /* _IA_CSS_REFCOUNT_H_ */
|
||||
|
|
|
@ -25,13 +25,13 @@
|
|||
/* TODO: enable for other memory aswell
|
||||
now only for hrt_vaddress */
|
||||
struct ia_css_refcount_entry {
|
||||
uint32_t count;
|
||||
u32 count;
|
||||
hrt_vaddress data;
|
||||
int32_t id;
|
||||
s32 id;
|
||||
};
|
||||
|
||||
struct ia_css_refcount_list {
|
||||
uint32_t size;
|
||||
u32 size;
|
||||
struct ia_css_refcount_entry *items;
|
||||
};
|
||||
|
||||
|
@ -40,18 +40,17 @@ static struct ia_css_refcount_list myrefcount;
|
|||
static struct ia_css_refcount_entry *refcount_find_entry(hrt_vaddress ptr,
|
||||
bool firstfree)
|
||||
{
|
||||
uint32_t i;
|
||||
u32 i;
|
||||
|
||||
if (ptr == 0)
|
||||
return NULL;
|
||||
if (myrefcount.items == NULL) {
|
||||
if (!myrefcount.items) {
|
||||
ia_css_debug_dtrace(IA_CSS_DEBUG_ERROR,
|
||||
"refcount_find_entry(): Ref count not initiliazed!\n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
for (i = 0; i < myrefcount.size; i++) {
|
||||
|
||||
if ((&myrefcount.items[i])->data == 0) {
|
||||
if (firstfree) {
|
||||
/* for new entry */
|
||||
|
@ -75,7 +74,7 @@ enum ia_css_err ia_css_refcount_init(uint32_t size)
|
|||
"ia_css_refcount_init(): Size of 0 for Ref count init!\n");
|
||||
return IA_CSS_ERR_INVALID_ARGUMENTS;
|
||||
}
|
||||
if (myrefcount.items != NULL) {
|
||||
if (myrefcount.items) {
|
||||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE,
|
||||
"ia_css_refcount_init(): Ref count is already initialized\n");
|
||||
return IA_CSS_ERR_INTERNAL_ERROR;
|
||||
|
@ -95,7 +94,8 @@ enum ia_css_err ia_css_refcount_init(uint32_t size)
|
|||
void ia_css_refcount_uninit(void)
|
||||
{
|
||||
struct ia_css_refcount_entry *entry;
|
||||
uint32_t i;
|
||||
u32 i;
|
||||
|
||||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE,
|
||||
"ia_css_refcount_uninit() entry\n");
|
||||
for (i = 0; i < myrefcount.size; i++) {
|
||||
|
@ -121,7 +121,7 @@ void ia_css_refcount_uninit(void)
|
|||
"ia_css_refcount_uninit() leave\n");
|
||||
}
|
||||
|
||||
hrt_vaddress ia_css_refcount_increment(int32_t id, hrt_vaddress ptr)
|
||||
hrt_vaddress ia_css_refcount_increment(s32 id, hrt_vaddress ptr)
|
||||
{
|
||||
struct ia_css_refcount_entry *entry;
|
||||
|
||||
|
@ -135,8 +135,8 @@ hrt_vaddress ia_css_refcount_increment(int32_t id, hrt_vaddress ptr)
|
|||
|
||||
if (!entry) {
|
||||
entry = refcount_find_entry(ptr, true);
|
||||
assert(entry != NULL);
|
||||
if (entry == NULL)
|
||||
assert(entry);
|
||||
if (!entry)
|
||||
return mmgr_NULL;
|
||||
entry->id = id;
|
||||
}
|
||||
|
@ -158,7 +158,7 @@ hrt_vaddress ia_css_refcount_increment(int32_t id, hrt_vaddress ptr)
|
|||
return ptr;
|
||||
}
|
||||
|
||||
bool ia_css_refcount_decrement(int32_t id, hrt_vaddress ptr)
|
||||
bool ia_css_refcount_decrement(s32 id, hrt_vaddress ptr)
|
||||
{
|
||||
struct ia_css_refcount_entry *entry;
|
||||
|
||||
|
@ -218,13 +218,13 @@ bool ia_css_refcount_is_single(hrt_vaddress ptr)
|
|||
return true;
|
||||
}
|
||||
|
||||
void ia_css_refcount_clear(int32_t id, clear_func clear_func_ptr)
|
||||
void ia_css_refcount_clear(s32 id, clear_func clear_func_ptr)
|
||||
{
|
||||
struct ia_css_refcount_entry *entry;
|
||||
uint32_t i;
|
||||
uint32_t count = 0;
|
||||
u32 i;
|
||||
u32 count = 0;
|
||||
|
||||
assert(clear_func_ptr != NULL);
|
||||
assert(clear_func_ptr);
|
||||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE, "ia_css_refcount_clear(%x)\n",
|
||||
id);
|
||||
|
||||
|
@ -236,16 +236,14 @@ void ia_css_refcount_clear(int32_t id, clear_func clear_func_ptr)
|
|||
entry = myrefcount.items + i;
|
||||
if ((entry->data != mmgr_NULL) && (entry->id == id)) {
|
||||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE,
|
||||
"ia_css_refcount_clear:"
|
||||
" %x: 0x%x\n", id, entry->data);
|
||||
"ia_css_refcount_clear: %x: 0x%x\n",
|
||||
id, entry->data);
|
||||
if (clear_func_ptr) {
|
||||
/* clear using provided function */
|
||||
clear_func_ptr(entry->data);
|
||||
} else {
|
||||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE,
|
||||
"ia_css_refcount_clear: "
|
||||
"using hmm_free: "
|
||||
"no clear_func\n");
|
||||
"ia_css_refcount_clear: using hmm_free: no clear_func\n");
|
||||
hmm_free(entry->data);
|
||||
}
|
||||
#ifndef ISP2401
|
||||
|
@ -276,6 +274,5 @@ bool ia_css_refcount_is_valid(hrt_vaddress ptr)
|
|||
|
||||
entry = refcount_find_entry(ptr, false);
|
||||
|
||||
return entry != NULL;
|
||||
return entry;
|
||||
}
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
* @return None
|
||||
*
|
||||
*/
|
||||
extern void ia_css_pipe_get_copy_binarydesc(
|
||||
void ia_css_pipe_get_copy_binarydesc(
|
||||
struct ia_css_pipe const * const pipe,
|
||||
struct ia_css_binary_descr *copy_descr,
|
||||
struct ia_css_frame_info *in_info,
|
||||
|
@ -45,7 +45,7 @@ extern void ia_css_pipe_get_copy_binarydesc(
|
|||
* @return None
|
||||
*
|
||||
*/
|
||||
extern void ia_css_pipe_get_vfpp_binarydesc(
|
||||
void ia_css_pipe_get_vfpp_binarydesc(
|
||||
struct ia_css_pipe const * const pipe,
|
||||
struct ia_css_binary_descr *vf_pp_descr,
|
||||
struct ia_css_frame_info *in_info,
|
||||
|
@ -62,7 +62,7 @@ extern void ia_css_pipe_get_vfpp_binarydesc(
|
|||
* @return IA_CSS_SUCCESS or error code upon error.
|
||||
*
|
||||
*/
|
||||
extern enum ia_css_err sh_css_bds_factor_get_numerator_denominator(
|
||||
enum ia_css_err sh_css_bds_factor_get_numerator_denominator(
|
||||
unsigned int bds_factor,
|
||||
unsigned int *bds_factor_numerator,
|
||||
unsigned int *bds_factor_denominator);
|
||||
|
@ -78,7 +78,7 @@ extern enum ia_css_err sh_css_bds_factor_get_numerator_denominator(
|
|||
* @return IA_CSS_SUCCESS or error code upon error.
|
||||
*
|
||||
*/
|
||||
extern enum ia_css_err ia_css_pipe_get_preview_binarydesc(
|
||||
enum ia_css_err ia_css_pipe_get_preview_binarydesc(
|
||||
struct ia_css_pipe * const pipe,
|
||||
struct ia_css_binary_descr *preview_descr,
|
||||
struct ia_css_frame_info *in_info,
|
||||
|
@ -96,7 +96,7 @@ extern enum ia_css_err ia_css_pipe_get_preview_binarydesc(
|
|||
* @return IA_CSS_SUCCESS or error code upon error.
|
||||
*
|
||||
*/
|
||||
extern enum ia_css_err ia_css_pipe_get_video_binarydesc(
|
||||
enum ia_css_err ia_css_pipe_get_video_binarydesc(
|
||||
struct ia_css_pipe * const pipe,
|
||||
struct ia_css_binary_descr *video_descr,
|
||||
struct ia_css_frame_info *in_info,
|
||||
|
@ -133,7 +133,7 @@ void ia_css_pipe_get_yuvscaler_binarydesc(
|
|||
* @return None
|
||||
*
|
||||
*/
|
||||
extern void ia_css_pipe_get_capturepp_binarydesc(
|
||||
void ia_css_pipe_get_capturepp_binarydesc(
|
||||
struct ia_css_pipe * const pipe,
|
||||
struct ia_css_binary_descr *capture_pp_descr,
|
||||
struct ia_css_frame_info *in_info,
|
||||
|
@ -150,7 +150,7 @@ extern void ia_css_pipe_get_capturepp_binarydesc(
|
|||
* @return None
|
||||
*
|
||||
*/
|
||||
extern void ia_css_pipe_get_primary_binarydesc(
|
||||
void ia_css_pipe_get_primary_binarydesc(
|
||||
struct ia_css_pipe const * const pipe,
|
||||
struct ia_css_binary_descr *prim_descr,
|
||||
struct ia_css_frame_info *in_info,
|
||||
|
@ -167,7 +167,7 @@ extern void ia_css_pipe_get_primary_binarydesc(
|
|||
* @return None
|
||||
*
|
||||
*/
|
||||
extern void ia_css_pipe_get_pre_gdc_binarydesc(
|
||||
void ia_css_pipe_get_pre_gdc_binarydesc(
|
||||
struct ia_css_pipe const * const pipe,
|
||||
struct ia_css_binary_descr *gdc_descr,
|
||||
struct ia_css_frame_info *in_info,
|
||||
|
@ -182,7 +182,7 @@ extern void ia_css_pipe_get_pre_gdc_binarydesc(
|
|||
* @return None
|
||||
*
|
||||
*/
|
||||
extern void ia_css_pipe_get_gdc_binarydesc(
|
||||
void ia_css_pipe_get_gdc_binarydesc(
|
||||
struct ia_css_pipe const * const pipe,
|
||||
struct ia_css_binary_descr *gdc_descr,
|
||||
struct ia_css_frame_info *in_info,
|
||||
|
@ -198,7 +198,7 @@ extern void ia_css_pipe_get_gdc_binarydesc(
|
|||
* @return None
|
||||
*
|
||||
*/
|
||||
extern void ia_css_pipe_get_post_gdc_binarydesc(
|
||||
void ia_css_pipe_get_post_gdc_binarydesc(
|
||||
struct ia_css_pipe const * const pipe,
|
||||
struct ia_css_binary_descr *post_gdc_descr,
|
||||
struct ia_css_frame_info *in_info,
|
||||
|
@ -214,7 +214,7 @@ extern void ia_css_pipe_get_post_gdc_binarydesc(
|
|||
* @return None
|
||||
*
|
||||
*/
|
||||
extern void ia_css_pipe_get_pre_de_binarydesc(
|
||||
void ia_css_pipe_get_pre_de_binarydesc(
|
||||
struct ia_css_pipe const * const pipe,
|
||||
struct ia_css_binary_descr *pre_de_descr,
|
||||
struct ia_css_frame_info *in_info,
|
||||
|
@ -229,7 +229,7 @@ extern void ia_css_pipe_get_pre_de_binarydesc(
|
|||
* @return None
|
||||
*
|
||||
*/
|
||||
extern void ia_css_pipe_get_pre_anr_binarydesc(
|
||||
void ia_css_pipe_get_pre_anr_binarydesc(
|
||||
struct ia_css_pipe const * const pipe,
|
||||
struct ia_css_binary_descr *pre_anr_descr,
|
||||
struct ia_css_frame_info *in_info,
|
||||
|
@ -244,7 +244,7 @@ extern void ia_css_pipe_get_pre_anr_binarydesc(
|
|||
* @return None
|
||||
*
|
||||
*/
|
||||
extern void ia_css_pipe_get_anr_binarydesc(
|
||||
void ia_css_pipe_get_anr_binarydesc(
|
||||
struct ia_css_pipe const * const pipe,
|
||||
struct ia_css_binary_descr *anr_descr,
|
||||
struct ia_css_frame_info *in_info,
|
||||
|
@ -260,7 +260,7 @@ extern void ia_css_pipe_get_anr_binarydesc(
|
|||
* @return None
|
||||
*
|
||||
*/
|
||||
extern void ia_css_pipe_get_post_anr_binarydesc(
|
||||
void ia_css_pipe_get_post_anr_binarydesc(
|
||||
struct ia_css_pipe const * const pipe,
|
||||
struct ia_css_binary_descr *post_anr_descr,
|
||||
struct ia_css_frame_info *in_info,
|
||||
|
@ -276,7 +276,7 @@ extern void ia_css_pipe_get_post_anr_binarydesc(
|
|||
* @return None
|
||||
*
|
||||
*/
|
||||
extern void ia_css_pipe_get_ldc_binarydesc(
|
||||
void ia_css_pipe_get_ldc_binarydesc(
|
||||
struct ia_css_pipe const * const pipe,
|
||||
struct ia_css_binary_descr *ldc_descr,
|
||||
struct ia_css_frame_info *in_info,
|
||||
|
|
|
@ -21,14 +21,14 @@
|
|||
#include "ia_css_pipeline.h"
|
||||
#include "ia_css_pipeline_common.h"
|
||||
|
||||
extern void ia_css_pipe_get_generic_stage_desc(
|
||||
void ia_css_pipe_get_generic_stage_desc(
|
||||
struct ia_css_pipeline_stage_desc *stage_desc,
|
||||
struct ia_css_binary *binary,
|
||||
struct ia_css_frame *out_frame[],
|
||||
struct ia_css_frame *in_frame,
|
||||
struct ia_css_frame *vf_frame);
|
||||
|
||||
extern void ia_css_pipe_get_firmwares_stage_desc(
|
||||
void ia_css_pipe_get_firmwares_stage_desc(
|
||||
struct ia_css_pipeline_stage_desc *stage_desc,
|
||||
struct ia_css_binary *binary,
|
||||
struct ia_css_frame *out_frame[],
|
||||
|
@ -37,16 +37,15 @@ extern void ia_css_pipe_get_firmwares_stage_desc(
|
|||
const struct ia_css_fw_info *fw,
|
||||
unsigned int mode);
|
||||
|
||||
extern void ia_css_pipe_get_acc_stage_desc(
|
||||
void ia_css_pipe_get_acc_stage_desc(
|
||||
struct ia_css_pipeline_stage_desc *stage_desc,
|
||||
struct ia_css_binary *binary,
|
||||
struct ia_css_fw_info *fw);
|
||||
|
||||
extern void ia_css_pipe_get_sp_func_stage_desc(
|
||||
void ia_css_pipe_get_sp_func_stage_desc(
|
||||
struct ia_css_pipeline_stage_desc *stage_desc,
|
||||
struct ia_css_frame *out_frame,
|
||||
enum ia_css_pipeline_stage_sp_func sp_func,
|
||||
unsigned max_input_width);
|
||||
unsigned int max_input_width);
|
||||
|
||||
#endif /*__IA_CSS_PIPE_STAGEDESC__H__ */
|
||||
|
||||
|
|
|
@ -25,13 +25,13 @@
|
|||
* @return bits per pixel for the underlying stream
|
||||
*
|
||||
*/
|
||||
extern unsigned int ia_css_pipe_util_pipe_input_format_bpp(
|
||||
unsigned int ia_css_pipe_util_pipe_input_format_bpp(
|
||||
const struct ia_css_pipe * const pipe);
|
||||
|
||||
extern void ia_css_pipe_util_create_output_frames(
|
||||
void ia_css_pipe_util_create_output_frames(
|
||||
struct ia_css_frame *frames[]);
|
||||
|
||||
extern void ia_css_pipe_util_set_output_frames(
|
||||
void ia_css_pipe_util_set_output_frames(
|
||||
struct ia_css_frame *frames[],
|
||||
unsigned int idx,
|
||||
struct ia_css_frame *frame);
|
||||
|
|
|
@ -40,8 +40,8 @@ static void pipe_binarydesc_get_offline(
|
|||
{
|
||||
unsigned int i;
|
||||
/* in_info, out_info, vf_info can be NULL */
|
||||
assert(pipe != NULL);
|
||||
assert(descr != NULL);
|
||||
assert(pipe);
|
||||
assert(descr);
|
||||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE,
|
||||
"pipe_binarydesc_get_offline() enter:\n");
|
||||
|
||||
|
@ -86,8 +86,8 @@ void ia_css_pipe_get_copy_binarydesc(
|
|||
struct ia_css_frame_info *out_infos[IA_CSS_BINARY_MAX_OUTPUT_PORTS];
|
||||
unsigned int i;
|
||||
/* out_info can be NULL */
|
||||
assert(pipe != NULL);
|
||||
assert(in_info != NULL);
|
||||
assert(pipe);
|
||||
assert(in_info);
|
||||
IA_CSS_ENTER_PRIVATE("");
|
||||
|
||||
*in_info = *out_info;
|
||||
|
@ -103,6 +103,7 @@ void ia_css_pipe_get_copy_binarydesc(
|
|||
copy_descr->isp_pipe_version = IA_CSS_PIPE_VERSION_1;
|
||||
IA_CSS_LEAVE_PRIVATE("");
|
||||
}
|
||||
|
||||
void ia_css_pipe_get_vfpp_binarydesc(
|
||||
struct ia_css_pipe const * const pipe,
|
||||
struct ia_css_binary_descr *vf_pp_descr,
|
||||
|
@ -112,8 +113,8 @@ void ia_css_pipe_get_vfpp_binarydesc(
|
|||
struct ia_css_frame_info *out_infos[IA_CSS_BINARY_MAX_OUTPUT_PORTS];
|
||||
unsigned int i;
|
||||
/* out_info can be NULL ??? */
|
||||
assert(pipe != NULL);
|
||||
assert(in_info != NULL);
|
||||
assert(pipe);
|
||||
assert(in_info);
|
||||
IA_CSS_ENTER_PRIVATE("");
|
||||
|
||||
in_info->raw_bit_depth = 0;
|
||||
|
@ -184,8 +185,8 @@ enum ia_css_err binarydesc_calculate_bds_factor(
|
|||
|
||||
/* Loop over all bds factors until a match is found */
|
||||
for (i = 0; i < ARRAY_SIZE(bds_factors_list); i++) {
|
||||
unsigned num = bds_factors_list[i].numerator;
|
||||
unsigned den = bds_factors_list[i].denominator;
|
||||
unsigned int num = bds_factors_list[i].numerator;
|
||||
unsigned int den = bds_factors_list[i].denominator;
|
||||
|
||||
/* See width-wise and height-wise if this bds_factor
|
||||
* satisfies the condition */
|
||||
|
@ -217,10 +218,10 @@ enum ia_css_err ia_css_pipe_get_preview_binarydesc(
|
|||
int mode = IA_CSS_BINARY_MODE_PREVIEW;
|
||||
unsigned int i;
|
||||
|
||||
assert(pipe != NULL);
|
||||
assert(in_info != NULL);
|
||||
assert(out_info != NULL);
|
||||
assert(vf_info != NULL);
|
||||
assert(pipe);
|
||||
assert(in_info);
|
||||
assert(out_info);
|
||||
assert(vf_info);
|
||||
IA_CSS_ENTER_PRIVATE("");
|
||||
|
||||
/*
|
||||
|
@ -339,8 +340,8 @@ enum ia_css_err ia_css_pipe_get_video_binarydesc(
|
|||
bool stream_dz_config = false;
|
||||
|
||||
/* vf_info can be NULL */
|
||||
assert(pipe != NULL);
|
||||
assert(in_info != NULL);
|
||||
assert(pipe);
|
||||
assert(in_info);
|
||||
/* assert(vf_info != NULL); */
|
||||
IA_CSS_ENTER_PRIVATE("");
|
||||
|
||||
|
@ -459,8 +460,8 @@ void ia_css_pipe_get_yuvscaler_binarydesc(
|
|||
struct ia_css_frame_info *out_infos[IA_CSS_BINARY_MAX_OUTPUT_PORTS];
|
||||
struct ia_css_frame_info *this_vf_info = NULL;
|
||||
|
||||
assert(pipe != NULL);
|
||||
assert(in_info != NULL);
|
||||
assert(pipe);
|
||||
assert(in_info);
|
||||
/* Note: if the following assert fails, the number of ports has been
|
||||
* changed; in that case an additional initializer must be added
|
||||
* a few lines below after which this assert can be updated.
|
||||
|
@ -502,12 +503,11 @@ void ia_css_pipe_get_capturepp_binarydesc(
|
|||
unsigned int i;
|
||||
struct ia_css_frame_info *out_infos[IA_CSS_BINARY_MAX_OUTPUT_PORTS];
|
||||
|
||||
assert(pipe != NULL);
|
||||
assert(in_info != NULL);
|
||||
assert(vf_info != NULL);
|
||||
assert(pipe);
|
||||
assert(in_info);
|
||||
assert(vf_info);
|
||||
IA_CSS_ENTER_PRIVATE("");
|
||||
|
||||
|
||||
/* the in_info is only used for resolution to enable
|
||||
bayer down scaling. */
|
||||
if (pipe->out_yuv_ds_input_info.res.width)
|
||||
|
@ -536,8 +536,7 @@ void ia_css_pipe_get_capturepp_binarydesc(
|
|||
}
|
||||
|
||||
/* lookup table for high quality primary binaries */
|
||||
static unsigned int primary_hq_binary_modes[NUM_PRIMARY_HQ_STAGES] =
|
||||
{
|
||||
static unsigned int primary_hq_binary_modes[NUM_PRIMARY_HQ_STAGES] = {
|
||||
IA_CSS_BINARY_MODE_PRIMARY_HQ_STAGE0,
|
||||
IA_CSS_BINARY_MODE_PRIMARY_HQ_STAGE1,
|
||||
IA_CSS_BINARY_MODE_PRIMARY_HQ_STAGE2,
|
||||
|
@ -559,9 +558,9 @@ void ia_css_pipe_get_primary_binarydesc(
|
|||
unsigned int i;
|
||||
struct ia_css_frame_info *out_infos[IA_CSS_BINARY_MAX_OUTPUT_PORTS];
|
||||
|
||||
assert(pipe != NULL);
|
||||
assert(in_info != NULL);
|
||||
assert(out_info != NULL);
|
||||
assert(pipe);
|
||||
assert(in_info);
|
||||
assert(out_info);
|
||||
assert(stage_idx < NUM_PRIMARY_HQ_STAGES);
|
||||
/* vf_info can be NULL - example video_binarydescr */
|
||||
/*assert(vf_info != NULL);*/
|
||||
|
@ -637,9 +636,9 @@ void ia_css_pipe_get_pre_gdc_binarydesc(
|
|||
unsigned int i;
|
||||
struct ia_css_frame_info *out_infos[IA_CSS_BINARY_MAX_OUTPUT_PORTS];
|
||||
|
||||
assert(pipe != NULL);
|
||||
assert(in_info != NULL);
|
||||
assert(out_info != NULL);
|
||||
assert(pipe);
|
||||
assert(in_info);
|
||||
assert(out_info);
|
||||
IA_CSS_ENTER_PRIVATE("");
|
||||
|
||||
*in_info = *out_info;
|
||||
|
@ -664,9 +663,9 @@ void ia_css_pipe_get_gdc_binarydesc(
|
|||
unsigned int i;
|
||||
struct ia_css_frame_info *out_infos[IA_CSS_BINARY_MAX_OUTPUT_PORTS];
|
||||
|
||||
assert(pipe != NULL);
|
||||
assert(in_info != NULL);
|
||||
assert(out_info != NULL);
|
||||
assert(pipe);
|
||||
assert(in_info);
|
||||
assert(out_info);
|
||||
IA_CSS_ENTER_PRIVATE("");
|
||||
|
||||
*in_info = *out_info;
|
||||
|
@ -690,10 +689,10 @@ void ia_css_pipe_get_post_gdc_binarydesc(
|
|||
unsigned int i;
|
||||
struct ia_css_frame_info *out_infos[IA_CSS_BINARY_MAX_OUTPUT_PORTS];
|
||||
|
||||
assert(pipe != NULL);
|
||||
assert(in_info != NULL);
|
||||
assert(out_info != NULL);
|
||||
assert(vf_info != NULL);
|
||||
assert(pipe);
|
||||
assert(in_info);
|
||||
assert(out_info);
|
||||
assert(vf_info);
|
||||
IA_CSS_ENTER_PRIVATE("");
|
||||
|
||||
*in_info = *out_info;
|
||||
|
@ -719,9 +718,9 @@ void ia_css_pipe_get_pre_de_binarydesc(
|
|||
unsigned int i;
|
||||
struct ia_css_frame_info *out_infos[IA_CSS_BINARY_MAX_OUTPUT_PORTS];
|
||||
|
||||
assert(pipe != NULL);
|
||||
assert(in_info != NULL);
|
||||
assert(out_info != NULL);
|
||||
assert(pipe);
|
||||
assert(in_info);
|
||||
assert(out_info);
|
||||
IA_CSS_ENTER_PRIVATE("");
|
||||
|
||||
*in_info = *out_info;
|
||||
|
@ -758,9 +757,9 @@ void ia_css_pipe_get_pre_anr_binarydesc(
|
|||
unsigned int i;
|
||||
struct ia_css_frame_info *out_infos[IA_CSS_BINARY_MAX_OUTPUT_PORTS];
|
||||
|
||||
assert(pipe != NULL);
|
||||
assert(in_info != NULL);
|
||||
assert(out_info != NULL);
|
||||
assert(pipe);
|
||||
assert(in_info);
|
||||
assert(out_info);
|
||||
IA_CSS_ENTER_PRIVATE("");
|
||||
|
||||
*in_info = *out_info;
|
||||
|
@ -792,9 +791,9 @@ void ia_css_pipe_get_anr_binarydesc(
|
|||
unsigned int i;
|
||||
struct ia_css_frame_info *out_infos[IA_CSS_BINARY_MAX_OUTPUT_PORTS];
|
||||
|
||||
assert(pipe != NULL);
|
||||
assert(in_info != NULL);
|
||||
assert(out_info != NULL);
|
||||
assert(pipe);
|
||||
assert(in_info);
|
||||
assert(out_info);
|
||||
IA_CSS_ENTER_PRIVATE("");
|
||||
|
||||
*in_info = *out_info;
|
||||
|
@ -811,7 +810,6 @@ void ia_css_pipe_get_anr_binarydesc(
|
|||
IA_CSS_LEAVE_PRIVATE("");
|
||||
}
|
||||
|
||||
|
||||
void ia_css_pipe_get_post_anr_binarydesc(
|
||||
struct ia_css_pipe const * const pipe,
|
||||
struct ia_css_binary_descr *post_anr_descr,
|
||||
|
@ -822,10 +820,10 @@ void ia_css_pipe_get_post_anr_binarydesc(
|
|||
unsigned int i;
|
||||
struct ia_css_frame_info *out_infos[IA_CSS_BINARY_MAX_OUTPUT_PORTS];
|
||||
|
||||
assert(pipe != NULL);
|
||||
assert(in_info != NULL);
|
||||
assert(out_info != NULL);
|
||||
assert(vf_info != NULL);
|
||||
assert(pipe);
|
||||
assert(in_info);
|
||||
assert(out_info);
|
||||
assert(vf_info);
|
||||
IA_CSS_ENTER_PRIVATE("");
|
||||
|
||||
*in_info = *out_info;
|
||||
|
@ -851,9 +849,9 @@ void ia_css_pipe_get_ldc_binarydesc(
|
|||
unsigned int i;
|
||||
struct ia_css_frame_info *out_infos[IA_CSS_BINARY_MAX_OUTPUT_PORTS];
|
||||
|
||||
assert(pipe != NULL);
|
||||
assert(in_info != NULL);
|
||||
assert(out_info != NULL);
|
||||
assert(pipe);
|
||||
assert(in_info);
|
||||
assert(out_info);
|
||||
IA_CSS_ENTER_PRIVATE("");
|
||||
|
||||
#ifndef ISP2401
|
||||
|
|
|
@ -24,11 +24,12 @@ void ia_css_pipe_get_generic_stage_desc(
|
|||
struct ia_css_frame *vf_frame)
|
||||
{
|
||||
unsigned int i;
|
||||
|
||||
IA_CSS_ENTER_PRIVATE("stage_desc = %p, binary = %p, out_frame = %p, in_frame = %p, vf_frame = %p",
|
||||
stage_desc, binary, out_frame, in_frame, vf_frame);
|
||||
|
||||
assert(stage_desc != NULL && binary != NULL && binary->info != NULL);
|
||||
if (stage_desc == NULL || binary == NULL || binary->info == NULL) {
|
||||
assert(stage_desc && binary && binary->info);
|
||||
if (!stage_desc || !binary || !binary->info) {
|
||||
IA_CSS_ERROR("invalid arguments");
|
||||
goto ERR;
|
||||
}
|
||||
|
@ -95,7 +96,7 @@ void ia_css_pipe_get_sp_func_stage_desc(
|
|||
struct ia_css_pipeline_stage_desc *stage_desc,
|
||||
struct ia_css_frame *out_frame,
|
||||
enum ia_css_pipeline_stage_sp_func sp_func,
|
||||
unsigned max_input_width)
|
||||
unsigned int max_input_width)
|
||||
{
|
||||
unsigned int i;
|
||||
|
||||
|
@ -112,4 +113,3 @@ void ia_css_pipe_get_sp_func_stage_desc(
|
|||
}
|
||||
stage_desc->vf_frame = NULL;
|
||||
}
|
||||
|
||||
|
|
|
@ -21,8 +21,8 @@
|
|||
unsigned int ia_css_pipe_util_pipe_input_format_bpp(
|
||||
const struct ia_css_pipe * const pipe)
|
||||
{
|
||||
assert(pipe != NULL);
|
||||
assert(pipe->stream != NULL);
|
||||
assert(pipe);
|
||||
assert(pipe->stream);
|
||||
|
||||
return ia_css_util_input_format_bpp(pipe->stream->config.input_config.format,
|
||||
pipe->stream->config.pixels_per_clock == 2);
|
||||
|
@ -33,7 +33,7 @@ void ia_css_pipe_util_create_output_frames(
|
|||
{
|
||||
unsigned int i;
|
||||
|
||||
assert(frames != NULL);
|
||||
assert(frames);
|
||||
for (i = 0; i < IA_CSS_BINARY_MAX_OUTPUT_PORTS; i++) {
|
||||
frames[i] = NULL;
|
||||
}
|
||||
|
@ -48,4 +48,3 @@ void ia_css_pipe_util_set_output_frames(
|
|||
|
||||
frames[idx] = frame;
|
||||
}
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ enum ia_css_err ia_css_convert_errno(
|
|||
* @return IA_CSS_SUCCESS or error code upon error.
|
||||
*
|
||||
*/
|
||||
extern enum ia_css_err ia_css_util_check_vf_info(
|
||||
enum ia_css_err ia_css_util_check_vf_info(
|
||||
const struct ia_css_frame_info * const info);
|
||||
|
||||
/* @brief check input configuration.
|
||||
|
@ -47,7 +47,7 @@ extern enum ia_css_err ia_css_util_check_vf_info(
|
|||
* @return IA_CSS_SUCCESS or error code upon error.
|
||||
*
|
||||
*/
|
||||
extern enum ia_css_err ia_css_util_check_input(
|
||||
enum ia_css_err ia_css_util_check_input(
|
||||
const struct ia_css_stream_config * const stream_config,
|
||||
bool must_be_raw,
|
||||
bool must_be_yuv);
|
||||
|
@ -59,7 +59,7 @@ extern enum ia_css_err ia_css_util_check_input(
|
|||
* @return IA_CSS_SUCCESS or error code upon error.
|
||||
*
|
||||
*/
|
||||
extern enum ia_css_err ia_css_util_check_vf_out_info(
|
||||
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);
|
||||
|
||||
|
@ -70,7 +70,7 @@ extern enum ia_css_err ia_css_util_check_vf_out_info(
|
|||
* @return IA_CSS_SUCCESS or error code upon error.
|
||||
*
|
||||
*/
|
||||
extern enum ia_css_err ia_css_util_check_res(
|
||||
enum ia_css_err ia_css_util_check_res(
|
||||
unsigned int width,
|
||||
unsigned int height);
|
||||
|
||||
|
@ -83,7 +83,7 @@ extern enum ia_css_err ia_css_util_check_res(
|
|||
* equal than those of b, false otherwise
|
||||
*
|
||||
*/
|
||||
extern bool ia_css_util_res_leq(
|
||||
bool ia_css_util_res_leq(
|
||||
struct ia_css_resolution a,
|
||||
struct ia_css_resolution b);
|
||||
|
||||
|
@ -94,7 +94,7 @@ extern bool ia_css_util_res_leq(
|
|||
*
|
||||
* @returns true if resolution is zero
|
||||
*/
|
||||
extern bool ia_css_util_resolution_is_zero(
|
||||
bool ia_css_util_resolution_is_zero(
|
||||
const struct ia_css_resolution resolution);
|
||||
|
||||
/**
|
||||
|
@ -104,7 +104,7 @@ extern bool ia_css_util_resolution_is_zero(
|
|||
*
|
||||
* @returns true if resolution is even
|
||||
*/
|
||||
extern bool ia_css_util_resolution_is_even(
|
||||
bool ia_css_util_resolution_is_even(
|
||||
const struct ia_css_resolution resolution);
|
||||
|
||||
#endif
|
||||
|
@ -115,7 +115,7 @@ extern bool ia_css_util_resolution_is_even(
|
|||
* @return bits per pixel based on given parameters.
|
||||
*
|
||||
*/
|
||||
extern unsigned int ia_css_util_input_format_bpp(
|
||||
unsigned int ia_css_util_input_format_bpp(
|
||||
enum atomisp_input_format stream_format,
|
||||
bool two_ppc);
|
||||
|
||||
|
@ -125,7 +125,7 @@ extern unsigned int ia_css_util_input_format_bpp(
|
|||
* @return true if the input format is raw or false otherwise
|
||||
*
|
||||
*/
|
||||
extern bool ia_css_util_is_input_format_raw(
|
||||
bool ia_css_util_is_input_format_raw(
|
||||
enum atomisp_input_format stream_format);
|
||||
|
||||
/* @brief check if input format it yuv
|
||||
|
@ -134,8 +134,7 @@ extern bool ia_css_util_is_input_format_raw(
|
|||
* @return true if the input format is yuv or false otherwise
|
||||
*
|
||||
*/
|
||||
extern bool ia_css_util_is_input_format_yuv(
|
||||
bool ia_css_util_is_input_format_yuv(
|
||||
enum atomisp_input_format stream_format);
|
||||
|
||||
#endif /* __IA_CSS_UTIL_H__ */
|
||||
|
||||
|
|
|
@ -20,7 +20,6 @@
|
|||
/* for ia_css_binary_max_vf_width() */
|
||||
#include "ia_css_binary.h"
|
||||
|
||||
|
||||
enum ia_css_err ia_css_convert_errno(
|
||||
int in_err)
|
||||
{
|
||||
|
@ -56,6 +55,7 @@ unsigned int ia_css_util_input_format_bpp(
|
|||
bool two_ppc)
|
||||
{
|
||||
unsigned int rval = 0;
|
||||
|
||||
switch (format) {
|
||||
case ATOMISP_INPUT_FORMAT_YUV420_8_LEGACY:
|
||||
case ATOMISP_INPUT_FORMAT_YUV420_8:
|
||||
|
@ -109,7 +109,6 @@ unsigned int ia_css_util_input_format_bpp(
|
|||
default:
|
||||
rval = 0;
|
||||
break;
|
||||
|
||||
}
|
||||
return rval;
|
||||
}
|
||||
|
@ -119,12 +118,13 @@ enum ia_css_err ia_css_util_check_vf_info(
|
|||
{
|
||||
enum ia_css_err err;
|
||||
unsigned int max_vf_width;
|
||||
assert(info != NULL);
|
||||
|
||||
assert(info);
|
||||
err = ia_css_frame_check_info(info);
|
||||
if (err != IA_CSS_SUCCESS)
|
||||
return err;
|
||||
max_vf_width = ia_css_binary_max_vf_width();
|
||||
if (max_vf_width != 0 && info->res.width > max_vf_width*2)
|
||||
if (max_vf_width != 0 && info->res.width > max_vf_width * 2)
|
||||
return IA_CSS_ERR_INVALID_ARGUMENTS;
|
||||
return IA_CSS_SUCCESS;
|
||||
}
|
||||
|
@ -135,8 +135,8 @@ enum ia_css_err ia_css_util_check_vf_out_info(
|
|||
{
|
||||
enum ia_css_err err;
|
||||
|
||||
assert(out_info != NULL);
|
||||
assert(vf_info != NULL);
|
||||
assert(out_info);
|
||||
assert(vf_info);
|
||||
|
||||
err = ia_css_frame_check_info(out_info);
|
||||
if (err != IA_CSS_SUCCESS)
|
||||
|
@ -204,9 +204,9 @@ enum ia_css_err ia_css_util_check_input(
|
|||
bool must_be_raw,
|
||||
bool must_be_yuv)
|
||||
{
|
||||
assert(stream_config != NULL);
|
||||
assert(stream_config);
|
||||
|
||||
if (stream_config == NULL)
|
||||
if (!stream_config)
|
||||
return IA_CSS_ERR_INVALID_ARGUMENTS;
|
||||
|
||||
#ifdef IS_ISP_2400_SYSTEM
|
||||
|
@ -224,4 +224,3 @@ enum ia_css_err ia_css_util_check_input(
|
|||
|
||||
return IA_CSS_SUCCESS;
|
||||
}
|
||||
|
||||
|
|
|
@ -30,8 +30,9 @@ ia_css_configure_iterator(
|
|||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_configure_iterator() enter:\n");
|
||||
|
||||
{
|
||||
unsigned offset = 0;
|
||||
unsigned size = 0;
|
||||
unsigned int offset = 0;
|
||||
unsigned int size = 0;
|
||||
|
||||
if (binary->info->mem_offsets.offsets.config) {
|
||||
size = binary->info->mem_offsets.offsets.config->dmem.iterator.size;
|
||||
offset = binary->info->mem_offsets.offsets.config->dmem.iterator.offset;
|
||||
|
@ -54,8 +55,9 @@ ia_css_configure_copy_output(
|
|||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_configure_copy_output() enter:\n");
|
||||
|
||||
{
|
||||
unsigned offset = 0;
|
||||
unsigned size = 0;
|
||||
unsigned int offset = 0;
|
||||
unsigned int size = 0;
|
||||
|
||||
if (binary->info->mem_offsets.offsets.config) {
|
||||
size = binary->info->mem_offsets.offsets.config->dmem.copy_output.size;
|
||||
offset = binary->info->mem_offsets.offsets.config->dmem.copy_output.offset;
|
||||
|
@ -78,8 +80,9 @@ ia_css_configure_crop(
|
|||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_configure_crop() enter:\n");
|
||||
|
||||
{
|
||||
unsigned offset = 0;
|
||||
unsigned size = 0;
|
||||
unsigned int offset = 0;
|
||||
unsigned int size = 0;
|
||||
|
||||
if (binary->info->mem_offsets.offsets.config) {
|
||||
size = binary->info->mem_offsets.offsets.config->dmem.crop.size;
|
||||
offset = binary->info->mem_offsets.offsets.config->dmem.crop.offset;
|
||||
|
@ -102,8 +105,9 @@ ia_css_configure_fpn(
|
|||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_configure_fpn() enter:\n");
|
||||
|
||||
{
|
||||
unsigned offset = 0;
|
||||
unsigned size = 0;
|
||||
unsigned int offset = 0;
|
||||
unsigned int size = 0;
|
||||
|
||||
if (binary->info->mem_offsets.offsets.config) {
|
||||
size = binary->info->mem_offsets.offsets.config->dmem.fpn.size;
|
||||
offset = binary->info->mem_offsets.offsets.config->dmem.fpn.offset;
|
||||
|
@ -126,8 +130,9 @@ ia_css_configure_dvs(
|
|||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_configure_dvs() enter:\n");
|
||||
|
||||
{
|
||||
unsigned offset = 0;
|
||||
unsigned size = 0;
|
||||
unsigned int offset = 0;
|
||||
unsigned int size = 0;
|
||||
|
||||
if (binary->info->mem_offsets.offsets.config) {
|
||||
size = binary->info->mem_offsets.offsets.config->dmem.dvs.size;
|
||||
offset = binary->info->mem_offsets.offsets.config->dmem.dvs.offset;
|
||||
|
@ -150,8 +155,9 @@ ia_css_configure_qplane(
|
|||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_configure_qplane() enter:\n");
|
||||
|
||||
{
|
||||
unsigned offset = 0;
|
||||
unsigned size = 0;
|
||||
unsigned int offset = 0;
|
||||
unsigned int size = 0;
|
||||
|
||||
if (binary->info->mem_offsets.offsets.config) {
|
||||
size = binary->info->mem_offsets.offsets.config->dmem.qplane.size;
|
||||
offset = binary->info->mem_offsets.offsets.config->dmem.qplane.offset;
|
||||
|
@ -174,8 +180,9 @@ ia_css_configure_output0(
|
|||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_configure_output0() enter:\n");
|
||||
|
||||
{
|
||||
unsigned offset = 0;
|
||||
unsigned size = 0;
|
||||
unsigned int offset = 0;
|
||||
unsigned int size = 0;
|
||||
|
||||
if (binary->info->mem_offsets.offsets.config) {
|
||||
size = binary->info->mem_offsets.offsets.config->dmem.output0.size;
|
||||
offset = binary->info->mem_offsets.offsets.config->dmem.output0.offset;
|
||||
|
@ -198,8 +205,9 @@ ia_css_configure_output1(
|
|||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_configure_output1() enter:\n");
|
||||
|
||||
{
|
||||
unsigned offset = 0;
|
||||
unsigned size = 0;
|
||||
unsigned int offset = 0;
|
||||
unsigned int size = 0;
|
||||
|
||||
if (binary->info->mem_offsets.offsets.config) {
|
||||
size = binary->info->mem_offsets.offsets.config->dmem.output1.size;
|
||||
offset = binary->info->mem_offsets.offsets.config->dmem.output1.offset;
|
||||
|
@ -222,8 +230,9 @@ ia_css_configure_output(
|
|||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_configure_output() enter:\n");
|
||||
|
||||
{
|
||||
unsigned offset = 0;
|
||||
unsigned size = 0;
|
||||
unsigned int offset = 0;
|
||||
unsigned int size = 0;
|
||||
|
||||
if (binary->info->mem_offsets.offsets.config) {
|
||||
size = binary->info->mem_offsets.offsets.config->dmem.output.size;
|
||||
offset = binary->info->mem_offsets.offsets.config->dmem.output.offset;
|
||||
|
@ -247,8 +256,9 @@ ia_css_configure_sc(
|
|||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_configure_sc() enter:\n");
|
||||
|
||||
{
|
||||
unsigned offset = 0;
|
||||
unsigned size = 0;
|
||||
unsigned int offset = 0;
|
||||
unsigned int size = 0;
|
||||
|
||||
if (binary->info->mem_offsets.offsets.config) {
|
||||
size = binary->info->mem_offsets.offsets.config->dmem.sc.size;
|
||||
offset = binary->info->mem_offsets.offsets.config->dmem.sc.offset;
|
||||
|
@ -272,8 +282,9 @@ ia_css_configure_raw(
|
|||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_configure_raw() enter:\n");
|
||||
|
||||
{
|
||||
unsigned offset = 0;
|
||||
unsigned size = 0;
|
||||
unsigned int offset = 0;
|
||||
unsigned int size = 0;
|
||||
|
||||
if (binary->info->mem_offsets.offsets.config) {
|
||||
size = binary->info->mem_offsets.offsets.config->dmem.raw.size;
|
||||
offset = binary->info->mem_offsets.offsets.config->dmem.raw.offset;
|
||||
|
@ -296,8 +307,9 @@ ia_css_configure_tnr(
|
|||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_configure_tnr() enter:\n");
|
||||
|
||||
{
|
||||
unsigned offset = 0;
|
||||
unsigned size = 0;
|
||||
unsigned int offset = 0;
|
||||
unsigned int size = 0;
|
||||
|
||||
if (binary->info->mem_offsets.offsets.config) {
|
||||
size = binary->info->mem_offsets.offsets.config->dmem.tnr.size;
|
||||
offset = binary->info->mem_offsets.offsets.config->dmem.tnr.offset;
|
||||
|
@ -320,8 +332,9 @@ ia_css_configure_ref(
|
|||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_configure_ref() enter:\n");
|
||||
|
||||
{
|
||||
unsigned offset = 0;
|
||||
unsigned size = 0;
|
||||
unsigned int offset = 0;
|
||||
unsigned int size = 0;
|
||||
|
||||
if (binary->info->mem_offsets.offsets.config) {
|
||||
size = binary->info->mem_offsets.offsets.config->dmem.ref.size;
|
||||
offset = binary->info->mem_offsets.offsets.config->dmem.ref.offset;
|
||||
|
@ -344,8 +357,9 @@ ia_css_configure_vf(
|
|||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_configure_vf() enter:\n");
|
||||
|
||||
{
|
||||
unsigned offset = 0;
|
||||
unsigned size = 0;
|
||||
unsigned int offset = 0;
|
||||
unsigned int size = 0;
|
||||
|
||||
if (binary->info->mem_offsets.offsets.config) {
|
||||
size = binary->info->mem_offsets.offsets.config->dmem.vf.size;
|
||||
offset = binary->info->mem_offsets.offsets.config->dmem.vf.offset;
|
||||
|
@ -357,4 +371,3 @@ ia_css_configure_vf(
|
|||
}
|
||||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_configure_vf() leave:\n");
|
||||
}
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -149,8 +149,8 @@ struct ia_css_memory_offsets {
|
|||
|
||||
struct ia_css_pipeline_stage; /* forward declaration */
|
||||
|
||||
extern void (* ia_css_kernel_process_param[IA_CSS_NUM_PARAMETER_IDS])(
|
||||
unsigned pipe_id,
|
||||
extern void (*ia_css_kernel_process_param[IA_CSS_NUM_PARAMETER_IDS])(
|
||||
unsigned int pipe_id,
|
||||
const struct ia_css_pipeline_stage *stage,
|
||||
struct ia_css_isp_parameters *params);
|
||||
|
||||
|
|
|
@ -27,13 +27,12 @@ ia_css_initialize_aa_state(
|
|||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_initialize_aa_state() enter:\n");
|
||||
|
||||
{
|
||||
unsigned size = binary->info->mem_offsets.offsets.state->vmem.aa.size;
|
||||
unsigned int size = binary->info->mem_offsets.offsets.state->vmem.aa.size;
|
||||
|
||||
unsigned offset = binary->info->mem_offsets.offsets.state->vmem.aa.offset;
|
||||
unsigned int offset = binary->info->mem_offsets.offsets.state->vmem.aa.offset;
|
||||
|
||||
if (size)
|
||||
memset(&binary->mem_params.params[IA_CSS_PARAM_CLASS_STATE][IA_CSS_ISP_VMEM].address[offset], 0, size);
|
||||
|
||||
}
|
||||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_initialize_aa_state() leave:\n");
|
||||
}
|
||||
|
@ -47,16 +46,15 @@ ia_css_initialize_cnr_state(
|
|||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_initialize_cnr_state() enter:\n");
|
||||
|
||||
{
|
||||
unsigned size = binary->info->mem_offsets.offsets.state->vmem.cnr.size;
|
||||
unsigned int size = binary->info->mem_offsets.offsets.state->vmem.cnr.size;
|
||||
|
||||
unsigned offset = binary->info->mem_offsets.offsets.state->vmem.cnr.offset;
|
||||
unsigned int offset = binary->info->mem_offsets.offsets.state->vmem.cnr.offset;
|
||||
|
||||
if (size) {
|
||||
ia_css_init_cnr_state(
|
||||
&binary->mem_params.params[IA_CSS_PARAM_CLASS_STATE][IA_CSS_ISP_VMEM].address[offset],
|
||||
size);
|
||||
}
|
||||
|
||||
}
|
||||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_initialize_cnr_state() leave:\n");
|
||||
}
|
||||
|
@ -70,16 +68,15 @@ ia_css_initialize_cnr2_state(
|
|||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_initialize_cnr2_state() enter:\n");
|
||||
|
||||
{
|
||||
unsigned size = binary->info->mem_offsets.offsets.state->vmem.cnr2.size;
|
||||
unsigned int size = binary->info->mem_offsets.offsets.state->vmem.cnr2.size;
|
||||
|
||||
unsigned offset = binary->info->mem_offsets.offsets.state->vmem.cnr2.offset;
|
||||
unsigned int offset = binary->info->mem_offsets.offsets.state->vmem.cnr2.offset;
|
||||
|
||||
if (size) {
|
||||
ia_css_init_cnr2_state(
|
||||
&binary->mem_params.params[IA_CSS_PARAM_CLASS_STATE][IA_CSS_ISP_VMEM].address[offset],
|
||||
size);
|
||||
}
|
||||
|
||||
}
|
||||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_initialize_cnr2_state() leave:\n");
|
||||
}
|
||||
|
@ -93,16 +90,15 @@ ia_css_initialize_dp_state(
|
|||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_initialize_dp_state() enter:\n");
|
||||
|
||||
{
|
||||
unsigned size = binary->info->mem_offsets.offsets.state->vmem.dp.size;
|
||||
unsigned int size = binary->info->mem_offsets.offsets.state->vmem.dp.size;
|
||||
|
||||
unsigned offset = binary->info->mem_offsets.offsets.state->vmem.dp.offset;
|
||||
unsigned int offset = binary->info->mem_offsets.offsets.state->vmem.dp.offset;
|
||||
|
||||
if (size) {
|
||||
ia_css_init_dp_state(
|
||||
&binary->mem_params.params[IA_CSS_PARAM_CLASS_STATE][IA_CSS_ISP_VMEM].address[offset],
|
||||
size);
|
||||
}
|
||||
|
||||
}
|
||||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_initialize_dp_state() leave:\n");
|
||||
}
|
||||
|
@ -116,16 +112,15 @@ ia_css_initialize_de_state(
|
|||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_initialize_de_state() enter:\n");
|
||||
|
||||
{
|
||||
unsigned size = binary->info->mem_offsets.offsets.state->vmem.de.size;
|
||||
unsigned int size = binary->info->mem_offsets.offsets.state->vmem.de.size;
|
||||
|
||||
unsigned offset = binary->info->mem_offsets.offsets.state->vmem.de.offset;
|
||||
unsigned int offset = binary->info->mem_offsets.offsets.state->vmem.de.offset;
|
||||
|
||||
if (size) {
|
||||
ia_css_init_de_state(
|
||||
&binary->mem_params.params[IA_CSS_PARAM_CLASS_STATE][IA_CSS_ISP_VMEM].address[offset],
|
||||
size);
|
||||
}
|
||||
|
||||
}
|
||||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_initialize_de_state() leave:\n");
|
||||
}
|
||||
|
@ -139,16 +134,15 @@ ia_css_initialize_tnr_state(
|
|||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_initialize_tnr_state() enter:\n");
|
||||
|
||||
{
|
||||
unsigned size = binary->info->mem_offsets.offsets.state->dmem.tnr.size;
|
||||
unsigned int size = binary->info->mem_offsets.offsets.state->dmem.tnr.size;
|
||||
|
||||
unsigned offset = binary->info->mem_offsets.offsets.state->dmem.tnr.offset;
|
||||
unsigned int offset = binary->info->mem_offsets.offsets.state->dmem.tnr.offset;
|
||||
|
||||
if (size) {
|
||||
ia_css_init_tnr_state((struct sh_css_isp_tnr_dmem_state *)
|
||||
&binary->mem_params.params[IA_CSS_PARAM_CLASS_STATE][IA_CSS_ISP_DMEM].address[offset],
|
||||
size);
|
||||
}
|
||||
|
||||
}
|
||||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_initialize_tnr_state() leave:\n");
|
||||
}
|
||||
|
@ -162,16 +156,15 @@ ia_css_initialize_ref_state(
|
|||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_initialize_ref_state() enter:\n");
|
||||
|
||||
{
|
||||
unsigned size = binary->info->mem_offsets.offsets.state->dmem.ref.size;
|
||||
unsigned int size = binary->info->mem_offsets.offsets.state->dmem.ref.size;
|
||||
|
||||
unsigned offset = binary->info->mem_offsets.offsets.state->dmem.ref.offset;
|
||||
unsigned int offset = binary->info->mem_offsets.offsets.state->dmem.ref.offset;
|
||||
|
||||
if (size) {
|
||||
ia_css_init_ref_state((struct sh_css_isp_ref_dmem_state *)
|
||||
&binary->mem_params.params[IA_CSS_PARAM_CLASS_STATE][IA_CSS_ISP_DMEM].address[offset],
|
||||
size);
|
||||
}
|
||||
|
||||
}
|
||||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_initialize_ref_state() leave:\n");
|
||||
}
|
||||
|
@ -185,16 +178,15 @@ ia_css_initialize_ynr_state(
|
|||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_initialize_ynr_state() enter:\n");
|
||||
|
||||
{
|
||||
unsigned size = binary->info->mem_offsets.offsets.state->vmem.ynr.size;
|
||||
unsigned int size = binary->info->mem_offsets.offsets.state->vmem.ynr.size;
|
||||
|
||||
unsigned offset = binary->info->mem_offsets.offsets.state->vmem.ynr.offset;
|
||||
unsigned int offset = binary->info->mem_offsets.offsets.state->vmem.ynr.offset;
|
||||
|
||||
if (size) {
|
||||
ia_css_init_ynr_state(
|
||||
&binary->mem_params.params[IA_CSS_PARAM_CLASS_STATE][IA_CSS_ISP_VMEM].address[offset],
|
||||
size);
|
||||
}
|
||||
|
||||
}
|
||||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_initialize_ynr_state() leave:\n");
|
||||
}
|
||||
|
@ -211,4 +203,3 @@ void (* ia_css_kernel_init_state[IA_CSS_NUM_STATE_IDS])(const struct ia_css_bina
|
|||
ia_css_initialize_ref_state,
|
||||
ia_css_initialize_ynr_state,
|
||||
};
|
||||
|
||||
|
|
|
@ -95,7 +95,7 @@
|
|||
#define _hrt_get_bit(w, b) \
|
||||
(((w) >> (b)) & 1)
|
||||
#define _hrt_set_bit(w, b, v) \
|
||||
(((w) & (~(1 << (b)))) | (((v)&1) << (b)))
|
||||
(((w) & (~(1 << (b)))) | (((v) & 1) << (b)))
|
||||
#define _hrt_set_lower_half(w, v) \
|
||||
_hrt_set_bits(w, 0, 16, v)
|
||||
#define _hrt_set_upper_half(w, v) \
|
||||
|
|
|
@ -22,9 +22,9 @@
|
|||
#define SP_ICACHE_BLOCK_ADDRESS_BITS 11 /* 2048 lines capacity*/
|
||||
|
||||
#define SP_ICACHE_ADDRESS_BITS \
|
||||
(SP_ICACHE_TAG_BITS+SP_ICACHE_BLOCK_ADDRESS_BITS)
|
||||
(SP_ICACHE_TAG_BITS + SP_ICACHE_BLOCK_ADDRESS_BITS)
|
||||
|
||||
#define SP_PMEM_DEPTH (1<<SP_ICACHE_ADDRESS_BITS)
|
||||
#define SP_PMEM_DEPTH BIT(SP_ICACHE_ADDRESS_BITS)
|
||||
|
||||
#define SP_FIFO_0_DEPTH 0
|
||||
#define SP_FIFO_1_DEPTH 0
|
||||
|
@ -35,8 +35,6 @@
|
|||
#define SP_FIFO_6_DEPTH 0
|
||||
#define SP_FIFO_7_DEPTH 0
|
||||
|
||||
|
||||
#define SP_SLV_BUS_MAXBURSTSIZE 1
|
||||
|
||||
#endif /* _cell_params_h */
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
#define _HRT_CSS_RECEIVER_2400_GEN_SHORT_CH_ID_WIDTH 2
|
||||
#define _HRT_CSS_RECEIVER_2400_GEN_SHORT_FMT_TYPE_WIDTH 3
|
||||
#define _HRT_CSS_RECEIVER_2400_GEN_SHORT_STR_REAL_WIDTH (_HRT_CSS_RECEIVER_2400_GEN_SHORT_DATA_WIDTH + _HRT_CSS_RECEIVER_2400_GEN_SHORT_CH_ID_WIDTH + _HRT_CSS_RECEIVER_2400_GEN_SHORT_FMT_TYPE_WIDTH)
|
||||
#define _HRT_CSS_RECEIVER_2400_GEN_SHORT_STR_WIDTH 32 /* use 32 to be compatibel with streaming monitor !, MSB's of interface are tied to '0' */
|
||||
#define _HRT_CSS_RECEIVER_2400_GEN_SHORT_STR_WIDTH 32 /* use 32 to be compatibel with streaming monitor !, MSB's of interface are tied to '0' */
|
||||
|
||||
/* Definition of data format ID at the interface CSS_receiver capture/acquisition units */
|
||||
#define _HRT_CSS_RECEIVER_2400_DATA_FORMAT_ID_YUV420_8 24 /* 01 1000 YUV420 8-bit */
|
||||
|
@ -64,10 +64,10 @@
|
|||
#define _HRT_CSS_RECEIVER_2400_DATA_FORMAT_ID_YUV420_8_CSPS 28 /* 01 1100 YUV420 8-bit (Chroma Shifted Pixel Sampling) */
|
||||
#define _HRT_CSS_RECEIVER_2400_DATA_FORMAT_ID_YUV420_10_CSPS 29 /* 01 1101 YUV420 10-bit (Chroma Shifted Pixel Sampling) */
|
||||
/* used reserved mipi positions for these */
|
||||
#define _HRT_CSS_RECEIVER_2400_DATA_FORMAT_ID_RAW16 46
|
||||
#define _HRT_CSS_RECEIVER_2400_DATA_FORMAT_ID_RAW18 47
|
||||
#define _HRT_CSS_RECEIVER_2400_DATA_FORMAT_ID_RAW18_2 37
|
||||
#define _HRT_CSS_RECEIVER_2400_DATA_FORMAT_ID_RAW18_3 38
|
||||
#define _HRT_CSS_RECEIVER_2400_DATA_FORMAT_ID_RAW16 46
|
||||
#define _HRT_CSS_RECEIVER_2400_DATA_FORMAT_ID_RAW18 47
|
||||
#define _HRT_CSS_RECEIVER_2400_DATA_FORMAT_ID_RAW18_2 37
|
||||
#define _HRT_CSS_RECEIVER_2400_DATA_FORMAT_ID_RAW18_3 38
|
||||
|
||||
#define _HRT_CSS_RECEIVER_2400_DATA_FORMAT_ID_WIDTH 6
|
||||
|
||||
|
@ -78,7 +78,7 @@
|
|||
#define _HRT_CSS_RECEIVER_2400_FMT_TYPE_RGB444 2 // 32
|
||||
#define _HRT_CSS_RECEIVER_2400_FMT_TYPE_RGB565 3 // 34
|
||||
#define _HRT_CSS_RECEIVER_2400_FMT_TYPE_RGB666 4 // 35
|
||||
#define _HRT_CSS_RECEIVER_2400_FMT_TYPE_RAW8 5 // 42
|
||||
#define _HRT_CSS_RECEIVER_2400_FMT_TYPE_RAW8 5 // 42
|
||||
#define _HRT_CSS_RECEIVER_2400_FMT_TYPE_RAW10 6 // 43
|
||||
#define _HRT_CSS_RECEIVER_2400_FMT_TYPE_RAW6 7 // 40
|
||||
#define _HRT_CSS_RECEIVER_2400_FMT_TYPE_RAW7 8 // 41
|
||||
|
@ -104,24 +104,24 @@
|
|||
#define _HRT_CSS_RECEIVER_2400_FMT_TYPE_RAW18 28 // ?
|
||||
#define _HRT_CSS_RECEIVER_2400_FMT_TYPE_RAW18_2 29 // ? Option 2 for depacketiser
|
||||
#define _HRT_CSS_RECEIVER_2400_FMT_TYPE_RAW18_3 30 // ? Option 3 for depacketiser
|
||||
#define _HRT_CSS_RECEIVER_2400_FMT_TYPE_CUSTOM 31 // to signal custom decoding
|
||||
#define _HRT_CSS_RECEIVER_2400_FMT_TYPE_CUSTOM 31 // to signal custom decoding
|
||||
|
||||
/* definition for state machine of data FIFO for decode different type of data */
|
||||
#define _HRT_CSS_RECEIVER_2400_YUV420_8_REPEAT_PTN 1
|
||||
#define _HRT_CSS_RECEIVER_2400_YUV420_8_REPEAT_PTN 1
|
||||
#define _HRT_CSS_RECEIVER_2400_YUV420_10_REPEAT_PTN 5
|
||||
#define _HRT_CSS_RECEIVER_2400_YUV420_8L_REPEAT_PTN 1
|
||||
#define _HRT_CSS_RECEIVER_2400_YUV422_8_REPEAT_PTN 1
|
||||
#define _HRT_CSS_RECEIVER_2400_YUV422_10_REPEAT_PTN 5
|
||||
#define _HRT_CSS_RECEIVER_2400_RGB444_REPEAT_PTN 2
|
||||
#define _HRT_CSS_RECEIVER_2400_RGB444_REPEAT_PTN 2
|
||||
#define _HRT_CSS_RECEIVER_2400_RGB555_REPEAT_PTN 2
|
||||
#define _HRT_CSS_RECEIVER_2400_RGB565_REPEAT_PTN 2
|
||||
#define _HRT_CSS_RECEIVER_2400_RGB666_REPEAT_PTN 9
|
||||
#define _HRT_CSS_RECEIVER_2400_RGB666_REPEAT_PTN 9
|
||||
#define _HRT_CSS_RECEIVER_2400_RGB888_REPEAT_PTN 3
|
||||
#define _HRT_CSS_RECEIVER_2400_RAW6_REPEAT_PTN 3
|
||||
#define _HRT_CSS_RECEIVER_2400_RAW7_REPEAT_PTN 7
|
||||
#define _HRT_CSS_RECEIVER_2400_RAW8_REPEAT_PTN 1
|
||||
#define _HRT_CSS_RECEIVER_2400_RAW10_REPEAT_PTN 5
|
||||
#define _HRT_CSS_RECEIVER_2400_RAW12_REPEAT_PTN 3
|
||||
#define _HRT_CSS_RECEIVER_2400_RAW12_REPEAT_PTN 3
|
||||
#define _HRT_CSS_RECEIVER_2400_RAW14_REPEAT_PTN 7
|
||||
|
||||
#define _HRT_CSS_RECEIVER_2400_MAX_REPEAT_PTN _HRT_CSS_RECEIVER_2400_RGB666_REPEAT_PTN
|
||||
|
@ -146,7 +146,6 @@
|
|||
#define _HRT_CSS_RECEIVER_2400_BE_COMP_12_7_12 5
|
||||
#define _HRT_CSS_RECEIVER_2400_BE_COMP_12_8_12 6
|
||||
|
||||
|
||||
/* packet bit definition */
|
||||
#define _HRT_CSS_RECEIVER_2400_PKT_SOP_IDX 32
|
||||
#define _HRT_CSS_RECEIVER_2400_PKT_SOP_BITS 1
|
||||
|
@ -159,22 +158,21 @@
|
|||
#define _HRT_CSS_RECEIVER_2400_PKT_PAYLOAD_IDX 0
|
||||
#define _HRT_CSS_RECEIVER_2400_PKT_PAYLOAD_BITS 32
|
||||
|
||||
|
||||
/*************************************************************************************************/
|
||||
/* Custom Decoding */
|
||||
/* These Custom Defs are defined based on design-time config in "csi_be_pixel_formatter.chdl" !! */
|
||||
/*************************************************************************************************/
|
||||
#define BE_CUST_EN_IDX 0 /* 2bits */
|
||||
#define BE_CUST_EN_DATAID_IDX 2 /* 6bits MIPI DATA ID */
|
||||
#define BE_CUST_EN_WIDTH 8
|
||||
#define BE_CUST_EN_DATAID_IDX 2 /* 6bits MIPI DATA ID */
|
||||
#define BE_CUST_EN_WIDTH 8
|
||||
#define BE_CUST_MODE_ALL 1 /* Enable Custom Decoding for all DATA IDs */
|
||||
#define BE_CUST_MODE_ONE 3 /* Enable Custom Decoding for ONE DATA ID, programmed in CUST_EN_DATA_ID */
|
||||
|
||||
/* Data State config = {get_bits(6bits), valid(1bit)} */
|
||||
#define BE_CUST_DATA_STATE_S0_IDX 0 /* 7bits */
|
||||
#define BE_CUST_DATA_STATE_S1_IDX 7 /* 7bits */
|
||||
#define BE_CUST_DATA_STATE_S0_IDX 0 /* 7bits */
|
||||
#define BE_CUST_DATA_STATE_S1_IDX 7 /* 7bits */
|
||||
#define BE_CUST_DATA_STATE_S2_IDX 14 /* 7bits */
|
||||
#define BE_CUST_DATA_STATE_WIDTH 21
|
||||
#define BE_CUST_DATA_STATE_WIDTH 21
|
||||
#define BE_CUST_DATA_STATE_VALID_IDX 0 /* 1bits */
|
||||
#define BE_CUST_DATA_STATE_GETBITS_IDX 1 /* 6bits */
|
||||
|
||||
|
@ -183,18 +181,18 @@
|
|||
#define BE_CUST_PIX_EXT_PIX_ALIGN_IDX 5 /* 5bits */
|
||||
#define BE_CUST_PIX_EXT_PIX_MASK_IDX 10 /* 18bits */
|
||||
#define BE_CUST_PIX_EXT_PIX_EN_IDX 28 /* 1bits */
|
||||
#define BE_CUST_PIX_EXT_WIDTH 29
|
||||
#define BE_CUST_PIX_EXT_WIDTH 29
|
||||
|
||||
/* Pixel Valid & EoP config = {[eop,valid](especial), [eop,valid](normal)} */
|
||||
#define BE_CUST_PIX_VALID_EOP_P0_IDX 0 /* 4bits */
|
||||
#define BE_CUST_PIX_VALID_EOP_P1_IDX 4 /* 4bits */
|
||||
#define BE_CUST_PIX_VALID_EOP_P2_IDX 8 /* 4bits */
|
||||
#define BE_CUST_PIX_VALID_EOP_P3_IDX 12 /* 4bits */
|
||||
#define BE_CUST_PIX_VALID_EOP_WIDTH 16
|
||||
#define BE_CUST_PIX_VALID_EOP_WIDTH 16
|
||||
#define BE_CUST_PIX_VALID_EOP_NOR_VALID_IDX 0 /* Normal (NO less get_bits case) Valid - 1bits */
|
||||
#define BE_CUST_PIX_VALID_EOP_NOR_EOP_IDX 1 /* Normal (NO less get_bits case) EoP - 1bits */
|
||||
#define BE_CUST_PIX_VALID_EOP_ESP_VALID_IDX 2 /* Especial (less get_bits case) Valid - 1bits */
|
||||
#define BE_CUST_PIX_VALID_EOP_ESP_EOP_IDX 3 /* Especial (less get_bits case) EoP - 1bits */
|
||||
|
||||
#endif /* _mipi_backend_common_defs_h_ */
|
||||
#endif /* _css_receiver_2400_common_defs_h_ */
|
||||
#endif /* _css_receiver_2400_common_defs_h_ */
|
||||
|
|
|
@ -132,7 +132,6 @@
|
|||
#define _HRT_CSS_RECEIVER_2400_CSI2_MASK_ECC_TWO_BIT_ERR_IDX 6
|
||||
#define _HRT_CSS_RECEIVER_2400_CSI2_MASK_DATA_ID_ERR_IDX 7
|
||||
|
||||
|
||||
/* Bits for CSI2_FUNC_PROG register */
|
||||
#define _HRT_CSS_RECEIVER_2400_CSI2_DATA_TIMEOUT_IDX 0
|
||||
#define _HRT_CSS_RECEIVER_2400_CSI2_DATA_TIMEOUT_BITS 19
|
||||
|
@ -182,7 +181,6 @@
|
|||
#define _HRT_CSS_RECEIVER_2400_COMP_SCHEME_USD_PRED_BITS_IDX 3
|
||||
#define _HRT_CSS_RECEIVER_2400_COMP_SCHEME_USD_PRED_BITS_BITS 2
|
||||
|
||||
|
||||
/* BITS for backend RAW16 and RAW 18 registers */
|
||||
|
||||
#define _HRT_CSS_RECEIVER_2400_RAW18_DATAID_IDX 0
|
||||
|
@ -200,8 +198,8 @@
|
|||
#define _HRT_CSS_RECEIVER_2400_RAW16_EN_BITS 1
|
||||
|
||||
/* These hsync and vsync values are for HSS simulation only */
|
||||
#define _HRT_CSS_RECEIVER_2400_HSYNC_VAL (1<<16)
|
||||
#define _HRT_CSS_RECEIVER_2400_VSYNC_VAL (1<<17)
|
||||
#define _HRT_CSS_RECEIVER_2400_HSYNC_VAL BIT(16)
|
||||
#define _HRT_CSS_RECEIVER_2400_VSYNC_VAL BIT(17)
|
||||
|
||||
#define _HRT_CSS_RECEIVER_2400_BE_STREAMING_WIDTH 28
|
||||
#define _HRT_CSS_RECEIVER_2400_BE_STREAMING_PIX_A_LSB 0
|
||||
|
|
|
@ -51,7 +51,7 @@
|
|||
#define _DMA_V2_SPEC_DEV_B_XB_IDX (_DMA_V2_SPEC_DEV_A_XB_IDX + _DMA_V2_SPEC_DEV_A_XB_BITS)
|
||||
#define _DMA_V2_SPEC_DEV_B_XB_BITS 8
|
||||
#define _DMA_V2_SPEC_YB_IDX (_DMA_V2_SPEC_DEV_B_XB_IDX + _DMA_V2_SPEC_DEV_B_XB_BITS)
|
||||
#define _DMA_V2_SPEC_YB_BITS (32-_DMA_V2_SPEC_DEV_B_XB_BITS-_DMA_V2_SPEC_DEV_A_XB_BITS-_DMA_V2_CMD_BITS-_DMA_V2_CHANNEL_BITS)
|
||||
#define _DMA_V2_SPEC_YB_BITS (32 - _DMA_V2_SPEC_DEV_B_XB_BITS - _DMA_V2_SPEC_DEV_A_XB_BITS - _DMA_V2_CMD_BITS - _DMA_V2_CHANNEL_BITS)
|
||||
|
||||
/* */
|
||||
#define _DMA_V2_CMD_CTRL_IDX 4
|
||||
|
@ -79,44 +79,44 @@
|
|||
#define _DMA_V2_STRIDE_BITS 32
|
||||
|
||||
/* Command IDs */
|
||||
#define _DMA_V2_MOVE_B2A_COMMAND 0
|
||||
#define _DMA_V2_MOVE_B2A_BLOCK_COMMAND 1
|
||||
#define _DMA_V2_MOVE_B2A_NO_SYNC_CHK_COMMAND 2
|
||||
#define _DMA_V2_MOVE_B2A_BLOCK_NO_SYNC_CHK_COMMAND 3
|
||||
#define _DMA_V2_MOVE_A2B_COMMAND 4
|
||||
#define _DMA_V2_MOVE_A2B_BLOCK_COMMAND 5
|
||||
#define _DMA_V2_MOVE_A2B_NO_SYNC_CHK_COMMAND 6
|
||||
#define _DMA_V2_MOVE_A2B_BLOCK_NO_SYNC_CHK_COMMAND 7
|
||||
#define _DMA_V2_INIT_A_COMMAND 8
|
||||
#define _DMA_V2_INIT_A_BLOCK_COMMAND 9
|
||||
#define _DMA_V2_INIT_A_NO_SYNC_CHK_COMMAND 10
|
||||
#define _DMA_V2_INIT_A_BLOCK_NO_SYNC_CHK_COMMAND 11
|
||||
#define _DMA_V2_INIT_B_COMMAND 12
|
||||
#define _DMA_V2_INIT_B_BLOCK_COMMAND 13
|
||||
#define _DMA_V2_INIT_B_NO_SYNC_CHK_COMMAND 14
|
||||
#define _DMA_V2_INIT_B_BLOCK_NO_SYNC_CHK_COMMAND 15
|
||||
#define _DMA_V2_NO_ACK_MOVE_B2A_NO_SYNC_CHK_COMMAND (_DMA_V2_MOVE_B2A_NO_SYNC_CHK_COMMAND + 16)
|
||||
#define _DMA_V2_NO_ACK_MOVE_B2A_BLOCK_NO_SYNC_CHK_COMMAND (_DMA_V2_MOVE_B2A_BLOCK_NO_SYNC_CHK_COMMAND + 16)
|
||||
#define _DMA_V2_NO_ACK_MOVE_A2B_NO_SYNC_CHK_COMMAND (_DMA_V2_MOVE_A2B_NO_SYNC_CHK_COMMAND + 16)
|
||||
#define _DMA_V2_NO_ACK_MOVE_A2B_BLOCK_NO_SYNC_CHK_COMMAND (_DMA_V2_MOVE_A2B_BLOCK_NO_SYNC_CHK_COMMAND + 16)
|
||||
#define _DMA_V2_NO_ACK_INIT_A_NO_SYNC_CHK_COMMAND (_DMA_V2_INIT_A_NO_SYNC_CHK_COMMAND + 16)
|
||||
#define _DMA_V2_NO_ACK_INIT_A_BLOCK_NO_SYNC_CHK_COMMAND (_DMA_V2_INIT_A_BLOCK_NO_SYNC_CHK_COMMAND + 16)
|
||||
#define _DMA_V2_NO_ACK_INIT_B_NO_SYNC_CHK_COMMAND (_DMA_V2_INIT_B_NO_SYNC_CHK_COMMAND + 16)
|
||||
#define _DMA_V2_NO_ACK_INIT_B_BLOCK_NO_SYNC_CHK_COMMAND (_DMA_V2_INIT_B_BLOCK_NO_SYNC_CHK_COMMAND + 16)
|
||||
#define _DMA_V2_CONFIG_CHANNEL_COMMAND 32
|
||||
#define _DMA_V2_SET_CHANNEL_PARAM_COMMAND 33
|
||||
#define _DMA_V2_SET_CRUN_COMMAND 62
|
||||
#define _DMA_V2_MOVE_B2A_COMMAND 0
|
||||
#define _DMA_V2_MOVE_B2A_BLOCK_COMMAND 1
|
||||
#define _DMA_V2_MOVE_B2A_NO_SYNC_CHK_COMMAND 2
|
||||
#define _DMA_V2_MOVE_B2A_BLOCK_NO_SYNC_CHK_COMMAND 3
|
||||
#define _DMA_V2_MOVE_A2B_COMMAND 4
|
||||
#define _DMA_V2_MOVE_A2B_BLOCK_COMMAND 5
|
||||
#define _DMA_V2_MOVE_A2B_NO_SYNC_CHK_COMMAND 6
|
||||
#define _DMA_V2_MOVE_A2B_BLOCK_NO_SYNC_CHK_COMMAND 7
|
||||
#define _DMA_V2_INIT_A_COMMAND 8
|
||||
#define _DMA_V2_INIT_A_BLOCK_COMMAND 9
|
||||
#define _DMA_V2_INIT_A_NO_SYNC_CHK_COMMAND 10
|
||||
#define _DMA_V2_INIT_A_BLOCK_NO_SYNC_CHK_COMMAND 11
|
||||
#define _DMA_V2_INIT_B_COMMAND 12
|
||||
#define _DMA_V2_INIT_B_BLOCK_COMMAND 13
|
||||
#define _DMA_V2_INIT_B_NO_SYNC_CHK_COMMAND 14
|
||||
#define _DMA_V2_INIT_B_BLOCK_NO_SYNC_CHK_COMMAND 15
|
||||
#define _DMA_V2_NO_ACK_MOVE_B2A_NO_SYNC_CHK_COMMAND (_DMA_V2_MOVE_B2A_NO_SYNC_CHK_COMMAND + 16)
|
||||
#define _DMA_V2_NO_ACK_MOVE_B2A_BLOCK_NO_SYNC_CHK_COMMAND (_DMA_V2_MOVE_B2A_BLOCK_NO_SYNC_CHK_COMMAND + 16)
|
||||
#define _DMA_V2_NO_ACK_MOVE_A2B_NO_SYNC_CHK_COMMAND (_DMA_V2_MOVE_A2B_NO_SYNC_CHK_COMMAND + 16)
|
||||
#define _DMA_V2_NO_ACK_MOVE_A2B_BLOCK_NO_SYNC_CHK_COMMAND (_DMA_V2_MOVE_A2B_BLOCK_NO_SYNC_CHK_COMMAND + 16)
|
||||
#define _DMA_V2_NO_ACK_INIT_A_NO_SYNC_CHK_COMMAND (_DMA_V2_INIT_A_NO_SYNC_CHK_COMMAND + 16)
|
||||
#define _DMA_V2_NO_ACK_INIT_A_BLOCK_NO_SYNC_CHK_COMMAND (_DMA_V2_INIT_A_BLOCK_NO_SYNC_CHK_COMMAND + 16)
|
||||
#define _DMA_V2_NO_ACK_INIT_B_NO_SYNC_CHK_COMMAND (_DMA_V2_INIT_B_NO_SYNC_CHK_COMMAND + 16)
|
||||
#define _DMA_V2_NO_ACK_INIT_B_BLOCK_NO_SYNC_CHK_COMMAND (_DMA_V2_INIT_B_BLOCK_NO_SYNC_CHK_COMMAND + 16)
|
||||
#define _DMA_V2_CONFIG_CHANNEL_COMMAND 32
|
||||
#define _DMA_V2_SET_CHANNEL_PARAM_COMMAND 33
|
||||
#define _DMA_V2_SET_CRUN_COMMAND 62
|
||||
|
||||
/* Channel Parameter IDs */
|
||||
#define _DMA_V2_PACKING_SETUP_PARAM 0
|
||||
#define _DMA_V2_STRIDE_A_PARAM 1
|
||||
#define _DMA_V2_ELEM_CROPPING_A_PARAM 2
|
||||
#define _DMA_V2_WIDTH_A_PARAM 3
|
||||
#define _DMA_V2_STRIDE_B_PARAM 4
|
||||
#define _DMA_V2_ELEM_CROPPING_B_PARAM 5
|
||||
#define _DMA_V2_WIDTH_B_PARAM 6
|
||||
#define _DMA_V2_HEIGHT_PARAM 7
|
||||
#define _DMA_V2_QUEUED_CMDS 8
|
||||
#define _DMA_V2_PACKING_SETUP_PARAM 0
|
||||
#define _DMA_V2_STRIDE_A_PARAM 1
|
||||
#define _DMA_V2_ELEM_CROPPING_A_PARAM 2
|
||||
#define _DMA_V2_WIDTH_A_PARAM 3
|
||||
#define _DMA_V2_STRIDE_B_PARAM 4
|
||||
#define _DMA_V2_ELEM_CROPPING_B_PARAM 5
|
||||
#define _DMA_V2_WIDTH_B_PARAM 6
|
||||
#define _DMA_V2_HEIGHT_PARAM 7
|
||||
#define _DMA_V2_QUEUED_CMDS 8
|
||||
|
||||
/* Parameter Constants */
|
||||
#define _DMA_V2_ZERO_EXTEND 0
|
||||
|
@ -132,7 +132,7 @@
|
|||
#define _DMA_V2_ADDR_SEL_COMP_BITS 4
|
||||
#define _DMA_V2_ADDR_SEL_CH_REG_IDX 2
|
||||
#define _DMA_V2_ADDR_SEL_CH_REG_BITS 6
|
||||
#define _DMA_V2_ADDR_SEL_PARAM_IDX (_DMA_V2_ADDR_SEL_CH_REG_BITS+_DMA_V2_ADDR_SEL_CH_REG_IDX)
|
||||
#define _DMA_V2_ADDR_SEL_PARAM_IDX (_DMA_V2_ADDR_SEL_CH_REG_BITS + _DMA_V2_ADDR_SEL_CH_REG_IDX)
|
||||
#define _DMA_V2_ADDR_SEL_PARAM_BITS 4
|
||||
|
||||
#define _DMA_V2_ADDR_SEL_GROUP_COMP_IDX 2
|
||||
|
@ -142,7 +142,7 @@
|
|||
|
||||
#define _DMA_V2_ADDR_SEL_DEV_INTERF_IDX_IDX 2
|
||||
#define _DMA_V2_ADDR_SEL_DEV_INTERF_IDX_BITS 6
|
||||
#define _DMA_V2_ADDR_SEL_DEV_INTERF_INFO_IDX (_DMA_V2_ADDR_SEL_DEV_INTERF_IDX_IDX+_DMA_V2_ADDR_SEL_DEV_INTERF_IDX_BITS)
|
||||
#define _DMA_V2_ADDR_SEL_DEV_INTERF_INFO_IDX (_DMA_V2_ADDR_SEL_DEV_INTERF_IDX_IDX + _DMA_V2_ADDR_SEL_DEV_INTERF_IDX_BITS)
|
||||
#define _DMA_V2_ADDR_SEL_DEV_INTERF_INFO_BITS 4
|
||||
|
||||
#define _DMA_V2_FSM_GROUP_CMD_IDX 0
|
||||
|
@ -153,7 +153,7 @@
|
|||
#define _DMA_V2_FSM_GROUP_FSM_PACK_IDX 5
|
||||
#define _DMA_V2_FSM_GROUP_FSM_REQ_IDX 6
|
||||
#define _DMA_V2_FSM_GROUP_FSM_WR_IDX 7
|
||||
|
||||
|
||||
#define _DMA_V2_FSM_GROUP_FSM_CTRL_STATE_IDX 0
|
||||
#define _DMA_V2_FSM_GROUP_FSM_CTRL_REQ_DEV_IDX 1
|
||||
#define _DMA_V2_FSM_GROUP_FSM_CTRL_REQ_ADDR_IDX 2
|
||||
|
|
|
@ -21,53 +21,51 @@
|
|||
#define HRT_GDC_FRAC_BITS 10 /* Number of fractional bits in the GDC block, driven by the size of the LUT */
|
||||
|
||||
#define HRT_GDC_BLI_FRAC_BITS 4 /* Number of fractional bits for the bi-linear interpolation type */
|
||||
#define HRT_GDC_BLI_COEF_ONE (1 << HRT_GDC_BLI_FRAC_BITS)
|
||||
#define HRT_GDC_BLI_COEF_ONE BIT(HRT_GDC_BLI_FRAC_BITS)
|
||||
|
||||
#define HRT_GDC_BCI_COEF_BITS 14 /* 14 bits per coefficient */
|
||||
#define HRT_GDC_BCI_COEF_ONE (1 << (HRT_GDC_BCI_COEF_BITS-2)) /* We represent signed 10 bit coefficients. */
|
||||
/* The supported range is [-256, .., +256] */
|
||||
/* in 14-bit signed notation, */
|
||||
/* We need all ten bits (MSB must be zero). */
|
||||
/* -s is inserted to solve this issue, and */
|
||||
/* therefore "1" is equal to +256. */
|
||||
#define HRT_GDC_BCI_COEF_MASK ((1 << HRT_GDC_BCI_COEF_BITS) - 1)
|
||||
#define HRT_GDC_BCI_COEF_ONE (1 << (HRT_GDC_BCI_COEF_BITS - 2)) /* We represent signed 10 bit coefficients. */
|
||||
/* The supported range is [-256, .., +256] */
|
||||
/* in 14-bit signed notation, */
|
||||
/* We need all ten bits (MSB must be zero). */
|
||||
/* -s is inserted to solve this issue, and */
|
||||
/* therefore "1" is equal to +256. */
|
||||
#define HRT_GDC_BCI_COEF_MASK ((1 << HRT_GDC_BCI_COEF_BITS) - 1)
|
||||
|
||||
#define HRT_GDC_LUT_BYTES (HRT_GDC_N*4*2) /* 1024 addresses, 4 coefficients per address, */
|
||||
/* 2 bytes per coefficient */
|
||||
#define HRT_GDC_LUT_BYTES (HRT_GDC_N * 4 * 2) /* 1024 addresses, 4 coefficients per address, */
|
||||
/* 2 bytes per coefficient */
|
||||
|
||||
#define _HRT_GDC_REG_ALIGN 4
|
||||
#define _HRT_GDC_REG_ALIGN 4
|
||||
|
||||
// 31 30 29 25 24 0
|
||||
// |-----|---|--------|------------------------|
|
||||
// | CMD | C | Reg_ID | Value |
|
||||
|
||||
|
||||
// There are just two commands possible for the GDC block:
|
||||
// 1 - Configure reg
|
||||
// 0 - Data token
|
||||
|
||||
// 1 - Configure reg
|
||||
// 0 - Data token
|
||||
|
||||
// C - Reserved bit
|
||||
// Used in protocol to indicate whether it is C-run or other type of runs
|
||||
// In case of C-run, this bit has a value of 1, for all the other runs, it is 0.
|
||||
|
||||
// Reg_ID - Address of the register to be configured
|
||||
|
||||
|
||||
// Value - Value to store to the addressed register, maximum of 24 bits
|
||||
|
||||
// Configure reg command is not followed by any other token.
|
||||
// The address of the register and the data to be filled in is contained in the same token
|
||||
|
||||
// Configure reg command is not followed by any other token.
|
||||
// The address of the register and the data to be filled in is contained in the same token
|
||||
|
||||
// When the first data token is received, it must be:
|
||||
// 1. FRX and FRY (device configured in one of the scaling modes) ***DEFAULT MODE***, or,
|
||||
// 2. P0'X (device configured in one of the tetragon modes)
|
||||
// After the first data token is received, pre-defined number of tokens with the following meaning follow:
|
||||
// 1. two tokens: SRC address ; DST address
|
||||
// 2. nine tokens: P0'Y, .., P3'Y ; SRC address ; DST address
|
||||
|
||||
|
||||
#define HRT_GDC_CONFIG_CMD 1
|
||||
#define HRT_GDC_DATA_CMD 0
|
||||
|
||||
|
||||
#define HRT_GDC_CMD_POS 31
|
||||
#define HRT_GDC_CMD_BITS 1
|
||||
#define HRT_GDC_CRUN_POS 30
|
||||
|
@ -79,16 +77,14 @@
|
|||
#define HRT_GDC_FRYIPXFRX_BITS 26
|
||||
#define HRT_GDC_P0X_BITS 23
|
||||
|
||||
|
||||
#define HRT_GDC_MAX_OXDIM (8192-64)
|
||||
#define HRT_GDC_MAX_OXDIM (8192 - 64)
|
||||
#define HRT_GDC_MAX_OYDIM 4095
|
||||
#define HRT_GDC_MAX_IXDIM (8192-64)
|
||||
#define HRT_GDC_MAX_IXDIM (8192 - 64)
|
||||
#define HRT_GDC_MAX_IYDIM 4095
|
||||
#define HRT_GDC_MAX_DS_FAC 16
|
||||
#define HRT_GDC_MAX_DX (HRT_GDC_MAX_DS_FAC*HRT_GDC_N - 1)
|
||||
#define HRT_GDC_MAX_DX (HRT_GDC_MAX_DS_FAC * HRT_GDC_N - 1)
|
||||
#define HRT_GDC_MAX_DY HRT_GDC_MAX_DX
|
||||
|
||||
|
||||
/* GDC lookup tables entries are 10 bits values, but they're
|
||||
stored 2 by 2 as 32 bit values, yielding 16 bits per entry.
|
||||
A GDC lookup table contains 64 * 4 elements */
|
||||
|
@ -109,18 +105,17 @@
|
|||
#define HRT_GDC_MODE_SCALING 0
|
||||
#define HRT_GDC_MODE_TETRAGON 1
|
||||
|
||||
#define HRT_GDC_LUT_COEFF_OFFSET 16
|
||||
#define HRT_GDC_FRY_BIT_OFFSET 16
|
||||
// FRYIPXFRX is the only register where we store two values in one field,
|
||||
// to save one token in the scaling protocol.
|
||||
// Like this, we have three tokens in the scaling protocol,
|
||||
#define HRT_GDC_LUT_COEFF_OFFSET 16
|
||||
#define HRT_GDC_FRY_BIT_OFFSET 16
|
||||
// FRYIPXFRX is the only register where we store two values in one field,
|
||||
// to save one token in the scaling protocol.
|
||||
// Like this, we have three tokens in the scaling protocol,
|
||||
// Otherwise, we would have had four.
|
||||
// The register bit-map is:
|
||||
// 31 26 25 16 15 10 9 0
|
||||
// |------|----------|------|----------|
|
||||
// | XXXX | FRY | IPX | FRX |
|
||||
|
||||
|
||||
#define HRT_GDC_CE_FSM0_POS 0
|
||||
#define HRT_GDC_CE_FSM0_LEN 2
|
||||
#define HRT_GDC_CE_OPY_POS 2
|
||||
|
@ -131,11 +126,10 @@
|
|||
// 31 16 15 2 1 0
|
||||
// |----------------|-----------|----|
|
||||
// | OPX | OPY |FSM0|
|
||||
// However, for the time being at least,
|
||||
// However, for the time being at least,
|
||||
// this implementation is meaningless in hss model,
|
||||
// So, we just return 0
|
||||
|
||||
|
||||
#define HRT_GDC_CHK_ENGINE_IDX 0
|
||||
#define HRT_GDC_WOIX_IDX 1
|
||||
#define HRT_GDC_WOIY_IDX 2
|
||||
|
@ -166,5 +160,4 @@
|
|||
|
||||
#define HRT_GDC_LUT_IDX 32
|
||||
|
||||
|
||||
#endif /* HRT_GDC_v2_defs_h_ */
|
||||
|
|
|
@ -20,12 +20,12 @@
|
|||
#define HIVE_GP_TIMER_RESET_REG_IDX 0
|
||||
#define HIVE_GP_TIMER_OVERALL_ENABLE_REG_IDX 1
|
||||
#define HIVE_GP_TIMER_ENABLE_REG_IDX(timer) (HIVE_GP_TIMER_OVERALL_ENABLE_REG_IDX + 1 + timer)
|
||||
#define HIVE_GP_TIMER_VALUE_REG_IDX(timer,timers) (HIVE_GP_TIMER_ENABLE_REG_IDX(timers) + timer)
|
||||
#define HIVE_GP_TIMER_COUNT_TYPE_REG_IDX(timer,timers) (HIVE_GP_TIMER_VALUE_REG_IDX(timers, timers) + timer)
|
||||
#define HIVE_GP_TIMER_SIGNAL_SELECT_REG_IDX(timer,timers) (HIVE_GP_TIMER_COUNT_TYPE_REG_IDX(timers, timers) + timer)
|
||||
#define HIVE_GP_TIMER_IRQ_TRIGGER_VALUE_REG_IDX(irq,timers) (HIVE_GP_TIMER_SIGNAL_SELECT_REG_IDX(timers, timers) + irq)
|
||||
#define HIVE_GP_TIMER_IRQ_TIMER_SELECT_REG_IDX(irq,timers,irqs) (HIVE_GP_TIMER_IRQ_TRIGGER_VALUE_REG_IDX(irqs, timers) + irq)
|
||||
#define HIVE_GP_TIMER_IRQ_ENABLE_REG_IDX(irq,timers,irqs) (HIVE_GP_TIMER_IRQ_TIMER_SELECT_REG_IDX(irqs, timers, irqs) + irq)
|
||||
#define HIVE_GP_TIMER_VALUE_REG_IDX(timer, timers) (HIVE_GP_TIMER_ENABLE_REG_IDX(timers) + timer)
|
||||
#define HIVE_GP_TIMER_COUNT_TYPE_REG_IDX(timer, timers) (HIVE_GP_TIMER_VALUE_REG_IDX(timers, timers) + timer)
|
||||
#define HIVE_GP_TIMER_SIGNAL_SELECT_REG_IDX(timer, timers) (HIVE_GP_TIMER_COUNT_TYPE_REG_IDX(timers, timers) + timer)
|
||||
#define HIVE_GP_TIMER_IRQ_TRIGGER_VALUE_REG_IDX(irq, timers) (HIVE_GP_TIMER_SIGNAL_SELECT_REG_IDX(timers, timers) + irq)
|
||||
#define HIVE_GP_TIMER_IRQ_TIMER_SELECT_REG_IDX(irq, timers, irqs) (HIVE_GP_TIMER_IRQ_TRIGGER_VALUE_REG_IDX(irqs, timers) + irq)
|
||||
#define HIVE_GP_TIMER_IRQ_ENABLE_REG_IDX(irq, timers, irqs) (HIVE_GP_TIMER_IRQ_TIMER_SELECT_REG_IDX(irqs, timers, irqs) + irq)
|
||||
|
||||
#define HIVE_GP_TIMER_COUNT_TYPE_HIGH 0
|
||||
#define HIVE_GP_TIMER_COUNT_TYPE_LOW 1
|
||||
|
@ -33,4 +33,4 @@
|
|||
#define HIVE_GP_TIMER_COUNT_TYPE_NEGEDGE 3
|
||||
#define HIVE_GP_TIMER_COUNT_TYPES 4
|
||||
|
||||
#endif /* _gp_timer_defs_h */
|
||||
#endif /* _gp_timer_defs_h */
|
||||
|
|
|
@ -35,7 +35,6 @@
|
|||
#define _gpio_block_reg_di_debounce_cnt_3 14
|
||||
#define _gpio_block_reg_di_active_level 15
|
||||
|
||||
|
||||
/* read-only registers */
|
||||
#define _gpio_block_reg_di 16
|
||||
|
||||
|
|
|
@ -29,12 +29,12 @@
|
|||
and in the DMA parameter list */
|
||||
#define HIVE_ISP_DDR_DMA_SPECS {{32, 8}, {16, 16}, {18, 14}, {25, 10}, {21, 12}}
|
||||
#define HIVE_ISP_DDR_WORD_BITS 256
|
||||
#define HIVE_ISP_DDR_WORD_BYTES (HIVE_ISP_DDR_WORD_BITS/8)
|
||||
#define HIVE_ISP_DDR_WORD_BYTES (HIVE_ISP_DDR_WORD_BITS / 8)
|
||||
#define HIVE_ISP_DDR_BYTES (512 * 1024 * 1024) /* hss only */
|
||||
#define HIVE_ISP_DDR_BYTES_RTL (127 * 1024 * 1024) /* RTL only */
|
||||
#define HIVE_ISP_DDR_SMALL_BYTES (128 * 256 / 8)
|
||||
#define HIVE_ISP_PAGE_SHIFT 12
|
||||
#define HIVE_ISP_PAGE_SIZE (1<<HIVE_ISP_PAGE_SHIFT)
|
||||
#define HIVE_ISP_PAGE_SIZE BIT(HIVE_ISP_PAGE_SHIFT)
|
||||
|
||||
#define CSS_DDR_WORD_BITS HIVE_ISP_DDR_WORD_BITS
|
||||
#define CSS_DDR_WORD_BYTES HIVE_ISP_DDR_WORD_BYTES
|
||||
|
@ -257,7 +257,7 @@
|
|||
#define HIVE_GP_TIMER_ISP_WIRE_DEBUG_LM_MSINK_RUN_I4_I0 51
|
||||
#define HIVE_GP_TIMER_ISP_WIRE_DEBUG_LM_MSINK_RUN_I5_I0 52
|
||||
#define HIVE_GP_TIMER_ISP_WIRE_DEBUG_LM_MSINK_RUN_I6_I0 53
|
||||
#define HIVE_GP_TIMER_ISP_WIRE_DEBUG_LM_MSINK_RUN_I7_I0 54
|
||||
#define HIVE_GP_TIMER_ISP_WIRE_DEBUG_LM_MSINK_RUN_I7_I0 54
|
||||
#define HIVE_GP_TIMER_MIPI_SOL_BIT_ID 55
|
||||
#define HIVE_GP_TIMER_MIPI_EOL_BIT_ID 56
|
||||
#define HIVE_GP_TIMER_MIPI_SOF_BIT_ID 57
|
||||
|
@ -268,15 +268,15 @@
|
|||
/* port definititions SP streaming monitor, monitors the status of streaming ports at the SP side of the streaming FIFO's */
|
||||
#define SP_STR_MON_PORT_SP2SIF 0
|
||||
#define SP_STR_MON_PORT_SIF2SP 1
|
||||
#define SP_STR_MON_PORT_SP2MC 2
|
||||
#define SP_STR_MON_PORT_SP2MC 2
|
||||
#define SP_STR_MON_PORT_MC2SP 3
|
||||
#define SP_STR_MON_PORT_SP2DMA 4
|
||||
#define SP_STR_MON_PORT_SP2DMA 4
|
||||
#define SP_STR_MON_PORT_DMA2SP 5
|
||||
#define SP_STR_MON_PORT_SP2ISP 6
|
||||
#define SP_STR_MON_PORT_SP2ISP 6
|
||||
#define SP_STR_MON_PORT_ISP2SP 7
|
||||
#define SP_STR_MON_PORT_SP2GPD 8
|
||||
#define SP_STR_MON_PORT_FA2SP 9
|
||||
#define SP_STR_MON_PORT_SP2ISYS 10
|
||||
#define SP_STR_MON_PORT_SP2ISYS 10
|
||||
#define SP_STR_MON_PORT_ISYS2SP 11
|
||||
#define SP_STR_MON_PORT_SP2PIFA 12
|
||||
#define SP_STR_MON_PORT_PIFA2SP 13
|
||||
|
@ -313,33 +313,33 @@
|
|||
/* port definititions ISP streaming monitor, monitors the status of streaming ports at the ISP side of the streaming FIFO's */
|
||||
#define ISP_STR_MON_PORT_ISP2PIFA 0
|
||||
#define ISP_STR_MON_PORT_PIFA2ISP 1
|
||||
#define ISP_STR_MON_PORT_ISP2PIFB 2
|
||||
#define ISP_STR_MON_PORT_ISP2PIFB 2
|
||||
#define ISP_STR_MON_PORT_PIFB2ISP 3
|
||||
#define ISP_STR_MON_PORT_ISP2DMA 4
|
||||
#define ISP_STR_MON_PORT_ISP2DMA 4
|
||||
#define ISP_STR_MON_PORT_DMA2ISP 5
|
||||
#define ISP_STR_MON_PORT_ISP2GDC1 6
|
||||
#define ISP_STR_MON_PORT_ISP2GDC1 6
|
||||
#define ISP_STR_MON_PORT_GDC12ISP 7
|
||||
#define ISP_STR_MON_PORT_ISP2GDC2 8
|
||||
#define ISP_STR_MON_PORT_ISP2GDC2 8
|
||||
#define ISP_STR_MON_PORT_GDC22ISP 9
|
||||
#define ISP_STR_MON_PORT_ISP2GPD 10
|
||||
#define ISP_STR_MON_PORT_ISP2GPD 10
|
||||
#define ISP_STR_MON_PORT_FA2ISP 11
|
||||
#define ISP_STR_MON_PORT_ISP2SP 12
|
||||
#define ISP_STR_MON_PORT_ISP2SP 12
|
||||
#define ISP_STR_MON_PORT_SP2ISP 13
|
||||
|
||||
/* previously used ISP streaming monitor port identifiers, kept for backward compatibility */
|
||||
#define ISP_STR_MON_PORT_SND_PIF_A ISP_STR_MON_PORT_ISP2PIFA
|
||||
#define ISP_STR_MON_PORT_RCV_PIF_A ISP_STR_MON_PORT_PIFA2ISP
|
||||
#define ISP_STR_MON_PORT_SND_PIF_B ISP_STR_MON_PORT_ISP2PIFB
|
||||
#define ISP_STR_MON_PORT_SND_PIF_B ISP_STR_MON_PORT_ISP2PIFB
|
||||
#define ISP_STR_MON_PORT_RCV_PIF_B ISP_STR_MON_PORT_PIFB2ISP
|
||||
#define ISP_STR_MON_PORT_SND_DMA ISP_STR_MON_PORT_ISP2DMA
|
||||
#define ISP_STR_MON_PORT_RCV_DMA ISP_STR_MON_PORT_DMA2ISP
|
||||
#define ISP_STR_MON_PORT_SND_GDC ISP_STR_MON_PORT_ISP2GDC1
|
||||
#define ISP_STR_MON_PORT_SND_DMA ISP_STR_MON_PORT_ISP2DMA
|
||||
#define ISP_STR_MON_PORT_RCV_DMA ISP_STR_MON_PORT_DMA2ISP
|
||||
#define ISP_STR_MON_PORT_SND_GDC ISP_STR_MON_PORT_ISP2GDC1
|
||||
#define ISP_STR_MON_PORT_RCV_GDC ISP_STR_MON_PORT_GDC12ISP
|
||||
#define ISP_STR_MON_PORT_SND_GPD ISP_STR_MON_PORT_ISP2GPD
|
||||
#define ISP_STR_MON_PORT_SND_GPD ISP_STR_MON_PORT_ISP2GPD
|
||||
#define ISP_STR_MON_PORT_RCV_GPD ISP_STR_MON_PORT_FA2ISP
|
||||
#define ISP_STR_MON_PORT_SND_SP ISP_STR_MON_PORT_ISP2SP
|
||||
#define ISP_STR_MON_PORT_RCV_SP ISP_STR_MON_PORT_SP2ISP
|
||||
|
||||
|
||||
/* port definititions MOD streaming monitor, monitors the status of streaming ports at the module side of the streaming FIFO's */
|
||||
|
||||
#define MOD_STR_MON_PORT_PIFA2CELLS 0
|
||||
|
@ -374,7 +374,6 @@
|
|||
#define MOD_STR_MON_PORT_SND_GDC 12
|
||||
#define MOD_STR_MON_PORT_RCV_GDC 13
|
||||
|
||||
|
||||
/* testbench signals: */
|
||||
|
||||
/* testbench GP adapter register ids */
|
||||
|
@ -385,7 +384,7 @@
|
|||
#define HIVE_TESTBENCH_IDLE_REG_IDX 4
|
||||
#define HIVE_TESTBENCH_GPIO_DATA_IN_REG_IDX 5
|
||||
#define HIVE_TESTBENCH_MIPI_BFM_EN_REG_IDX 6
|
||||
#define HIVE_TESTBENCH_CSI_CONFIG_REG_IDX 7
|
||||
#define HIVE_TESTBENCH_CSI_CONFIG_REG_IDX 7
|
||||
#define HIVE_TESTBENCH_DDR_STALL_EN_REG_IDX 8
|
||||
|
||||
#define HIVE_TESTBENCH_ISP_PMEM_ERROR_IRQ_REG_IDX 9
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
#define ISP testbench_isp_isp
|
||||
#define SP testbench_isp_scp
|
||||
|
||||
#define IF_PRIM testbench_isp_ifmt_ift_prim
|
||||
#define IF_PRIM testbench_isp_ifmt_ift_prim
|
||||
#define IF_PRIM_B testbench_isp_ifmt_ift_prim_b
|
||||
#define IF_SEC testbench_isp_ifmt_ift_sec
|
||||
#define IF_SEC_MASTER testbench_isp_ifmt_ift_sec_mt_out
|
||||
|
|
|
@ -23,42 +23,42 @@
|
|||
* The definitions are taken from <system>_defs.h
|
||||
*/
|
||||
typedef enum hrt_isp_css_irq {
|
||||
hrt_isp_css_irq_gpio_pin_0 = HIVE_GP_DEV_IRQ_GPIO_PIN_0_BIT_ID ,
|
||||
hrt_isp_css_irq_gpio_pin_1 = HIVE_GP_DEV_IRQ_GPIO_PIN_1_BIT_ID ,
|
||||
hrt_isp_css_irq_gpio_pin_2 = HIVE_GP_DEV_IRQ_GPIO_PIN_2_BIT_ID ,
|
||||
hrt_isp_css_irq_gpio_pin_3 = HIVE_GP_DEV_IRQ_GPIO_PIN_3_BIT_ID ,
|
||||
hrt_isp_css_irq_gpio_pin_4 = HIVE_GP_DEV_IRQ_GPIO_PIN_4_BIT_ID ,
|
||||
hrt_isp_css_irq_gpio_pin_5 = HIVE_GP_DEV_IRQ_GPIO_PIN_5_BIT_ID ,
|
||||
hrt_isp_css_irq_gpio_pin_6 = HIVE_GP_DEV_IRQ_GPIO_PIN_6_BIT_ID ,
|
||||
hrt_isp_css_irq_gpio_pin_7 = HIVE_GP_DEV_IRQ_GPIO_PIN_7_BIT_ID ,
|
||||
hrt_isp_css_irq_gpio_pin_8 = HIVE_GP_DEV_IRQ_GPIO_PIN_8_BIT_ID ,
|
||||
hrt_isp_css_irq_gpio_pin_9 = HIVE_GP_DEV_IRQ_GPIO_PIN_9_BIT_ID ,
|
||||
hrt_isp_css_irq_gpio_pin_10 = HIVE_GP_DEV_IRQ_GPIO_PIN_10_BIT_ID ,
|
||||
hrt_isp_css_irq_gpio_pin_11 = HIVE_GP_DEV_IRQ_GPIO_PIN_11_BIT_ID ,
|
||||
hrt_isp_css_irq_sp = HIVE_GP_DEV_IRQ_SP_BIT_ID ,
|
||||
hrt_isp_css_irq_isp = HIVE_GP_DEV_IRQ_ISP_BIT_ID ,
|
||||
hrt_isp_css_irq_isys = HIVE_GP_DEV_IRQ_ISYS_BIT_ID ,
|
||||
hrt_isp_css_irq_isel = HIVE_GP_DEV_IRQ_ISEL_BIT_ID ,
|
||||
hrt_isp_css_irq_ifmt = HIVE_GP_DEV_IRQ_IFMT_BIT_ID ,
|
||||
hrt_isp_css_irq_sp_stream_mon = HIVE_GP_DEV_IRQ_SP_STREAM_MON_BIT_ID ,
|
||||
hrt_isp_css_irq_isp_stream_mon = HIVE_GP_DEV_IRQ_ISP_STREAM_MON_BIT_ID ,
|
||||
hrt_isp_css_irq_mod_stream_mon = HIVE_GP_DEV_IRQ_MOD_STREAM_MON_BIT_ID ,
|
||||
hrt_isp_css_irq_gpio_pin_0 = HIVE_GP_DEV_IRQ_GPIO_PIN_0_BIT_ID,
|
||||
hrt_isp_css_irq_gpio_pin_1 = HIVE_GP_DEV_IRQ_GPIO_PIN_1_BIT_ID,
|
||||
hrt_isp_css_irq_gpio_pin_2 = HIVE_GP_DEV_IRQ_GPIO_PIN_2_BIT_ID,
|
||||
hrt_isp_css_irq_gpio_pin_3 = HIVE_GP_DEV_IRQ_GPIO_PIN_3_BIT_ID,
|
||||
hrt_isp_css_irq_gpio_pin_4 = HIVE_GP_DEV_IRQ_GPIO_PIN_4_BIT_ID,
|
||||
hrt_isp_css_irq_gpio_pin_5 = HIVE_GP_DEV_IRQ_GPIO_PIN_5_BIT_ID,
|
||||
hrt_isp_css_irq_gpio_pin_6 = HIVE_GP_DEV_IRQ_GPIO_PIN_6_BIT_ID,
|
||||
hrt_isp_css_irq_gpio_pin_7 = HIVE_GP_DEV_IRQ_GPIO_PIN_7_BIT_ID,
|
||||
hrt_isp_css_irq_gpio_pin_8 = HIVE_GP_DEV_IRQ_GPIO_PIN_8_BIT_ID,
|
||||
hrt_isp_css_irq_gpio_pin_9 = HIVE_GP_DEV_IRQ_GPIO_PIN_9_BIT_ID,
|
||||
hrt_isp_css_irq_gpio_pin_10 = HIVE_GP_DEV_IRQ_GPIO_PIN_10_BIT_ID,
|
||||
hrt_isp_css_irq_gpio_pin_11 = HIVE_GP_DEV_IRQ_GPIO_PIN_11_BIT_ID,
|
||||
hrt_isp_css_irq_sp = HIVE_GP_DEV_IRQ_SP_BIT_ID,
|
||||
hrt_isp_css_irq_isp = HIVE_GP_DEV_IRQ_ISP_BIT_ID,
|
||||
hrt_isp_css_irq_isys = HIVE_GP_DEV_IRQ_ISYS_BIT_ID,
|
||||
hrt_isp_css_irq_isel = HIVE_GP_DEV_IRQ_ISEL_BIT_ID,
|
||||
hrt_isp_css_irq_ifmt = HIVE_GP_DEV_IRQ_IFMT_BIT_ID,
|
||||
hrt_isp_css_irq_sp_stream_mon = HIVE_GP_DEV_IRQ_SP_STREAM_MON_BIT_ID,
|
||||
hrt_isp_css_irq_isp_stream_mon = HIVE_GP_DEV_IRQ_ISP_STREAM_MON_BIT_ID,
|
||||
hrt_isp_css_irq_mod_stream_mon = HIVE_GP_DEV_IRQ_MOD_STREAM_MON_BIT_ID,
|
||||
#ifdef _HIVE_ISP_CSS_2401_SYSTEM
|
||||
hrt_isp_css_irq_is2401 = HIVE_GP_DEV_IRQ_IS2401_BIT_ID ,
|
||||
hrt_isp_css_irq_is2401 = HIVE_GP_DEV_IRQ_IS2401_BIT_ID,
|
||||
#else
|
||||
hrt_isp_css_irq_isp_pmem_error = HIVE_GP_DEV_IRQ_ISP_PMEM_ERROR_BIT_ID ,
|
||||
hrt_isp_css_irq_isp_pmem_error = HIVE_GP_DEV_IRQ_ISP_PMEM_ERROR_BIT_ID,
|
||||
#endif
|
||||
hrt_isp_css_irq_isp_bamem_error = HIVE_GP_DEV_IRQ_ISP_BAMEM_ERROR_BIT_ID ,
|
||||
hrt_isp_css_irq_isp_dmem_error = HIVE_GP_DEV_IRQ_ISP_DMEM_ERROR_BIT_ID ,
|
||||
hrt_isp_css_irq_sp_icache_mem_error = HIVE_GP_DEV_IRQ_SP_ICACHE_MEM_ERROR_BIT_ID ,
|
||||
hrt_isp_css_irq_sp_dmem_error = HIVE_GP_DEV_IRQ_SP_DMEM_ERROR_BIT_ID ,
|
||||
hrt_isp_css_irq_mmu_cache_mem_error = HIVE_GP_DEV_IRQ_MMU_CACHE_MEM_ERROR_BIT_ID ,
|
||||
hrt_isp_css_irq_gp_timer_0 = HIVE_GP_DEV_IRQ_GP_TIMER_0_BIT_ID ,
|
||||
hrt_isp_css_irq_gp_timer_1 = HIVE_GP_DEV_IRQ_GP_TIMER_1_BIT_ID ,
|
||||
hrt_isp_css_irq_sw_pin_0 = HIVE_GP_DEV_IRQ_SW_PIN_0_BIT_ID ,
|
||||
hrt_isp_css_irq_sw_pin_1 = HIVE_GP_DEV_IRQ_SW_PIN_1_BIT_ID ,
|
||||
hrt_isp_css_irq_dma = HIVE_GP_DEV_IRQ_DMA_BIT_ID ,
|
||||
hrt_isp_css_irq_sp_stream_mon_b = HIVE_GP_DEV_IRQ_SP_STREAM_MON_B_BIT_ID ,
|
||||
hrt_isp_css_irq_isp_bamem_error = HIVE_GP_DEV_IRQ_ISP_BAMEM_ERROR_BIT_ID,
|
||||
hrt_isp_css_irq_isp_dmem_error = HIVE_GP_DEV_IRQ_ISP_DMEM_ERROR_BIT_ID,
|
||||
hrt_isp_css_irq_sp_icache_mem_error = HIVE_GP_DEV_IRQ_SP_ICACHE_MEM_ERROR_BIT_ID,
|
||||
hrt_isp_css_irq_sp_dmem_error = HIVE_GP_DEV_IRQ_SP_DMEM_ERROR_BIT_ID,
|
||||
hrt_isp_css_irq_mmu_cache_mem_error = HIVE_GP_DEV_IRQ_MMU_CACHE_MEM_ERROR_BIT_ID,
|
||||
hrt_isp_css_irq_gp_timer_0 = HIVE_GP_DEV_IRQ_GP_TIMER_0_BIT_ID,
|
||||
hrt_isp_css_irq_gp_timer_1 = HIVE_GP_DEV_IRQ_GP_TIMER_1_BIT_ID,
|
||||
hrt_isp_css_irq_sw_pin_0 = HIVE_GP_DEV_IRQ_SW_PIN_0_BIT_ID,
|
||||
hrt_isp_css_irq_sw_pin_1 = HIVE_GP_DEV_IRQ_SW_PIN_1_BIT_ID,
|
||||
hrt_isp_css_irq_dma = HIVE_GP_DEV_IRQ_DMA_BIT_ID,
|
||||
hrt_isp_css_irq_sp_stream_mon_b = HIVE_GP_DEV_IRQ_SP_STREAM_MON_B_BIT_ID,
|
||||
/* this must (obviously) be the last on in the enum */
|
||||
hrt_isp_css_irq_num_irqs
|
||||
} hrt_isp_css_irq_t;
|
||||
|
|
|
@ -17,10 +17,10 @@
|
|||
|
||||
#include <streaming_to_mipi_defs.h>
|
||||
|
||||
#define _HIVE_ISP_CH_ID_MASK ((1U << HIVE_ISP_CH_ID_BITS)-1)
|
||||
#define _HIVE_ISP_FMT_TYPE_MASK ((1U << HIVE_ISP_FMT_TYPE_BITS)-1)
|
||||
#define _HIVE_ISP_CH_ID_MASK ((1U << HIVE_ISP_CH_ID_BITS) - 1)
|
||||
#define _HIVE_ISP_FMT_TYPE_MASK ((1U << HIVE_ISP_FMT_TYPE_BITS) - 1)
|
||||
|
||||
#define _HIVE_STR_TO_MIPI_FMT_TYPE_LSB (HIVE_STR_TO_MIPI_CH_ID_LSB + HIVE_ISP_CH_ID_BITS)
|
||||
#define _HIVE_STR_TO_MIPI_DATA_B_LSB (HIVE_STR_TO_MIPI_DATA_A_LSB + HIVE_IF_PIXEL_WIDTH)
|
||||
|
||||
|
||||
#endif /* _hive_isp_css_streaming_to_mipi_types_hrt_h_ */
|
||||
|
|
|
@ -12,28 +12,28 @@
|
|||
* more details.
|
||||
*/
|
||||
|
||||
#ifndef _HRT_HIVE_TYPES_H
|
||||
#define _HRT_HIVE_TYPES_H
|
||||
#ifndef _HRT_HIVE_TYPES_H
|
||||
#define _HRT_HIVE_TYPES_H
|
||||
|
||||
#include "version.h"
|
||||
#include "defs.h"
|
||||
|
||||
#ifndef HRTCAT3
|
||||
#define _HRTCAT3(m,n,o) m##n##o
|
||||
#define HRTCAT3(m,n,o) _HRTCAT3(m,n,o)
|
||||
#define _HRTCAT3(m, n, o) m##n##o
|
||||
#define HRTCAT3(m, n, o) _HRTCAT3(m, n, o)
|
||||
#endif
|
||||
|
||||
#ifndef HRTCAT4
|
||||
#define _HRTCAT4(m,n,o,p) m##n##o##p
|
||||
#define HRTCAT4(m,n,o,p) _HRTCAT4(m,n,o,p)
|
||||
#define _HRTCAT4(m, n, o, p) m##n##o##p
|
||||
#define HRTCAT4(m, n, o, p) _HRTCAT4(m, n, o, p)
|
||||
#endif
|
||||
|
||||
#ifndef HRTMIN
|
||||
#define HRTMIN(a,b) (((a)<(b))?(a):(b))
|
||||
#define HRTMIN(a, b) (((a) < (b)) ? (a) : (b))
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef HRTMAX
|
||||
#define HRTMAX(a,b) (((a)>(b))?(a):(b))
|
||||
#define HRTMAX(a, b) (((a) > (b)) ? (a) : (b))
|
||||
#endif
|
||||
|
||||
/* boolean data type */
|
||||
|
@ -59,8 +59,8 @@ typedef unsigned long long hive_uint64;
|
|||
#define HRT_ADDRESS_WIDTH 32
|
||||
#endif
|
||||
|
||||
#define HRT_DATA_BYTES (HRT_DATA_WIDTH/8)
|
||||
#define HRT_ADDRESS_BYTES (HRT_ADDRESS_WIDTH/8)
|
||||
#define HRT_DATA_BYTES (HRT_DATA_WIDTH / 8)
|
||||
#define HRT_ADDRESS_BYTES (HRT_ADDRESS_WIDTH / 8)
|
||||
|
||||
#if HRT_DATA_WIDTH == 64
|
||||
typedef hive_uint64 hrt_data;
|
||||
|
@ -71,7 +71,7 @@ typedef hive_uint32 hrt_data;
|
|||
#endif
|
||||
|
||||
#if HRT_ADDRESS_WIDTH == 64
|
||||
typedef hive_uint64 hrt_address;
|
||||
typedef hive_uint64 hrt_address;
|
||||
#elif HRT_ADDRESS_WIDTH == 32
|
||||
typedef hive_uint32 hrt_address;
|
||||
#else
|
||||
|
@ -95,7 +95,7 @@ typedef hive_address hive_mem_address;
|
|||
typedef hive_uint hive_mmio_id;
|
||||
typedef hive_mmio_id hive_slave_id;
|
||||
typedef hive_mmio_id hive_port_id;
|
||||
typedef hive_mmio_id hive_master_id;
|
||||
typedef hive_mmio_id hive_master_id;
|
||||
typedef hive_mmio_id hive_mem_id;
|
||||
typedef hive_mmio_id hive_dev_id;
|
||||
typedef hive_mmio_id hive_fifo_id;
|
||||
|
@ -122,7 +122,7 @@ typedef hive_uint hive_inport_id;
|
|||
typedef hive_uint hive_msink_id;
|
||||
|
||||
/* HRT specific */
|
||||
typedef char* hive_program;
|
||||
typedef char* hive_function;
|
||||
typedef char *hive_program;
|
||||
typedef char *hive_function;
|
||||
|
||||
#endif /* _HRT_HIVE_TYPES_H */
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
#define HIVE_IFMT_GP_REGS_INPUT_SWITCH_LUT_REG_4 4
|
||||
#define HIVE_IFMT_GP_REGS_INPUT_SWITCH_LUT_REG_5 5
|
||||
#define HIVE_IFMT_GP_REGS_INPUT_SWITCH_LUT_REG_6 6
|
||||
#define HIVE_IFMT_GP_REGS_INPUT_SWITCH_LUT_REG_7 7
|
||||
#define HIVE_IFMT_GP_REGS_INPUT_SWITCH_LUT_REG_7 7
|
||||
#define HIVE_IFMT_GP_REGS_INPUT_SWITCH_FSYNC_LUT_REG 8
|
||||
#define HIVE_IFMT_GP_REGS_SRST_IDX 9
|
||||
#define HIVE_IFMT_GP_REGS_SLV_REG_SRST_IDX 10
|
||||
|
|
|
@ -31,37 +31,36 @@
|
|||
#define HIVE_ISEL_GP_REGS_SYNCGEN_ENABLE_IDX 0
|
||||
#define HIVE_ISEL_GP_REGS_SYNCGEN_FREE_RUNNING_IDX 1
|
||||
#define HIVE_ISEL_GP_REGS_SYNCGEN_PAUSE_IDX 2
|
||||
#define HIVE_ISEL_GP_REGS_SYNCGEN_NR_FRAMES_IDX 3
|
||||
#define HIVE_ISEL_GP_REGS_SYNCGEN_NR_PIX_IDX 4
|
||||
#define HIVE_ISEL_GP_REGS_SYNCGEN_NR_LINES_IDX 5
|
||||
#define HIVE_ISEL_GP_REGS_SYNCGEN_HBLANK_CYCLES_IDX 6
|
||||
#define HIVE_ISEL_GP_REGS_SYNCGEN_VBLANK_CYCLES_IDX 7
|
||||
#define HIVE_ISEL_GP_REGS_SYNCGEN_NR_FRAMES_IDX 3
|
||||
#define HIVE_ISEL_GP_REGS_SYNCGEN_NR_PIX_IDX 4
|
||||
#define HIVE_ISEL_GP_REGS_SYNCGEN_NR_LINES_IDX 5
|
||||
#define HIVE_ISEL_GP_REGS_SYNCGEN_HBLANK_CYCLES_IDX 6
|
||||
#define HIVE_ISEL_GP_REGS_SYNCGEN_VBLANK_CYCLES_IDX 7
|
||||
|
||||
#define HIVE_ISEL_GP_REGS_SOF_IDX 8
|
||||
#define HIVE_ISEL_GP_REGS_EOF_IDX 9
|
||||
#define HIVE_ISEL_GP_REGS_SOL_IDX 10
|
||||
#define HIVE_ISEL_GP_REGS_EOL_IDX 11
|
||||
#define HIVE_ISEL_GP_REGS_SOF_IDX 8
|
||||
#define HIVE_ISEL_GP_REGS_EOF_IDX 9
|
||||
#define HIVE_ISEL_GP_REGS_SOL_IDX 10
|
||||
#define HIVE_ISEL_GP_REGS_EOL_IDX 11
|
||||
|
||||
#define HIVE_ISEL_GP_REGS_PRBS_ENABLE 12
|
||||
#define HIVE_ISEL_GP_REGS_PRBS_ENABLE_PORT_B 13
|
||||
#define HIVE_ISEL_GP_REGS_PRBS_LFSR_RESET_VALUE 14
|
||||
#define HIVE_ISEL_GP_REGS_PRBS_ENABLE 12
|
||||
#define HIVE_ISEL_GP_REGS_PRBS_ENABLE_PORT_B 13
|
||||
#define HIVE_ISEL_GP_REGS_PRBS_LFSR_RESET_VALUE 14
|
||||
|
||||
#define HIVE_ISEL_GP_REGS_TPG_ENABLE 15
|
||||
#define HIVE_ISEL_GP_REGS_TPG_ENABLE_PORT_B 16
|
||||
#define HIVE_ISEL_GP_REGS_TPG_HOR_CNT_MASK_IDX 17
|
||||
#define HIVE_ISEL_GP_REGS_TPG_VER_CNT_MASK_IDX 18
|
||||
#define HIVE_ISEL_GP_REGS_TPG_XY_CNT_MASK_IDX 19
|
||||
#define HIVE_ISEL_GP_REGS_TPG_HOR_CNT_DELTA_IDX 20
|
||||
#define HIVE_ISEL_GP_REGS_TPG_VER_CNT_DELTA_IDX 21
|
||||
#define HIVE_ISEL_GP_REGS_TPG_MODE_IDX 22
|
||||
#define HIVE_ISEL_GP_REGS_TPG_R1_IDX 23
|
||||
#define HIVE_ISEL_GP_REGS_TPG_ENABLE 15
|
||||
#define HIVE_ISEL_GP_REGS_TPG_ENABLE_PORT_B 16
|
||||
#define HIVE_ISEL_GP_REGS_TPG_HOR_CNT_MASK_IDX 17
|
||||
#define HIVE_ISEL_GP_REGS_TPG_VER_CNT_MASK_IDX 18
|
||||
#define HIVE_ISEL_GP_REGS_TPG_XY_CNT_MASK_IDX 19
|
||||
#define HIVE_ISEL_GP_REGS_TPG_HOR_CNT_DELTA_IDX 20
|
||||
#define HIVE_ISEL_GP_REGS_TPG_VER_CNT_DELTA_IDX 21
|
||||
#define HIVE_ISEL_GP_REGS_TPG_MODE_IDX 22
|
||||
#define HIVE_ISEL_GP_REGS_TPG_R1_IDX 23
|
||||
#define HIVE_ISEL_GP_REGS_TPG_G1_IDX 24
|
||||
#define HIVE_ISEL_GP_REGS_TPG_B1_IDX 25
|
||||
#define HIVE_ISEL_GP_REGS_TPG_R2_IDX 26
|
||||
#define HIVE_ISEL_GP_REGS_TPG_G2_IDX 27
|
||||
#define HIVE_ISEL_GP_REGS_TPG_B2_IDX 28
|
||||
|
||||
|
||||
#define HIVE_ISEL_GP_REGS_CH_ID_IDX 29
|
||||
#define HIVE_ISEL_GP_REGS_FMT_TYPE_IDX 30
|
||||
#define HIVE_ISEL_GP_REGS_DATA_SEL_IDX 31
|
||||
|
|
|
@ -15,8 +15,8 @@
|
|||
#ifndef _input_switch_2400_defs_h
|
||||
#define _input_switch_2400_defs_h
|
||||
|
||||
#define _HIVE_INPUT_SWITCH_GET_LUT_REG_ID(ch_id, fmt_type) (((ch_id)*2) + ((fmt_type)>=16))
|
||||
#define _HIVE_INPUT_SWITCH_GET_LUT_REG_LSB(fmt_type) (((fmt_type)%16) * 2)
|
||||
#define _HIVE_INPUT_SWITCH_GET_LUT_REG_ID(ch_id, fmt_type) (((ch_id) * 2) + ((fmt_type) >= 16))
|
||||
#define _HIVE_INPUT_SWITCH_GET_LUT_REG_LSB(fmt_type) (((fmt_type) % 16) * 2)
|
||||
|
||||
#define HIVE_INPUT_SWITCH_SELECT_NO_OUTPUT 0
|
||||
#define HIVE_INPUT_SWITCH_SELECT_IF_PRIM 1
|
||||
|
|
|
@ -50,7 +50,6 @@
|
|||
#define ISYS_CTRL_CAPT_C_FSM_STATE_INFO_REG_ID 20
|
||||
#define ISYS_CTRL_ACQ_FSM_STATE_INFO_REG_ID 21
|
||||
#define ISYS_CTRL_CAPT_RESERVE_ONE_MEM_REGION_REG_ID 22
|
||||
|
||||
|
||||
/* register reset value */
|
||||
#define ISYS_CTRL_CAPT_START_ADDR_A_REG_RSTVAL 0
|
||||
|
@ -59,38 +58,38 @@
|
|||
#define ISYS_CTRL_CAPT_MEM_REGION_SIZE_A_REG_RSTVAL 128
|
||||
#define ISYS_CTRL_CAPT_MEM_REGION_SIZE_B_REG_RSTVAL 128
|
||||
#define ISYS_CTRL_CAPT_MEM_REGION_SIZE_C_REG_RSTVAL 128
|
||||
#define ISYS_CTRL_CAPT_NUM_MEM_REGIONS_A_REG_RSTVAL 3
|
||||
#define ISYS_CTRL_CAPT_NUM_MEM_REGIONS_B_REG_RSTVAL 3
|
||||
#define ISYS_CTRL_CAPT_NUM_MEM_REGIONS_C_REG_RSTVAL 3
|
||||
#define ISYS_CTRL_CAPT_NUM_MEM_REGIONS_A_REG_RSTVAL 3
|
||||
#define ISYS_CTRL_CAPT_NUM_MEM_REGIONS_B_REG_RSTVAL 3
|
||||
#define ISYS_CTRL_CAPT_NUM_MEM_REGIONS_C_REG_RSTVAL 3
|
||||
#define ISYS_CTRL_ACQ_START_ADDR_REG_RSTVAL 0
|
||||
#define ISYS_CTRL_ACQ_MEM_REGION_SIZE_REG_RSTVAL 128
|
||||
#define ISYS_CTRL_ACQ_NUM_MEM_REGIONS_REG_RSTVAL 3
|
||||
#define ISYS_CTRL_ACQ_MEM_REGION_SIZE_REG_RSTVAL 128
|
||||
#define ISYS_CTRL_ACQ_NUM_MEM_REGIONS_REG_RSTVAL 3
|
||||
#define ISYS_CTRL_INIT_REG_RSTVAL 0
|
||||
#define ISYS_CTRL_LAST_COMMAND_REG_RSTVAL 15 //0x0000_000F (to signal non-valid cmd/ack after reset/soft-reset)
|
||||
#define ISYS_CTRL_LAST_COMMAND_REG_RSTVAL 15 //0x0000_000F (to signal non-valid cmd/ack after reset/soft-reset)
|
||||
#define ISYS_CTRL_NEXT_COMMAND_REG_RSTVAL 15 //0x0000_000F (to signal non-valid cmd/ack after reset/soft-reset)
|
||||
#define ISYS_CTRL_LAST_ACKNOWLEDGE_REG_RSTVAL 15 //0x0000_000F (to signal non-valid cmd/ack after reset/soft-reset)
|
||||
#define ISYS_CTRL_NEXT_ACKNOWLEDGE_REG_RSTVAL 15 //0x0000_000F (to signal non-valid cmd/ack after reset/soft-reset)
|
||||
#define ISYS_CTRL_FSM_STATE_INFO_REG_RSTVAL 0
|
||||
#define ISYS_CTRL_CAPT_A_FSM_STATE_INFO_REG_RSTVAL 0
|
||||
#define ISYS_CTRL_CAPT_A_FSM_STATE_INFO_REG_RSTVAL 0
|
||||
#define ISYS_CTRL_CAPT_B_FSM_STATE_INFO_REG_RSTVAL 0
|
||||
#define ISYS_CTRL_CAPT_C_FSM_STATE_INFO_REG_RSTVAL 0
|
||||
#define ISYS_CTRL_ACQ_FSM_STATE_INFO_REG_RSTVAL 0
|
||||
#define ISYS_CTRL_CAPT_RESERVE_ONE_MEM_REGION_REG_RSTVAL 0
|
||||
|
||||
/* register width value */
|
||||
#define ISYS_CTRL_CAPT_START_ADDR_A_REG_WIDTH 9
|
||||
#define ISYS_CTRL_CAPT_START_ADDR_B_REG_WIDTH 9
|
||||
#define ISYS_CTRL_CAPT_START_ADDR_C_REG_WIDTH 9
|
||||
#define ISYS_CTRL_CAPT_MEM_REGION_SIZE_A_REG_WIDTH 9
|
||||
#define ISYS_CTRL_CAPT_MEM_REGION_SIZE_B_REG_WIDTH 9
|
||||
#define ISYS_CTRL_CAPT_MEM_REGION_SIZE_C_REG_WIDTH 9
|
||||
#define ISYS_CTRL_CAPT_NUM_MEM_REGIONS_A_REG_WIDTH 9
|
||||
#define ISYS_CTRL_CAPT_NUM_MEM_REGIONS_B_REG_WIDTH 9
|
||||
#define ISYS_CTRL_CAPT_NUM_MEM_REGIONS_C_REG_WIDTH 9
|
||||
#define ISYS_CTRL_ACQ_START_ADDR_REG_WIDTH 9
|
||||
#define ISYS_CTRL_ACQ_MEM_REGION_SIZE_REG_WIDTH 9
|
||||
#define ISYS_CTRL_ACQ_NUM_MEM_REGIONS_REG_WIDTH 9
|
||||
#define ISYS_CTRL_INIT_REG_WIDTH 3
|
||||
#define ISYS_CTRL_CAPT_START_ADDR_A_REG_WIDTH 9
|
||||
#define ISYS_CTRL_CAPT_START_ADDR_B_REG_WIDTH 9
|
||||
#define ISYS_CTRL_CAPT_START_ADDR_C_REG_WIDTH 9
|
||||
#define ISYS_CTRL_CAPT_MEM_REGION_SIZE_A_REG_WIDTH 9
|
||||
#define ISYS_CTRL_CAPT_MEM_REGION_SIZE_B_REG_WIDTH 9
|
||||
#define ISYS_CTRL_CAPT_MEM_REGION_SIZE_C_REG_WIDTH 9
|
||||
#define ISYS_CTRL_CAPT_NUM_MEM_REGIONS_A_REG_WIDTH 9
|
||||
#define ISYS_CTRL_CAPT_NUM_MEM_REGIONS_B_REG_WIDTH 9
|
||||
#define ISYS_CTRL_CAPT_NUM_MEM_REGIONS_C_REG_WIDTH 9
|
||||
#define ISYS_CTRL_ACQ_START_ADDR_REG_WIDTH 9
|
||||
#define ISYS_CTRL_ACQ_MEM_REGION_SIZE_REG_WIDTH 9
|
||||
#define ISYS_CTRL_ACQ_NUM_MEM_REGIONS_REG_WIDTH 9
|
||||
#define ISYS_CTRL_INIT_REG_WIDTH 3
|
||||
#define ISYS_CTRL_LAST_COMMAND_REG_WIDTH 32 /* slave data width */
|
||||
#define ISYS_CTRL_NEXT_COMMAND_REG_WIDTH 32
|
||||
#define ISYS_CTRL_LAST_ACKNOWLEDGE_REG_WIDTH 32
|
||||
|
@ -111,99 +110,89 @@
|
|||
/*
|
||||
InpSysCaptFramesAcq 1/0 [3:0] - 'b0000
|
||||
[7:4] - CaptPortId,
|
||||
CaptA-'b0000
|
||||
CaptB-'b0001
|
||||
CaptC-'b0010
|
||||
CaptA-'b0000
|
||||
CaptB-'b0001
|
||||
CaptC-'b0010
|
||||
[31:16] - NOF_frames
|
||||
InpSysCaptFrameExt 2/0 [3:0] - 'b0001'
|
||||
[7:4] - CaptPortId,
|
||||
'b0000 - CaptA
|
||||
'b0001 - CaptB
|
||||
'b0010 - CaptC
|
||||
'b0000 - CaptA
|
||||
'b0001 - CaptB
|
||||
'b0010 - CaptC
|
||||
|
||||
2/1 [31:0] - external capture address
|
||||
InpSysAcqFrame 2/0 [3:0] - 'b0010,
|
||||
InpSysAcqFrame 2/0 [3:0] - 'b0010,
|
||||
[31:4] - NOF_ext_mem_words
|
||||
2/1 [31:0] - external memory read start address
|
||||
InpSysOverruleON 1/0 [3:0] - 'b0011,
|
||||
InpSysOverruleON 1/0 [3:0] - 'b0011,
|
||||
[7:4] - overrule port id (opid)
|
||||
'b0000 - CaptA
|
||||
'b0001 - CaptB
|
||||
'b0010 - CaptC
|
||||
'b0011 - Acq
|
||||
'b0100 - DMA
|
||||
'b0000 - CaptA
|
||||
'b0001 - CaptB
|
||||
'b0010 - CaptC
|
||||
'b0011 - Acq
|
||||
'b0100 - DMA
|
||||
|
||||
|
||||
InpSysOverruleOFF 1/0 [3:0] - 'b0100,
|
||||
InpSysOverruleOFF 1/0 [3:0] - 'b0100,
|
||||
[7:4] - overrule port id (opid)
|
||||
'b0000 - CaptA
|
||||
'b0001 - CaptB
|
||||
'b0010 - CaptC
|
||||
'b0011 - Acq
|
||||
'b0100 - DMA
|
||||
'b0000 - CaptA
|
||||
'b0001 - CaptB
|
||||
'b0010 - CaptC
|
||||
'b0011 - Acq
|
||||
'b0100 - DMA
|
||||
|
||||
|
||||
InpSysOverruleCmd 2/0 [3:0] - 'b0101,
|
||||
InpSysOverruleCmd 2/0 [3:0] - 'b0101,
|
||||
[7:4] - overrule port id (opid)
|
||||
'b0000 - CaptA
|
||||
'b0001 - CaptB
|
||||
'b0010 - CaptC
|
||||
'b0011 - Acq
|
||||
'b0100 - DMA
|
||||
|
||||
'b0000 - CaptA
|
||||
'b0001 - CaptB
|
||||
'b0010 - CaptC
|
||||
'b0011 - Acq
|
||||
'b0100 - DMA
|
||||
|
||||
2/1 [31:0] - command token value for port opid
|
||||
|
||||
|
||||
acknowledge tokens:
|
||||
|
||||
InpSysAckCFA 1/0 [3:0] - 'b0000
|
||||
[7:4] - CaptPortId,
|
||||
CaptA-'b0000
|
||||
CaptB- 'b0001
|
||||
CaptC-'b0010
|
||||
CaptA-'b0000
|
||||
CaptB- 'b0001
|
||||
CaptC-'b0010
|
||||
[31:16] - NOF_frames
|
||||
InpSysAckCFE 1/0 [3:0] - 'b0001'
|
||||
[7:4] - CaptPortId,
|
||||
'b0000 - CaptA
|
||||
'b0001 - CaptB
|
||||
'b0010 - CaptC
|
||||
'b0000 - CaptA
|
||||
'b0001 - CaptB
|
||||
'b0010 - CaptC
|
||||
|
||||
InpSysAckAF 1/0 [3:0] - 'b0010
|
||||
InpSysAckOverruleON 1/0 [3:0] - 'b0011,
|
||||
InpSysAckOverruleON 1/0 [3:0] - 'b0011,
|
||||
[7:4] - overrule port id (opid)
|
||||
'b0000 - CaptA
|
||||
'b0001 - CaptB
|
||||
'b0010 - CaptC
|
||||
'b0011 - Acq
|
||||
'b0100 - DMA
|
||||
'b0000 - CaptA
|
||||
'b0001 - CaptB
|
||||
'b0010 - CaptC
|
||||
'b0011 - Acq
|
||||
'b0100 - DMA
|
||||
|
||||
|
||||
InpSysAckOverruleOFF 1/0 [3:0] - 'b0100,
|
||||
InpSysAckOverruleOFF 1/0 [3:0] - 'b0100,
|
||||
[7:4] - overrule port id (opid)
|
||||
'b0000 - CaptA
|
||||
'b0001 - CaptB
|
||||
'b0010 - CaptC
|
||||
'b0011 - Acq
|
||||
'b0100 - DMA
|
||||
'b0000 - CaptA
|
||||
'b0001 - CaptB
|
||||
'b0010 - CaptC
|
||||
'b0011 - Acq
|
||||
'b0100 - DMA
|
||||
|
||||
|
||||
InpSysAckOverrule 2/0 [3:0] - 'b0101,
|
||||
InpSysAckOverrule 2/0 [3:0] - 'b0101,
|
||||
[7:4] - overrule port id (opid)
|
||||
'b0000 - CaptA
|
||||
'b0001 - CaptB
|
||||
'b0010 - CaptC
|
||||
'b0011 - Acq
|
||||
'b0100 - DMA
|
||||
|
||||
'b0000 - CaptA
|
||||
'b0001 - CaptB
|
||||
'b0010 - CaptC
|
||||
'b0011 - Acq
|
||||
'b0100 - DMA
|
||||
|
||||
2/1 [31:0] - acknowledge token value from port opid
|
||||
|
||||
|
||||
|
||||
*/
|
||||
|
||||
|
||||
/* Command and acknowledge tokens IDs */
|
||||
#define ISYS_CTRL_CAPT_FRAMES_ACQ_TOKEN_ID 0 /* 0000b */
|
||||
#define ISYS_CTRL_CAPT_FRAME_EXT_TOKEN_ID 1 /* 0001b */
|
||||
|
@ -232,10 +221,10 @@ InpSysAckOverrule 2/0 [3:0] - 'b0101,
|
|||
#define ISYS_CTRL_TOKEN_ID_IDX 0
|
||||
#define ISYS_CTRL_TOKEN_ID_BITS (ISYS_CTRL_TOKEN_ID_MSB - ISYS_CTRL_TOKEN_ID_LSB + 1)
|
||||
#define ISYS_CTRL_PORT_ID_IDX (ISYS_CTRL_TOKEN_ID_IDX + ISYS_CTRL_TOKEN_ID_BITS)
|
||||
#define ISYS_CTRL_PORT_ID_BITS (ISYS_CTRL_PORT_ID_TOKEN_MSB - ISYS_CTRL_PORT_ID_TOKEN_LSB +1)
|
||||
#define ISYS_CTRL_NOF_CAPT_IDX ISYS_CTRL_NOF_CAPT_TOKEN_LSB
|
||||
#define ISYS_CTRL_PORT_ID_BITS (ISYS_CTRL_PORT_ID_TOKEN_MSB - ISYS_CTRL_PORT_ID_TOKEN_LSB + 1)
|
||||
#define ISYS_CTRL_NOF_CAPT_IDX ISYS_CTRL_NOF_CAPT_TOKEN_LSB
|
||||
#define ISYS_CTRL_NOF_CAPT_BITS (ISYS_CTRL_NOF_CAPT_TOKEN_MSB - ISYS_CTRL_NOF_CAPT_TOKEN_LSB + 1)
|
||||
#define ISYS_CTRL_NOF_EXT_IDX ISYS_CTRL_NOF_EXT_TOKEN_LSB
|
||||
#define ISYS_CTRL_NOF_EXT_IDX ISYS_CTRL_NOF_EXT_TOKEN_LSB
|
||||
#define ISYS_CTRL_NOF_EXT_BITS (ISYS_CTRL_NOF_EXT_TOKEN_MSB - ISYS_CTRL_NOF_EXT_TOKEN_LSB + 1)
|
||||
|
||||
#define ISYS_CTRL_PORT_ID_CAPT_A 0 /* device ID for capture unit A */
|
||||
|
@ -248,7 +237,7 @@ InpSysAckOverrule 2/0 [3:0] - 'b0101,
|
|||
#define ISYS_CTRL_PORT_ID_DMA_ACQ 7 /* device ID for dma unit */
|
||||
|
||||
#define ISYS_CTRL_NO_ACQ_ACK 16 /* no ack from acquisition unit */
|
||||
#define ISYS_CTRL_NO_DMA_ACK 0
|
||||
#define ISYS_CTRL_NO_DMA_ACK 0
|
||||
#define ISYS_CTRL_NO_CAPT_ACK 16
|
||||
|
||||
#endif /* _input_system_ctrl_defs_h */
|
||||
#endif /* _input_system_ctrl_defs_h */
|
||||
|
|
|
@ -25,4 +25,4 @@
|
|||
|
||||
#define _HRT_IRQ_CONTROLLER_REG_ALIGN 4
|
||||
|
||||
#endif /* _irq_controller_defs_h */
|
||||
#endif /* _irq_controller_defs_h */
|
||||
|
|
|
@ -111,8 +111,8 @@
|
|||
#define ISP_SRU_GUARDING 1
|
||||
#define ISP_VLSU_GUARDING 1
|
||||
|
||||
#define ISP_VRF_RAM 1
|
||||
#define ISP_SRF_RAM 1
|
||||
#define ISP_VRF_RAM 1
|
||||
#define ISP_SRF_RAM 1
|
||||
|
||||
#define ISP_SPLIT_VMUL_VADD_IS 0
|
||||
#define ISP_RFSPLIT_FPGA 0
|
||||
|
@ -175,7 +175,7 @@
|
|||
#define ISP_NWAY ISP_VEC_NELEMS
|
||||
#define NBITS ISP_VEC_ELEMBITS
|
||||
|
||||
#define _isp_ceil_div(a,b) (((a)+(b)-1)/(b))
|
||||
#define _isp_ceil_div(a, b) (((a) + (b) - 1) / (b))
|
||||
|
||||
#define ISP_VEC_ALIGN ISP_VMEM_ALIGN
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
#define _isp_acquisition_defs_h
|
||||
|
||||
#define _ISP_ACQUISITION_REG_ALIGN 4 /* assuming 32 bit control bus width */
|
||||
#define _ISP_ACQUISITION_BYTES_PER_ELEM 4
|
||||
#define _ISP_ACQUISITION_BYTES_PER_ELEM 4
|
||||
|
||||
/* --------------------------------------------------*/
|
||||
|
||||
|
@ -32,13 +32,13 @@
|
|||
/* REGISTER INFO */
|
||||
/* --------------------------------------------------*/
|
||||
|
||||
#define NOF_ACQ_REGS 12
|
||||
#define NOF_ACQ_REGS 12
|
||||
|
||||
// Register id's of MMIO slave accesible registers
|
||||
#define ACQ_START_ADDR_REG_ID 0
|
||||
#define ACQ_START_ADDR_REG_ID 0
|
||||
#define ACQ_MEM_REGION_SIZE_REG_ID 1
|
||||
#define ACQ_NUM_MEM_REGIONS_REG_ID 2
|
||||
#define ACQ_INIT_REG_ID 3
|
||||
#define ACQ_INIT_REG_ID 3
|
||||
#define ACQ_RECEIVED_SHORT_PACKETS_REG_ID 4
|
||||
#define ACQ_RECEIVED_LONG_PACKETS_REG_ID 5
|
||||
#define ACQ_LAST_COMMAND_REG_ID 6
|
||||
|
@ -47,34 +47,34 @@
|
|||
#define ACQ_NEXT_ACKNOWLEDGE_REG_ID 9
|
||||
#define ACQ_FSM_STATE_INFO_REG_ID 10
|
||||
#define ACQ_INT_CNTR_INFO_REG_ID 11
|
||||
|
||||
|
||||
// Register width
|
||||
#define ACQ_START_ADDR_REG_WIDTH 9
|
||||
#define ACQ_MEM_REGION_SIZE_REG_WIDTH 9
|
||||
#define ACQ_NUM_MEM_REGIONS_REG_WIDTH 9
|
||||
#define ACQ_INIT_REG_WIDTH 3
|
||||
#define ACQ_RECEIVED_SHORT_PACKETS_REG_WIDTH 32
|
||||
#define ACQ_RECEIVED_LONG_PACKETS_REG_WIDTH 32
|
||||
#define ACQ_LAST_COMMAND_REG_WIDTH 32
|
||||
#define ACQ_NEXT_COMMAND_REG_WIDTH 32
|
||||
#define ACQ_LAST_ACKNOWLEDGE_REG_WIDTH 32
|
||||
#define ACQ_NEXT_ACKNOWLEDGE_REG_WIDTH 32
|
||||
#define ACQ_FSM_STATE_INFO_REG_WIDTH ((MEM2STREAM_FSM_STATE_BITS * 3) + (ACQ_SYNCHRONIZER_FSM_STATE_BITS *3))
|
||||
#define ACQ_START_ADDR_REG_WIDTH 9
|
||||
#define ACQ_MEM_REGION_SIZE_REG_WIDTH 9
|
||||
#define ACQ_NUM_MEM_REGIONS_REG_WIDTH 9
|
||||
#define ACQ_INIT_REG_WIDTH 3
|
||||
#define ACQ_RECEIVED_SHORT_PACKETS_REG_WIDTH 32
|
||||
#define ACQ_RECEIVED_LONG_PACKETS_REG_WIDTH 32
|
||||
#define ACQ_LAST_COMMAND_REG_WIDTH 32
|
||||
#define ACQ_NEXT_COMMAND_REG_WIDTH 32
|
||||
#define ACQ_LAST_ACKNOWLEDGE_REG_WIDTH 32
|
||||
#define ACQ_NEXT_ACKNOWLEDGE_REG_WIDTH 32
|
||||
#define ACQ_FSM_STATE_INFO_REG_WIDTH ((MEM2STREAM_FSM_STATE_BITS * 3) + (ACQ_SYNCHRONIZER_FSM_STATE_BITS * 3))
|
||||
#define ACQ_INT_CNTR_INFO_REG_WIDTH 32
|
||||
|
||||
/* register reset value */
|
||||
#define ACQ_START_ADDR_REG_RSTVAL 0
|
||||
#define ACQ_START_ADDR_REG_RSTVAL 0
|
||||
#define ACQ_MEM_REGION_SIZE_REG_RSTVAL 128
|
||||
#define ACQ_NUM_MEM_REGIONS_REG_RSTVAL 3
|
||||
#define ACQ_INIT_REG_RSTVAL 0
|
||||
#define ACQ_INIT_REG_RSTVAL 0
|
||||
#define ACQ_RECEIVED_SHORT_PACKETS_REG_RSTVAL 0
|
||||
#define ACQ_RECEIVED_LONG_PACKETS_REG_RSTVAL 0
|
||||
#define ACQ_LAST_COMMAND_REG_RSTVAL 0
|
||||
#define ACQ_NEXT_COMMAND_REG_RSTVAL 0
|
||||
#define ACQ_LAST_ACKNOWLEDGE_REG_RSTVAL 0
|
||||
#define ACQ_NEXT_ACKNOWLEDGE_REG_RSTVAL 0
|
||||
#define ACQ_NEXT_ACKNOWLEDGE_REG_RSTVAL 0
|
||||
#define ACQ_FSM_STATE_INFO_REG_RSTVAL 0
|
||||
#define ACQ_INT_CNTR_INFO_REG_RSTVAL 0
|
||||
#define ACQ_INT_CNTR_INFO_REG_RSTVAL 0
|
||||
|
||||
/* bit definitions */
|
||||
#define ACQ_INIT_RST_REG_BIT 0
|
||||
|
@ -88,7 +88,7 @@
|
|||
/* TOKEN INFO */
|
||||
/* --------------------------------------------------*/
|
||||
#define ACQ_TOKEN_ID_LSB 0
|
||||
#define ACQ_TOKEN_ID_MSB 3
|
||||
#define ACQ_TOKEN_ID_MSB 3
|
||||
#define ACQ_TOKEN_WIDTH (ACQ_TOKEN_ID_MSB - ACQ_TOKEN_ID_LSB + 1) // 4
|
||||
#define ACQ_TOKEN_ID_IDX 0
|
||||
#define ACQ_TOKEN_ID_BITS ACQ_TOKEN_WIDTH
|
||||
|
@ -97,9 +97,9 @@
|
|||
#define ACQ_CMD_START_ADDR_IDX 4
|
||||
#define ACQ_CMD_START_ADDR_BITS 9
|
||||
#define ACQ_CMD_NOFWORDS_IDX 13
|
||||
#define ACQ_CMD_NOFWORDS_BITS 9
|
||||
#define ACQ_CMD_NOFWORDS_BITS 9
|
||||
#define ACQ_MEM_REGION_ID_IDX 22
|
||||
#define ACQ_MEM_REGION_ID_BITS 9
|
||||
#define ACQ_MEM_REGION_ID_BITS 9
|
||||
#define ACQ_PACKET_LENGTH_TOKEN_MSB 21
|
||||
#define ACQ_PACKET_LENGTH_TOKEN_LSB 13
|
||||
#define ACQ_PACKET_DATA_FORMAT_ID_TOKEN_MSB 9
|
||||
|
@ -109,11 +109,10 @@
|
|||
#define ACQ_PACKET_MEM_REGION_ID_TOKEN_MSB 12 /* only for capt_end_of_packet_written */
|
||||
#define ACQ_PACKET_MEM_REGION_ID_TOKEN_LSB 4 /* only for capt_end_of_packet_written */
|
||||
|
||||
|
||||
/* Command tokens IDs */
|
||||
#define ACQ_READ_REGION_AUTO_INCR_TOKEN_ID 0 //0000b
|
||||
#define ACQ_READ_REGION_TOKEN_ID 1 //0001b
|
||||
#define ACQ_READ_REGION_SOP_TOKEN_ID 2 //0010b
|
||||
#define ACQ_READ_REGION_SOP_TOKEN_ID 2 //0010b
|
||||
#define ACQ_INIT_TOKEN_ID 8 //1000b
|
||||
|
||||
/* Acknowledge token IDs */
|
||||
|
@ -128,18 +127,17 @@
|
|||
#define ACQ_TOKEN_NOFWORDS_MSB 21
|
||||
#define ACQ_TOKEN_NOFWORDS_LSB 13
|
||||
#define ACQ_TOKEN_STARTADDR_MSB 12
|
||||
#define ACQ_TOKEN_STARTADDR_LSB 4
|
||||
|
||||
#define ACQ_TOKEN_STARTADDR_LSB 4
|
||||
|
||||
/* --------------------------------------------------*/
|
||||
/* MIPI */
|
||||
/* --------------------------------------------------*/
|
||||
|
||||
#define WORD_COUNT_WIDTH 16
|
||||
#define PKT_CODE_WIDTH 6
|
||||
#define CHN_NO_WIDTH 2
|
||||
#define PKT_CODE_WIDTH 6
|
||||
#define CHN_NO_WIDTH 2
|
||||
#define ERROR_INFO_WIDTH 8
|
||||
|
||||
|
||||
#define LONG_PKTCODE_MAX 63
|
||||
#define LONG_PKTCODE_MIN 16
|
||||
#define SHORT_PKTCODE_MAX 15
|
||||
|
@ -156,7 +154,6 @@
|
|||
#define ACQ_LINE_PAYLOAD 4
|
||||
#define ACQ_GEN_SH_PKT 5
|
||||
|
||||
|
||||
/* bit definition */
|
||||
#define ACQ_PKT_TYPE_IDX 16
|
||||
#define ACQ_PKT_TYPE_BITS 6
|
||||
|
@ -174,51 +171,49 @@
|
|||
#define ACQ_ACK_PKT_LEN_IDX 4
|
||||
#define ACQ_ACK_PKT_LEN_BITS 16
|
||||
|
||||
|
||||
/* --------------------------------------------------*/
|
||||
/* Packet Data Type */
|
||||
/* --------------------------------------------------*/
|
||||
|
||||
|
||||
#define ACQ_YUV420_8_DATA 24 /* 01 1000 YUV420 8-bit */
|
||||
#define ACQ_YUV420_10_DATA 25 /* 01 1001 YUV420 10-bit */
|
||||
#define ACQ_YUV420_8L_DATA 26 /* 01 1010 YUV420 8-bit legacy */
|
||||
#define ACQ_YUV422_8_DATA 30 /* 01 1110 YUV422 8-bit */
|
||||
#define ACQ_YUV422_10_DATA 31 /* 01 1111 YUV422 10-bit */
|
||||
#define ACQ_RGB444_DATA 32 /* 10 0000 RGB444 */
|
||||
#define ACQ_RGB555_DATA 33 /* 10 0001 RGB555 */
|
||||
#define ACQ_RGB565_DATA 34 /* 10 0010 RGB565 */
|
||||
#define ACQ_RGB666_DATA 35 /* 10 0011 RGB666 */
|
||||
#define ACQ_RGB888_DATA 36 /* 10 0100 RGB888 */
|
||||
#define ACQ_RAW6_DATA 40 /* 10 1000 RAW6 */
|
||||
#define ACQ_RAW7_DATA 41 /* 10 1001 RAW7 */
|
||||
#define ACQ_RAW8_DATA 42 /* 10 1010 RAW8 */
|
||||
#define ACQ_RAW10_DATA 43 /* 10 1011 RAW10 */
|
||||
#define ACQ_RAW12_DATA 44 /* 10 1100 RAW12 */
|
||||
#define ACQ_RAW14_DATA 45 /* 10 1101 RAW14 */
|
||||
#define ACQ_USR_DEF_1_DATA 48 /* 11 0000 JPEG [User Defined 8-bit Data Type 1] */
|
||||
#define ACQ_USR_DEF_2_DATA 49 /* 11 0001 User Defined 8-bit Data Type 2 */
|
||||
#define ACQ_USR_DEF_3_DATA 50 /* 11 0010 User Defined 8-bit Data Type 3 */
|
||||
#define ACQ_USR_DEF_4_DATA 51 /* 11 0011 User Defined 8-bit Data Type 4 */
|
||||
#define ACQ_USR_DEF_5_DATA 52 /* 11 0100 User Defined 8-bit Data Type 5 */
|
||||
#define ACQ_USR_DEF_6_DATA 53 /* 11 0101 User Defined 8-bit Data Type 6 */
|
||||
#define ACQ_USR_DEF_7_DATA 54 /* 11 0110 User Defined 8-bit Data Type 7 */
|
||||
#define ACQ_USR_DEF_8_DATA 55 /* 11 0111 User Defined 8-bit Data Type 8 */
|
||||
#define ACQ_Emb_DATA 18 /* 01 0010 embedded eight bit non image data */
|
||||
#define ACQ_SOF_DATA 0 /* 00 0000 frame start */
|
||||
#define ACQ_EOF_DATA 1 /* 00 0001 frame end */
|
||||
#define ACQ_SOL_DATA 2 /* 00 0010 line start */
|
||||
#define ACQ_EOL_DATA 3 /* 00 0011 line end */
|
||||
#define ACQ_GEN_SH1_DATA 8 /* 00 1000 Generic Short Packet Code 1 */
|
||||
#define ACQ_GEN_SH2_DATA 9 /* 00 1001 Generic Short Packet Code 2 */
|
||||
#define ACQ_GEN_SH3_DATA 10 /* 00 1010 Generic Short Packet Code 3 */
|
||||
#define ACQ_GEN_SH4_DATA 11 /* 00 1011 Generic Short Packet Code 4 */
|
||||
#define ACQ_GEN_SH5_DATA 12 /* 00 1100 Generic Short Packet Code 5 */
|
||||
#define ACQ_GEN_SH6_DATA 13 /* 00 1101 Generic Short Packet Code 6 */
|
||||
#define ACQ_GEN_SH7_DATA 14 /* 00 1110 Generic Short Packet Code 7 */
|
||||
#define ACQ_GEN_SH8_DATA 15 /* 00 1111 Generic Short Packet Code 8 */
|
||||
#define ACQ_YUV420_8_CSPS_DATA 28 /* 01 1100 YUV420 8-bit (Chroma Shifted Pixel Sampling) */
|
||||
#define ACQ_YUV420_10_CSPS_DATA 29 /* 01 1101 YUV420 10-bit (Chroma Shifted Pixel Sampling) */
|
||||
#define ACQ_RGB555_DATA 33 /* 10 0001 RGB555 */
|
||||
#define ACQ_RGB565_DATA 34 /* 10 0010 RGB565 */
|
||||
#define ACQ_RGB666_DATA 35 /* 10 0011 RGB666 */
|
||||
#define ACQ_RGB888_DATA 36 /* 10 0100 RGB888 */
|
||||
#define ACQ_RAW6_DATA 40 /* 10 1000 RAW6 */
|
||||
#define ACQ_RAW7_DATA 41 /* 10 1001 RAW7 */
|
||||
#define ACQ_RAW8_DATA 42 /* 10 1010 RAW8 */
|
||||
#define ACQ_RAW10_DATA 43 /* 10 1011 RAW10 */
|
||||
#define ACQ_RAW12_DATA 44 /* 10 1100 RAW12 */
|
||||
#define ACQ_RAW14_DATA 45 /* 10 1101 RAW14 */
|
||||
#define ACQ_USR_DEF_1_DATA 48 /* 11 0000 JPEG [User Defined 8-bit Data Type 1] */
|
||||
#define ACQ_USR_DEF_2_DATA 49 /* 11 0001 User Defined 8-bit Data Type 2 */
|
||||
#define ACQ_USR_DEF_3_DATA 50 /* 11 0010 User Defined 8-bit Data Type 3 */
|
||||
#define ACQ_USR_DEF_4_DATA 51 /* 11 0011 User Defined 8-bit Data Type 4 */
|
||||
#define ACQ_USR_DEF_5_DATA 52 /* 11 0100 User Defined 8-bit Data Type 5 */
|
||||
#define ACQ_USR_DEF_6_DATA 53 /* 11 0101 User Defined 8-bit Data Type 6 */
|
||||
#define ACQ_USR_DEF_7_DATA 54 /* 11 0110 User Defined 8-bit Data Type 7 */
|
||||
#define ACQ_USR_DEF_8_DATA 55 /* 11 0111 User Defined 8-bit Data Type 8 */
|
||||
#define ACQ_Emb_DATA 18 /* 01 0010 embedded eight bit non image data */
|
||||
#define ACQ_SOF_DATA 0 /* 00 0000 frame start */
|
||||
#define ACQ_EOF_DATA 1 /* 00 0001 frame end */
|
||||
#define ACQ_SOL_DATA 2 /* 00 0010 line start */
|
||||
#define ACQ_EOL_DATA 3 /* 00 0011 line end */
|
||||
#define ACQ_GEN_SH1_DATA 8 /* 00 1000 Generic Short Packet Code 1 */
|
||||
#define ACQ_GEN_SH2_DATA 9 /* 00 1001 Generic Short Packet Code 2 */
|
||||
#define ACQ_GEN_SH3_DATA 10 /* 00 1010 Generic Short Packet Code 3 */
|
||||
#define ACQ_GEN_SH4_DATA 11 /* 00 1011 Generic Short Packet Code 4 */
|
||||
#define ACQ_GEN_SH5_DATA 12 /* 00 1100 Generic Short Packet Code 5 */
|
||||
#define ACQ_GEN_SH6_DATA 13 /* 00 1101 Generic Short Packet Code 6 */
|
||||
#define ACQ_GEN_SH7_DATA 14 /* 00 1110 Generic Short Packet Code 7 */
|
||||
#define ACQ_GEN_SH8_DATA 15 /* 00 1111 Generic Short Packet Code 8 */
|
||||
#define ACQ_YUV420_8_CSPS_DATA 28 /* 01 1100 YUV420 8-bit (Chroma Shifted Pixel Sampling) */
|
||||
#define ACQ_YUV420_10_CSPS_DATA 29 /* 01 1101 YUV420 10-bit (Chroma Shifted Pixel Sampling) */
|
||||
#define ACQ_RESERVED_DATA_TYPE_MIN 56
|
||||
#define ACQ_RESERVED_DATA_TYPE_MAX 63
|
||||
#define ACQ_GEN_LONG_RESERVED_DATA_TYPE_MIN 19
|
||||
|
@ -231,4 +226,4 @@
|
|||
|
||||
/* --------------------------------------------------*/
|
||||
|
||||
#endif /* _isp_acquisition_defs_h */
|
||||
#endif /* _isp_acquisition_defs_h */
|
||||
|
|
|
@ -16,14 +16,14 @@
|
|||
#define _isp_capture_defs_h
|
||||
|
||||
#define _ISP_CAPTURE_REG_ALIGN 4 /* assuming 32 bit control bus width */
|
||||
#define _ISP_CAPTURE_BITS_PER_ELEM 32 /* only for data, not SOP */
|
||||
#define _ISP_CAPTURE_BYTES_PER_ELEM (_ISP_CAPTURE_BITS_PER_ELEM/8 )
|
||||
#define _ISP_CAPTURE_BYTES_PER_WORD 32 /* 256/8 */
|
||||
#define _ISP_CAPTURE_ELEM_PER_WORD _ISP_CAPTURE_BYTES_PER_WORD / _ISP_CAPTURE_BYTES_PER_ELEM
|
||||
#define _ISP_CAPTURE_BITS_PER_ELEM 32 /* only for data, not SOP */
|
||||
#define _ISP_CAPTURE_BYTES_PER_ELEM (_ISP_CAPTURE_BITS_PER_ELEM / 8)
|
||||
#define _ISP_CAPTURE_BYTES_PER_WORD 32 /* 256/8 */
|
||||
#define _ISP_CAPTURE_ELEM_PER_WORD _ISP_CAPTURE_BYTES_PER_WORD / _ISP_CAPTURE_BYTES_PER_ELEM
|
||||
|
||||
//#define CAPT_RCV_ACK 1
|
||||
//#define CAPT_WRT_ACK 2
|
||||
//#define CAPT_IRQ_ACK 3
|
||||
//#define CAPT_WRT_ACK 2
|
||||
//#define CAPT_IRQ_ACK 3
|
||||
|
||||
/* --------------------------------------------------*/
|
||||
|
||||
|
@ -38,25 +38,25 @@
|
|||
|
||||
// Register id's of MMIO slave accesible registers
|
||||
#define CAPT_START_MODE_REG_ID 0
|
||||
#define CAPT_START_ADDR_REG_ID 1
|
||||
#define CAPT_MEM_REGION_SIZE_REG_ID 2
|
||||
#define CAPT_NUM_MEM_REGIONS_REG_ID 3
|
||||
#define CAPT_INIT_REG_ID 4
|
||||
#define CAPT_START_ADDR_REG_ID 1
|
||||
#define CAPT_MEM_REGION_SIZE_REG_ID 2
|
||||
#define CAPT_NUM_MEM_REGIONS_REG_ID 3
|
||||
#define CAPT_INIT_REG_ID 4
|
||||
#define CAPT_START_REG_ID 5
|
||||
#define CAPT_STOP_REG_ID 6
|
||||
#define CAPT_STOP_REG_ID 6
|
||||
|
||||
#define CAPT_PACKET_LENGTH_REG_ID 7
|
||||
#define CAPT_RECEIVED_LENGTH_REG_ID 8
|
||||
#define CAPT_RECEIVED_SHORT_PACKETS_REG_ID 9
|
||||
#define CAPT_RECEIVED_LONG_PACKETS_REG_ID 10
|
||||
#define CAPT_LAST_COMMAND_REG_ID 11
|
||||
#define CAPT_RECEIVED_LENGTH_REG_ID 8
|
||||
#define CAPT_RECEIVED_SHORT_PACKETS_REG_ID 9
|
||||
#define CAPT_RECEIVED_LONG_PACKETS_REG_ID 10
|
||||
#define CAPT_LAST_COMMAND_REG_ID 11
|
||||
#define CAPT_NEXT_COMMAND_REG_ID 12
|
||||
#define CAPT_LAST_ACKNOWLEDGE_REG_ID 13
|
||||
#define CAPT_NEXT_ACKNOWLEDGE_REG_ID 14
|
||||
#define CAPT_FSM_STATE_INFO_REG_ID 15
|
||||
|
||||
// Register width
|
||||
#define CAPT_START_MODE_REG_WIDTH 1
|
||||
#define CAPT_START_MODE_REG_WIDTH 1
|
||||
#define CAPT_START_ADDR_REG_WIDTH 9
|
||||
#define CAPT_MEM_REGION_SIZE_REG_WIDTH 9
|
||||
#define CAPT_NUM_MEM_REGIONS_REG_WIDTH 9
|
||||
|
@ -71,25 +71,24 @@
|
|||
#define CAPT_WRITE2MEM_FSM_STATE_BITS 2
|
||||
#define CAPT_SYNCHRONIZER_FSM_STATE_BITS 3
|
||||
|
||||
|
||||
#define CAPT_PACKET_LENGTH_REG_WIDTH 17
|
||||
#define CAPT_RECEIVED_LENGTH_REG_WIDTH 17
|
||||
#define CAPT_RECEIVED_LENGTH_REG_WIDTH 17
|
||||
#define CAPT_RECEIVED_SHORT_PACKETS_REG_WIDTH 32
|
||||
#define CAPT_RECEIVED_LONG_PACKETS_REG_WIDTH 32
|
||||
#define CAPT_LAST_COMMAND_REG_WIDTH 32
|
||||
/* #define CAPT_NEXT_COMMAND_REG_WIDTH 32 */
|
||||
/* #define CAPT_NEXT_COMMAND_REG_WIDTH 32 */
|
||||
#define CAPT_LAST_ACKNOWLEDGE_REG_WIDTH 32
|
||||
#define CAPT_NEXT_ACKNOWLEDGE_REG_WIDTH 32
|
||||
#define CAPT_FSM_STATE_INFO_REG_WIDTH ((CAPT_WRITE2MEM_FSM_STATE_BITS * 3) + (CAPT_SYNCHRONIZER_FSM_STATE_BITS * 3))
|
||||
|
||||
#define CAPT_INIT_RESTART_MEM_ADDR_WIDTH 9
|
||||
#define CAPT_INIT_RESTART_MEM_REGION_WIDTH 9
|
||||
#define CAPT_INIT_RESTART_MEM_ADDR_WIDTH 9
|
||||
#define CAPT_INIT_RESTART_MEM_REGION_WIDTH 9
|
||||
|
||||
/* register reset value */
|
||||
#define CAPT_START_MODE_REG_RSTVAL 0
|
||||
#define CAPT_START_MODE_REG_RSTVAL 0
|
||||
#define CAPT_START_ADDR_REG_RSTVAL 0
|
||||
#define CAPT_MEM_REGION_SIZE_REG_RSTVAL 128
|
||||
#define CAPT_NUM_MEM_REGIONS_REG_RSTVAL 3
|
||||
#define CAPT_NUM_MEM_REGIONS_REG_RSTVAL 3
|
||||
#define CAPT_INIT_REG_RSTVAL 0
|
||||
|
||||
#define CAPT_START_REG_RSTVAL 0
|
||||
|
@ -115,7 +114,6 @@
|
|||
#define CAPT_INIT_RESTART_MEM_REGION_LSB 13
|
||||
#define CAPT_INIT_RESTART_MEM_REGION_MSB 21
|
||||
|
||||
|
||||
#define CAPT_INIT_RST_REG_IDX CAPT_INIT_RST_REG_BIT
|
||||
#define CAPT_INIT_RST_REG_BITS 1
|
||||
#define CAPT_INIT_FLUSH_IDX CAPT_INIT_FLUSH_BIT
|
||||
|
@ -123,29 +121,27 @@
|
|||
#define CAPT_INIT_RESYNC_IDX CAPT_INIT_RESYNC_BIT
|
||||
#define CAPT_INIT_RESYNC_BITS 1
|
||||
#define CAPT_INIT_RESTART_IDX CAPT_INIT_RESTART_BIT
|
||||
#define CAPT_INIT_RESTART_BITS 1
|
||||
#define CAPT_INIT_RESTART_BITS 1
|
||||
#define CAPT_INIT_RESTART_MEM_ADDR_IDX CAPT_INIT_RESTART_MEM_ADDR_LSB
|
||||
#define CAPT_INIT_RESTART_MEM_ADDR_BITS (CAPT_INIT_RESTART_MEM_ADDR_MSB - CAPT_INIT_RESTART_MEM_ADDR_LSB + 1)
|
||||
#define CAPT_INIT_RESTART_MEM_REGION_IDX CAPT_INIT_RESTART_MEM_REGION_LSB
|
||||
#define CAPT_INIT_RESTART_MEM_REGION_BITS (CAPT_INIT_RESTART_MEM_REGION_MSB - CAPT_INIT_RESTART_MEM_REGION_LSB + 1)
|
||||
|
||||
|
||||
|
||||
/* --------------------------------------------------*/
|
||||
/* TOKEN INFO */
|
||||
/* --------------------------------------------------*/
|
||||
#define CAPT_TOKEN_ID_LSB 0
|
||||
#define CAPT_TOKEN_ID_MSB 3
|
||||
#define CAPT_TOKEN_ID_MSB 3
|
||||
#define CAPT_TOKEN_WIDTH (CAPT_TOKEN_ID_MSB - CAPT_TOKEN_ID_LSB + 1) /* 4 */
|
||||
|
||||
/* Command tokens IDs */
|
||||
#define CAPT_START_TOKEN_ID 0 /* 0000b */
|
||||
#define CAPT_STOP_TOKEN_ID 1 /* 0001b */
|
||||
#define CAPT_FREEZE_TOKEN_ID 2 /* 0010b */
|
||||
#define CAPT_FREEZE_TOKEN_ID 2 /* 0010b */
|
||||
#define CAPT_RESUME_TOKEN_ID 3 /* 0011b */
|
||||
#define CAPT_INIT_TOKEN_ID 8 /* 1000b */
|
||||
|
||||
#define CAPT_START_TOKEN_BIT 0
|
||||
#define CAPT_START_TOKEN_BIT 0
|
||||
#define CAPT_STOP_TOKEN_BIT 0
|
||||
#define CAPT_FREEZE_TOKEN_BIT 0
|
||||
#define CAPT_RESUME_TOKEN_BIT 0
|
||||
|
@ -169,8 +165,8 @@
|
|||
#define CAPT_PACKET_DATA_FORMAT_ID_TOKEN_LSB 20
|
||||
#define CAPT_PACKET_CH_ID_TOKEN_MSB 27
|
||||
#define CAPT_PACKET_CH_ID_TOKEN_LSB 26
|
||||
#define CAPT_PACKET_MEM_REGION_ID_TOKEN_MSB 29
|
||||
#define CAPT_PACKET_MEM_REGION_ID_TOKEN_LSB 21
|
||||
#define CAPT_PACKET_MEM_REGION_ID_TOKEN_MSB 29
|
||||
#define CAPT_PACKET_MEM_REGION_ID_TOKEN_LSB 21
|
||||
|
||||
/* bit definition */
|
||||
#define CAPT_CMD_IDX CAPT_TOKEN_ID_LSB
|
||||
|
@ -208,21 +204,19 @@
|
|||
#define CAPT_INIT_TOKEN_INIT_IDX 4
|
||||
#define CAPT_INIT_TOKEN_INIT_BITS 22
|
||||
|
||||
|
||||
/* --------------------------------------------------*/
|
||||
/* MIPI */
|
||||
/* --------------------------------------------------*/
|
||||
|
||||
#define CAPT_WORD_COUNT_WIDTH 16
|
||||
#define CAPT_PKT_CODE_WIDTH 6
|
||||
#define CAPT_CHN_NO_WIDTH 2
|
||||
#define CAPT_ERROR_INFO_WIDTH 8
|
||||
#define CAPT_WORD_COUNT_WIDTH 16
|
||||
#define CAPT_PKT_CODE_WIDTH 6
|
||||
#define CAPT_CHN_NO_WIDTH 2
|
||||
#define CAPT_ERROR_INFO_WIDTH 8
|
||||
|
||||
#define LONG_PKTCODE_MAX 63
|
||||
#define LONG_PKTCODE_MIN 16
|
||||
#define SHORT_PKTCODE_MAX 15
|
||||
|
||||
|
||||
/* --------------------------------------------------*/
|
||||
/* Packet Info */
|
||||
/* --------------------------------------------------*/
|
||||
|
@ -233,7 +227,6 @@
|
|||
#define CAPT_LINE_PAYLOAD 4
|
||||
#define CAPT_GEN_SH_PKT 5
|
||||
|
||||
|
||||
/* --------------------------------------------------*/
|
||||
/* Packet Data Type */
|
||||
/* --------------------------------------------------*/
|
||||
|
@ -244,39 +237,39 @@
|
|||
#define CAPT_YUV422_8_DATA 30 /* 01 1110 YUV422 8-bit */
|
||||
#define CAPT_YUV422_10_DATA 31 /* 01 1111 YUV422 10-bit */
|
||||
#define CAPT_RGB444_DATA 32 /* 10 0000 RGB444 */
|
||||
#define CAPT_RGB555_DATA 33 /* 10 0001 RGB555 */
|
||||
#define CAPT_RGB565_DATA 34 /* 10 0010 RGB565 */
|
||||
#define CAPT_RGB666_DATA 35 /* 10 0011 RGB666 */
|
||||
#define CAPT_RGB888_DATA 36 /* 10 0100 RGB888 */
|
||||
#define CAPT_RAW6_DATA 40 /* 10 1000 RAW6 */
|
||||
#define CAPT_RAW7_DATA 41 /* 10 1001 RAW7 */
|
||||
#define CAPT_RAW8_DATA 42 /* 10 1010 RAW8 */
|
||||
#define CAPT_RAW10_DATA 43 /* 10 1011 RAW10 */
|
||||
#define CAPT_RAW12_DATA 44 /* 10 1100 RAW12 */
|
||||
#define CAPT_RAW14_DATA 45 /* 10 1101 RAW14 */
|
||||
#define CAPT_USR_DEF_1_DATA 48 /* 11 0000 JPEG [User Defined 8-bit Data Type 1] */
|
||||
#define CAPT_USR_DEF_2_DATA 49 /* 11 0001 User Defined 8-bit Data Type 2 */
|
||||
#define CAPT_USR_DEF_3_DATA 50 /* 11 0010 User Defined 8-bit Data Type 3 */
|
||||
#define CAPT_USR_DEF_4_DATA 51 /* 11 0011 User Defined 8-bit Data Type 4 */
|
||||
#define CAPT_USR_DEF_5_DATA 52 /* 11 0100 User Defined 8-bit Data Type 5 */
|
||||
#define CAPT_USR_DEF_6_DATA 53 /* 11 0101 User Defined 8-bit Data Type 6 */
|
||||
#define CAPT_USR_DEF_7_DATA 54 /* 11 0110 User Defined 8-bit Data Type 7 */
|
||||
#define CAPT_USR_DEF_8_DATA 55 /* 11 0111 User Defined 8-bit Data Type 8 */
|
||||
#define CAPT_Emb_DATA 18 /* 01 0010 embedded eight bit non image data */
|
||||
#define CAPT_SOF_DATA 0 /* 00 0000 frame start */
|
||||
#define CAPT_EOF_DATA 1 /* 00 0001 frame end */
|
||||
#define CAPT_SOL_DATA 2 /* 00 0010 line start */
|
||||
#define CAPT_EOL_DATA 3 /* 00 0011 line end */
|
||||
#define CAPT_GEN_SH1_DATA 8 /* 00 1000 Generic Short Packet Code 1 */
|
||||
#define CAPT_GEN_SH2_DATA 9 /* 00 1001 Generic Short Packet Code 2 */
|
||||
#define CAPT_GEN_SH3_DATA 10 /* 00 1010 Generic Short Packet Code 3 */
|
||||
#define CAPT_GEN_SH4_DATA 11 /* 00 1011 Generic Short Packet Code 4 */
|
||||
#define CAPT_GEN_SH5_DATA 12 /* 00 1100 Generic Short Packet Code 5 */
|
||||
#define CAPT_GEN_SH6_DATA 13 /* 00 1101 Generic Short Packet Code 6 */
|
||||
#define CAPT_GEN_SH7_DATA 14 /* 00 1110 Generic Short Packet Code 7 */
|
||||
#define CAPT_GEN_SH8_DATA 15 /* 00 1111 Generic Short Packet Code 8 */
|
||||
#define CAPT_YUV420_8_CSPS_DATA 28 /* 01 1100 YUV420 8-bit (Chroma Shifted Pixel Sampling) */
|
||||
#define CAPT_YUV420_10_CSPS_DATA 29 /* 01 1101 YUV420 10-bit (Chroma Shifted Pixel Sampling) */
|
||||
#define CAPT_RGB555_DATA 33 /* 10 0001 RGB555 */
|
||||
#define CAPT_RGB565_DATA 34 /* 10 0010 RGB565 */
|
||||
#define CAPT_RGB666_DATA 35 /* 10 0011 RGB666 */
|
||||
#define CAPT_RGB888_DATA 36 /* 10 0100 RGB888 */
|
||||
#define CAPT_RAW6_DATA 40 /* 10 1000 RAW6 */
|
||||
#define CAPT_RAW7_DATA 41 /* 10 1001 RAW7 */
|
||||
#define CAPT_RAW8_DATA 42 /* 10 1010 RAW8 */
|
||||
#define CAPT_RAW10_DATA 43 /* 10 1011 RAW10 */
|
||||
#define CAPT_RAW12_DATA 44 /* 10 1100 RAW12 */
|
||||
#define CAPT_RAW14_DATA 45 /* 10 1101 RAW14 */
|
||||
#define CAPT_USR_DEF_1_DATA 48 /* 11 0000 JPEG [User Defined 8-bit Data Type 1] */
|
||||
#define CAPT_USR_DEF_2_DATA 49 /* 11 0001 User Defined 8-bit Data Type 2 */
|
||||
#define CAPT_USR_DEF_3_DATA 50 /* 11 0010 User Defined 8-bit Data Type 3 */
|
||||
#define CAPT_USR_DEF_4_DATA 51 /* 11 0011 User Defined 8-bit Data Type 4 */
|
||||
#define CAPT_USR_DEF_5_DATA 52 /* 11 0100 User Defined 8-bit Data Type 5 */
|
||||
#define CAPT_USR_DEF_6_DATA 53 /* 11 0101 User Defined 8-bit Data Type 6 */
|
||||
#define CAPT_USR_DEF_7_DATA 54 /* 11 0110 User Defined 8-bit Data Type 7 */
|
||||
#define CAPT_USR_DEF_8_DATA 55 /* 11 0111 User Defined 8-bit Data Type 8 */
|
||||
#define CAPT_Emb_DATA 18 /* 01 0010 embedded eight bit non image data */
|
||||
#define CAPT_SOF_DATA 0 /* 00 0000 frame start */
|
||||
#define CAPT_EOF_DATA 1 /* 00 0001 frame end */
|
||||
#define CAPT_SOL_DATA 2 /* 00 0010 line start */
|
||||
#define CAPT_EOL_DATA 3 /* 00 0011 line end */
|
||||
#define CAPT_GEN_SH1_DATA 8 /* 00 1000 Generic Short Packet Code 1 */
|
||||
#define CAPT_GEN_SH2_DATA 9 /* 00 1001 Generic Short Packet Code 2 */
|
||||
#define CAPT_GEN_SH3_DATA 10 /* 00 1010 Generic Short Packet Code 3 */
|
||||
#define CAPT_GEN_SH4_DATA 11 /* 00 1011 Generic Short Packet Code 4 */
|
||||
#define CAPT_GEN_SH5_DATA 12 /* 00 1100 Generic Short Packet Code 5 */
|
||||
#define CAPT_GEN_SH6_DATA 13 /* 00 1101 Generic Short Packet Code 6 */
|
||||
#define CAPT_GEN_SH7_DATA 14 /* 00 1110 Generic Short Packet Code 7 */
|
||||
#define CAPT_GEN_SH8_DATA 15 /* 00 1111 Generic Short Packet Code 8 */
|
||||
#define CAPT_YUV420_8_CSPS_DATA 28 /* 01 1100 YUV420 8-bit (Chroma Shifted Pixel Sampling) */
|
||||
#define CAPT_YUV420_10_CSPS_DATA 29 /* 01 1101 YUV420 10-bit (Chroma Shifted Pixel Sampling) */
|
||||
#define CAPT_RESERVED_DATA_TYPE_MIN 56
|
||||
#define CAPT_RESERVED_DATA_TYPE_MAX 63
|
||||
#define CAPT_GEN_LONG_RESERVED_DATA_TYPE_MIN 19
|
||||
|
@ -287,7 +280,6 @@
|
|||
#define CAPT_RAW_RESERVED_DATA_TYPE_MIN 46
|
||||
#define CAPT_RAW_RESERVED_DATA_TYPE_MAX 47
|
||||
|
||||
|
||||
/* --------------------------------------------------*/
|
||||
/* Capture Unit State */
|
||||
/* --------------------------------------------------*/
|
||||
|
@ -299,12 +291,6 @@
|
|||
#define CAPT_FREEZE 5
|
||||
#define CAPT_RUN 6
|
||||
|
||||
|
||||
/* --------------------------------------------------*/
|
||||
|
||||
#endif /* _isp_capture_defs_h */
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif /* _isp_capture_defs_h */
|
||||
|
|
|
@ -19,4 +19,4 @@
|
|||
|
||||
#define _HRT_TIMED_CONTROLLER_REG_ALIGN 4
|
||||
|
||||
#endif /* _timed_controller_defs_h */
|
||||
#endif /* _timed_controller_defs_h */
|
||||
|
|
|
@ -40,35 +40,35 @@
|
|||
#define hrt_host_type_of_ulong unsigned long
|
||||
#define hrt_host_type_of_ptr void*
|
||||
|
||||
#define HRT_TYPE_BYTES(cell, type) (HRT_TYPE_BITS(cell, type)/8)
|
||||
#define HRT_TYPE_BYTES(cell, type) (HRT_TYPE_BITS(cell, type) / 8)
|
||||
#define HRT_HOST_TYPE(cell_type) HRTCAT(hrt_host_type_of_, cell_type)
|
||||
#define HRT_INT_TYPE(type) HRTCAT(hrt_int_type_of_, type)
|
||||
|
||||
#define hrt_scalar_store(cell, type, var, data) \
|
||||
HRTCAT(hrt_mem_store_,HRT_TYPE_BITS(cell, type))(\
|
||||
HRTCAT(hrt_mem_store_, HRT_TYPE_BITS(cell, type))(\
|
||||
cell, \
|
||||
HRTCAT(HIVE_MEM_,var), \
|
||||
HRTCAT(HIVE_ADDR_,var), \
|
||||
HRTCAT(HIVE_MEM_, var), \
|
||||
HRTCAT(HIVE_ADDR_, var), \
|
||||
(HRT_INT_TYPE(type))(data))
|
||||
|
||||
#define hrt_scalar_load(cell, type, var) \
|
||||
(HRT_HOST_TYPE(type))(HRTCAT4(_hrt_mem_load_,HRT_PROC_TYPE(cell),_,type) ( \
|
||||
(HRT_HOST_TYPE(type))(HRTCAT4(_hrt_mem_load_, HRT_PROC_TYPE(cell), _, type) ( \
|
||||
cell, \
|
||||
HRTCAT(HIVE_MEM_,var), \
|
||||
HRTCAT(HIVE_ADDR_,var)))
|
||||
HRTCAT(HIVE_MEM_, var), \
|
||||
HRTCAT(HIVE_ADDR_, var)))
|
||||
|
||||
#define hrt_indexed_store(cell, type, array, index, data) \
|
||||
HRTCAT(hrt_mem_store_,HRT_TYPE_BITS(cell, type))(\
|
||||
HRTCAT(hrt_mem_store_, HRT_TYPE_BITS(cell, type))(\
|
||||
cell, \
|
||||
HRTCAT(HIVE_MEM_,array), \
|
||||
(HRTCAT(HIVE_ADDR_,array))+((index)*HRT_TYPE_BYTES(cell, type)), \
|
||||
HRTCAT(HIVE_MEM_, array), \
|
||||
(HRTCAT(HIVE_ADDR_, array)) + ((index) * HRT_TYPE_BYTES(cell, type)), \
|
||||
(HRT_INT_TYPE(type))(data))
|
||||
|
||||
#define hrt_indexed_load(cell, type, array, index) \
|
||||
(HRT_HOST_TYPE(type))(HRTCAT4(_hrt_mem_load_,HRT_PROC_TYPE(cell),_,type) ( \
|
||||
cell, \
|
||||
HRTCAT(HIVE_MEM_,array), \
|
||||
(HRTCAT(HIVE_ADDR_,array))+((index)*HRT_TYPE_BYTES(cell, type))))
|
||||
(HRT_HOST_TYPE(type))(HRTCAT4(_hrt_mem_load_, HRT_PROC_TYPE(cell), _, type) ( \
|
||||
cell, \
|
||||
HRTCAT(HIVE_MEM_, array), \
|
||||
(HRTCAT(HIVE_ADDR_, array)) + ((index) * HRT_TYPE_BYTES(cell, type))))
|
||||
|
||||
#endif /* _HRT_VAR_H */
|
||||
#endif
|
||||
|
|
|
@ -15,7 +15,6 @@
|
|||
#ifndef _sp_map_h_
|
||||
#define _sp_map_h_
|
||||
|
||||
|
||||
#ifndef _hrt_dummy_use_blob_sp
|
||||
#define _hrt_dummy_use_blob_sp()
|
||||
#endif
|
||||
|
|
|
@ -27,8 +27,8 @@ typedef enum {
|
|||
|
||||
typedef struct csi_rx_backend_lut_entry_s csi_rx_backend_lut_entry_t;
|
||||
struct csi_rx_backend_lut_entry_s {
|
||||
uint32_t long_packet_entry;
|
||||
uint32_t short_packet_entry;
|
||||
u32 long_packet_entry;
|
||||
u32 short_packet_entry;
|
||||
};
|
||||
|
||||
typedef struct csi_rx_backend_cfg_s csi_rx_backend_cfg_t;
|
||||
|
@ -41,23 +41,23 @@ struct csi_rx_backend_cfg_s {
|
|||
|
||||
struct {
|
||||
bool comp_enable;
|
||||
uint32_t virtual_channel;
|
||||
uint32_t data_type;
|
||||
uint32_t comp_scheme;
|
||||
uint32_t comp_predictor;
|
||||
uint32_t comp_bit_idx;
|
||||
u32 virtual_channel;
|
||||
u32 data_type;
|
||||
u32 comp_scheme;
|
||||
u32 comp_predictor;
|
||||
u32 comp_bit_idx;
|
||||
} csi_mipi_cfg;
|
||||
};
|
||||
|
||||
typedef struct csi_rx_frontend_cfg_s csi_rx_frontend_cfg_t;
|
||||
struct csi_rx_frontend_cfg_s {
|
||||
uint32_t active_lanes;
|
||||
u32 active_lanes;
|
||||
};
|
||||
|
||||
extern const uint32_t N_SHORT_PACKET_LUT_ENTRIES[N_CSI_RX_BACKEND_ID];
|
||||
extern const uint32_t N_LONG_PACKET_LUT_ENTRIES[N_CSI_RX_BACKEND_ID];
|
||||
extern const uint32_t N_CSI_RX_FE_CTRL_DLANES[N_CSI_RX_FRONTEND_ID];
|
||||
extern const u32 N_SHORT_PACKET_LUT_ENTRIES[N_CSI_RX_BACKEND_ID];
|
||||
extern const u32 N_LONG_PACKET_LUT_ENTRIES[N_CSI_RX_BACKEND_ID];
|
||||
extern const u32 N_CSI_RX_FE_CTRL_DLANES[N_CSI_RX_FRONTEND_ID];
|
||||
/* sid_width for CSI_RX_BACKEND<N>_ID */
|
||||
extern const uint32_t N_CSI_RX_BE_SID_WIDTH[N_CSI_RX_BACKEND_ID];
|
||||
extern const u32 N_CSI_RX_BE_SID_WIDTH[N_CSI_RX_BACKEND_ID];
|
||||
|
||||
#endif /* __CSI_RX_GLOBAL_H_INCLUDED__ */
|
||||
|
|
|
@ -30,8 +30,9 @@ ia_css_configure_iterator(
|
|||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_configure_iterator() enter:\n");
|
||||
|
||||
{
|
||||
unsigned offset = 0;
|
||||
unsigned size = 0;
|
||||
unsigned int offset = 0;
|
||||
unsigned int size = 0;
|
||||
|
||||
if (binary->info->mem_offsets.offsets.config) {
|
||||
size = binary->info->mem_offsets.offsets.config->dmem.iterator.size;
|
||||
offset = binary->info->mem_offsets.offsets.config->dmem.iterator.offset;
|
||||
|
@ -54,8 +55,9 @@ ia_css_configure_copy_output(
|
|||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_configure_copy_output() enter:\n");
|
||||
|
||||
{
|
||||
unsigned offset = 0;
|
||||
unsigned size = 0;
|
||||
unsigned int offset = 0;
|
||||
unsigned int size = 0;
|
||||
|
||||
if (binary->info->mem_offsets.offsets.config) {
|
||||
size = binary->info->mem_offsets.offsets.config->dmem.copy_output.size;
|
||||
offset = binary->info->mem_offsets.offsets.config->dmem.copy_output.offset;
|
||||
|
@ -78,8 +80,9 @@ ia_css_configure_crop(
|
|||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_configure_crop() enter:\n");
|
||||
|
||||
{
|
||||
unsigned offset = 0;
|
||||
unsigned size = 0;
|
||||
unsigned int offset = 0;
|
||||
unsigned int size = 0;
|
||||
|
||||
if (binary->info->mem_offsets.offsets.config) {
|
||||
size = binary->info->mem_offsets.offsets.config->dmem.crop.size;
|
||||
offset = binary->info->mem_offsets.offsets.config->dmem.crop.offset;
|
||||
|
@ -102,8 +105,9 @@ ia_css_configure_fpn(
|
|||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_configure_fpn() enter:\n");
|
||||
|
||||
{
|
||||
unsigned offset = 0;
|
||||
unsigned size = 0;
|
||||
unsigned int offset = 0;
|
||||
unsigned int size = 0;
|
||||
|
||||
if (binary->info->mem_offsets.offsets.config) {
|
||||
size = binary->info->mem_offsets.offsets.config->dmem.fpn.size;
|
||||
offset = binary->info->mem_offsets.offsets.config->dmem.fpn.offset;
|
||||
|
@ -126,8 +130,9 @@ ia_css_configure_dvs(
|
|||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_configure_dvs() enter:\n");
|
||||
|
||||
{
|
||||
unsigned offset = 0;
|
||||
unsigned size = 0;
|
||||
unsigned int offset = 0;
|
||||
unsigned int size = 0;
|
||||
|
||||
if (binary->info->mem_offsets.offsets.config) {
|
||||
size = binary->info->mem_offsets.offsets.config->dmem.dvs.size;
|
||||
offset = binary->info->mem_offsets.offsets.config->dmem.dvs.offset;
|
||||
|
@ -150,8 +155,9 @@ ia_css_configure_qplane(
|
|||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_configure_qplane() enter:\n");
|
||||
|
||||
{
|
||||
unsigned offset = 0;
|
||||
unsigned size = 0;
|
||||
unsigned int offset = 0;
|
||||
unsigned int size = 0;
|
||||
|
||||
if (binary->info->mem_offsets.offsets.config) {
|
||||
size = binary->info->mem_offsets.offsets.config->dmem.qplane.size;
|
||||
offset = binary->info->mem_offsets.offsets.config->dmem.qplane.offset;
|
||||
|
@ -174,8 +180,9 @@ ia_css_configure_output0(
|
|||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_configure_output0() enter:\n");
|
||||
|
||||
{
|
||||
unsigned offset = 0;
|
||||
unsigned size = 0;
|
||||
unsigned int offset = 0;
|
||||
unsigned int size = 0;
|
||||
|
||||
if (binary->info->mem_offsets.offsets.config) {
|
||||
size = binary->info->mem_offsets.offsets.config->dmem.output0.size;
|
||||
offset = binary->info->mem_offsets.offsets.config->dmem.output0.offset;
|
||||
|
@ -198,8 +205,9 @@ ia_css_configure_output1(
|
|||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_configure_output1() enter:\n");
|
||||
|
||||
{
|
||||
unsigned offset = 0;
|
||||
unsigned size = 0;
|
||||
unsigned int offset = 0;
|
||||
unsigned int size = 0;
|
||||
|
||||
if (binary->info->mem_offsets.offsets.config) {
|
||||
size = binary->info->mem_offsets.offsets.config->dmem.output1.size;
|
||||
offset = binary->info->mem_offsets.offsets.config->dmem.output1.offset;
|
||||
|
@ -222,8 +230,9 @@ ia_css_configure_output(
|
|||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_configure_output() enter:\n");
|
||||
|
||||
{
|
||||
unsigned offset = 0;
|
||||
unsigned size = 0;
|
||||
unsigned int offset = 0;
|
||||
unsigned int size = 0;
|
||||
|
||||
if (binary->info->mem_offsets.offsets.config) {
|
||||
size = binary->info->mem_offsets.offsets.config->dmem.output.size;
|
||||
offset = binary->info->mem_offsets.offsets.config->dmem.output.offset;
|
||||
|
@ -247,8 +256,9 @@ ia_css_configure_sc(
|
|||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_configure_sc() enter:\n");
|
||||
|
||||
{
|
||||
unsigned offset = 0;
|
||||
unsigned size = 0;
|
||||
unsigned int offset = 0;
|
||||
unsigned int size = 0;
|
||||
|
||||
if (binary->info->mem_offsets.offsets.config) {
|
||||
size = binary->info->mem_offsets.offsets.config->dmem.sc.size;
|
||||
offset = binary->info->mem_offsets.offsets.config->dmem.sc.offset;
|
||||
|
@ -272,8 +282,9 @@ ia_css_configure_raw(
|
|||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_configure_raw() enter:\n");
|
||||
|
||||
{
|
||||
unsigned offset = 0;
|
||||
unsigned size = 0;
|
||||
unsigned int offset = 0;
|
||||
unsigned int size = 0;
|
||||
|
||||
if (binary->info->mem_offsets.offsets.config) {
|
||||
size = binary->info->mem_offsets.offsets.config->dmem.raw.size;
|
||||
offset = binary->info->mem_offsets.offsets.config->dmem.raw.offset;
|
||||
|
@ -296,8 +307,9 @@ ia_css_configure_tnr(
|
|||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_configure_tnr() enter:\n");
|
||||
|
||||
{
|
||||
unsigned offset = 0;
|
||||
unsigned size = 0;
|
||||
unsigned int offset = 0;
|
||||
unsigned int size = 0;
|
||||
|
||||
if (binary->info->mem_offsets.offsets.config) {
|
||||
size = binary->info->mem_offsets.offsets.config->dmem.tnr.size;
|
||||
offset = binary->info->mem_offsets.offsets.config->dmem.tnr.offset;
|
||||
|
@ -320,8 +332,9 @@ ia_css_configure_ref(
|
|||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_configure_ref() enter:\n");
|
||||
|
||||
{
|
||||
unsigned offset = 0;
|
||||
unsigned size = 0;
|
||||
unsigned int offset = 0;
|
||||
unsigned int size = 0;
|
||||
|
||||
if (binary->info->mem_offsets.offsets.config) {
|
||||
size = binary->info->mem_offsets.offsets.config->dmem.ref.size;
|
||||
offset = binary->info->mem_offsets.offsets.config->dmem.ref.offset;
|
||||
|
@ -344,8 +357,9 @@ ia_css_configure_vf(
|
|||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_configure_vf() enter:\n");
|
||||
|
||||
{
|
||||
unsigned offset = 0;
|
||||
unsigned size = 0;
|
||||
unsigned int offset = 0;
|
||||
unsigned int size = 0;
|
||||
|
||||
if (binary->info->mem_offsets.offsets.config) {
|
||||
size = binary->info->mem_offsets.offsets.config->dmem.vf.size;
|
||||
offset = binary->info->mem_offsets.offsets.config->dmem.vf.offset;
|
||||
|
@ -357,4 +371,3 @@ ia_css_configure_vf(
|
|||
}
|
||||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_configure_vf() leave:\n");
|
||||
}
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -149,8 +149,8 @@ struct ia_css_memory_offsets {
|
|||
|
||||
struct ia_css_pipeline_stage; /* forward declaration */
|
||||
|
||||
extern void (* ia_css_kernel_process_param[IA_CSS_NUM_PARAMETER_IDS])(
|
||||
unsigned pipe_id,
|
||||
extern void (*ia_css_kernel_process_param[IA_CSS_NUM_PARAMETER_IDS])(
|
||||
unsigned int pipe_id,
|
||||
const struct ia_css_pipeline_stage *stage,
|
||||
struct ia_css_isp_parameters *params);
|
||||
|
||||
|
|
|
@ -28,12 +28,11 @@ ia_css_initialize_aa_state(
|
|||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_initialize_aa_state() enter:\n");
|
||||
|
||||
{
|
||||
unsigned size = binary->info->mem_offsets.offsets.state->vmem.aa.size;
|
||||
unsigned offset = binary->info->mem_offsets.offsets.state->vmem.aa.offset;
|
||||
unsigned int size = binary->info->mem_offsets.offsets.state->vmem.aa.size;
|
||||
unsigned int offset = binary->info->mem_offsets.offsets.state->vmem.aa.offset;
|
||||
|
||||
if (size)
|
||||
memset(&binary->mem_params.params[IA_CSS_PARAM_CLASS_STATE][IA_CSS_ISP_VMEM].address[offset], 0, size);
|
||||
|
||||
}
|
||||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_initialize_aa_state() leave:\n");
|
||||
}
|
||||
|
@ -47,16 +46,15 @@ ia_css_initialize_cnr_state(
|
|||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_initialize_cnr_state() enter:\n");
|
||||
|
||||
{
|
||||
unsigned size = binary->info->mem_offsets.offsets.state->vmem.cnr.size;
|
||||
unsigned int size = binary->info->mem_offsets.offsets.state->vmem.cnr.size;
|
||||
|
||||
unsigned offset = binary->info->mem_offsets.offsets.state->vmem.cnr.offset;
|
||||
unsigned int offset = binary->info->mem_offsets.offsets.state->vmem.cnr.offset;
|
||||
|
||||
if (size) {
|
||||
ia_css_init_cnr_state(
|
||||
&binary->mem_params.params[IA_CSS_PARAM_CLASS_STATE][IA_CSS_ISP_VMEM].address[offset],
|
||||
size);
|
||||
}
|
||||
|
||||
}
|
||||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_initialize_cnr_state() leave:\n");
|
||||
}
|
||||
|
@ -70,16 +68,15 @@ ia_css_initialize_cnr2_state(
|
|||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_initialize_cnr2_state() enter:\n");
|
||||
|
||||
{
|
||||
unsigned size = binary->info->mem_offsets.offsets.state->vmem.cnr2.size;
|
||||
unsigned int size = binary->info->mem_offsets.offsets.state->vmem.cnr2.size;
|
||||
|
||||
unsigned offset = binary->info->mem_offsets.offsets.state->vmem.cnr2.offset;
|
||||
unsigned int offset = binary->info->mem_offsets.offsets.state->vmem.cnr2.offset;
|
||||
|
||||
if (size) {
|
||||
ia_css_init_cnr2_state(
|
||||
&binary->mem_params.params[IA_CSS_PARAM_CLASS_STATE][IA_CSS_ISP_VMEM].address[offset],
|
||||
size);
|
||||
}
|
||||
|
||||
}
|
||||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_initialize_cnr2_state() leave:\n");
|
||||
}
|
||||
|
@ -93,16 +90,15 @@ ia_css_initialize_dp_state(
|
|||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_initialize_dp_state() enter:\n");
|
||||
|
||||
{
|
||||
unsigned size = binary->info->mem_offsets.offsets.state->vmem.dp.size;
|
||||
unsigned int size = binary->info->mem_offsets.offsets.state->vmem.dp.size;
|
||||
|
||||
unsigned offset = binary->info->mem_offsets.offsets.state->vmem.dp.offset;
|
||||
unsigned int offset = binary->info->mem_offsets.offsets.state->vmem.dp.offset;
|
||||
|
||||
if (size) {
|
||||
ia_css_init_dp_state(
|
||||
&binary->mem_params.params[IA_CSS_PARAM_CLASS_STATE][IA_CSS_ISP_VMEM].address[offset],
|
||||
size);
|
||||
}
|
||||
|
||||
}
|
||||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_initialize_dp_state() leave:\n");
|
||||
}
|
||||
|
@ -116,16 +112,15 @@ ia_css_initialize_de_state(
|
|||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_initialize_de_state() enter:\n");
|
||||
|
||||
{
|
||||
unsigned size = binary->info->mem_offsets.offsets.state->vmem.de.size;
|
||||
unsigned int size = binary->info->mem_offsets.offsets.state->vmem.de.size;
|
||||
|
||||
unsigned offset = binary->info->mem_offsets.offsets.state->vmem.de.offset;
|
||||
unsigned int offset = binary->info->mem_offsets.offsets.state->vmem.de.offset;
|
||||
|
||||
if (size) {
|
||||
ia_css_init_de_state(
|
||||
&binary->mem_params.params[IA_CSS_PARAM_CLASS_STATE][IA_CSS_ISP_VMEM].address[offset],
|
||||
size);
|
||||
}
|
||||
|
||||
}
|
||||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_initialize_de_state() leave:\n");
|
||||
}
|
||||
|
@ -139,16 +134,15 @@ ia_css_initialize_tnr_state(
|
|||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_initialize_tnr_state() enter:\n");
|
||||
|
||||
{
|
||||
unsigned size = binary->info->mem_offsets.offsets.state->dmem.tnr.size;
|
||||
unsigned int size = binary->info->mem_offsets.offsets.state->dmem.tnr.size;
|
||||
|
||||
unsigned offset = binary->info->mem_offsets.offsets.state->dmem.tnr.offset;
|
||||
unsigned int offset = binary->info->mem_offsets.offsets.state->dmem.tnr.offset;
|
||||
|
||||
if (size) {
|
||||
ia_css_init_tnr_state((struct sh_css_isp_tnr_dmem_state *)
|
||||
&binary->mem_params.params[IA_CSS_PARAM_CLASS_STATE][IA_CSS_ISP_DMEM].address[offset],
|
||||
size);
|
||||
}
|
||||
|
||||
}
|
||||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_initialize_tnr_state() leave:\n");
|
||||
}
|
||||
|
@ -162,16 +156,15 @@ ia_css_initialize_ref_state(
|
|||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_initialize_ref_state() enter:\n");
|
||||
|
||||
{
|
||||
unsigned size = binary->info->mem_offsets.offsets.state->dmem.ref.size;
|
||||
unsigned int size = binary->info->mem_offsets.offsets.state->dmem.ref.size;
|
||||
|
||||
unsigned offset = binary->info->mem_offsets.offsets.state->dmem.ref.offset;
|
||||
unsigned int offset = binary->info->mem_offsets.offsets.state->dmem.ref.offset;
|
||||
|
||||
if (size) {
|
||||
ia_css_init_ref_state((struct sh_css_isp_ref_dmem_state *)
|
||||
&binary->mem_params.params[IA_CSS_PARAM_CLASS_STATE][IA_CSS_ISP_DMEM].address[offset],
|
||||
size);
|
||||
}
|
||||
|
||||
}
|
||||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_initialize_ref_state() leave:\n");
|
||||
}
|
||||
|
@ -185,16 +178,15 @@ ia_css_initialize_ynr_state(
|
|||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_initialize_ynr_state() enter:\n");
|
||||
|
||||
{
|
||||
unsigned size = binary->info->mem_offsets.offsets.state->vmem.ynr.size;
|
||||
unsigned int size = binary->info->mem_offsets.offsets.state->vmem.ynr.size;
|
||||
|
||||
unsigned offset = binary->info->mem_offsets.offsets.state->vmem.ynr.offset;
|
||||
unsigned int offset = binary->info->mem_offsets.offsets.state->vmem.ynr.offset;
|
||||
|
||||
if (size) {
|
||||
ia_css_init_ynr_state(
|
||||
&binary->mem_params.params[IA_CSS_PARAM_CLASS_STATE][IA_CSS_ISP_VMEM].address[offset],
|
||||
size);
|
||||
}
|
||||
|
||||
}
|
||||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "ia_css_initialize_ynr_state() leave:\n");
|
||||
}
|
||||
|
@ -211,4 +203,3 @@ void (* ia_css_kernel_init_state[IA_CSS_NUM_STATE_IDS])(const struct ia_css_bina
|
|||
ia_css_initialize_ref_state,
|
||||
ia_css_initialize_ynr_state,
|
||||
};
|
||||
|
||||
|
|
|
@ -12,29 +12,28 @@
|
|||
* more details.
|
||||
*/
|
||||
|
||||
|
||||
#include "system_global.h"
|
||||
|
||||
const uint32_t N_SHORT_PACKET_LUT_ENTRIES[N_CSI_RX_BACKEND_ID] = {
|
||||
const u32 N_SHORT_PACKET_LUT_ENTRIES[N_CSI_RX_BACKEND_ID] = {
|
||||
4, /* 4 entries at CSI_RX_BACKEND0_ID*/
|
||||
4, /* 4 entries at CSI_RX_BACKEND1_ID*/
|
||||
4 /* 4 entries at CSI_RX_BACKEND2_ID*/
|
||||
};
|
||||
|
||||
const uint32_t N_LONG_PACKET_LUT_ENTRIES[N_CSI_RX_BACKEND_ID] = {
|
||||
const u32 N_LONG_PACKET_LUT_ENTRIES[N_CSI_RX_BACKEND_ID] = {
|
||||
8, /* 8 entries at CSI_RX_BACKEND0_ID*/
|
||||
4, /* 4 entries at CSI_RX_BACKEND1_ID*/
|
||||
4 /* 4 entries at CSI_RX_BACKEND2_ID*/
|
||||
};
|
||||
|
||||
const uint32_t N_CSI_RX_FE_CTRL_DLANES[N_CSI_RX_FRONTEND_ID] = {
|
||||
const u32 N_CSI_RX_FE_CTRL_DLANES[N_CSI_RX_FRONTEND_ID] = {
|
||||
N_CSI_RX_DLANE_ID, /* 4 dlanes for CSI_RX_FR0NTEND0_ID */
|
||||
N_CSI_RX_DLANE_ID, /* 4 dlanes for CSI_RX_FR0NTEND1_ID */
|
||||
N_CSI_RX_DLANE_ID /* 4 dlanes for CSI_RX_FR0NTEND2_ID */
|
||||
};
|
||||
|
||||
/* sid_width for CSI_RX_BACKEND<N>_ID */
|
||||
const uint32_t N_CSI_RX_BE_SID_WIDTH[N_CSI_RX_BACKEND_ID] = {
|
||||
const u32 N_CSI_RX_BE_SID_WIDTH[N_CSI_RX_BACKEND_ID] = {
|
||||
3,
|
||||
2,
|
||||
2
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
#define __CSI_RX_LOCAL_H_INCLUDED__
|
||||
|
||||
#include "csi_rx_global.h"
|
||||
#define N_CSI_RX_BE_MIPI_COMP_FMT_REG 4
|
||||
#define N_CSI_RX_BE_MIPI_COMP_FMT_REG 4
|
||||
#define N_CSI_RX_BE_MIPI_CUSTOM_PEC 12
|
||||
#define N_CSI_RX_BE_SHORT_PKT_LUT 4
|
||||
#define N_CSI_RX_BE_LONG_PKT_LUT 8
|
||||
|
@ -26,36 +26,37 @@ typedef struct csi_rx_be_ctrl_state_s csi_rx_be_ctrl_state_t;
|
|||
/*mipi_backend_custom_mode_pixel_extraction_config*/
|
||||
typedef struct csi_rx_be_ctrl_pec_s csi_rx_be_ctrl_pec_t;
|
||||
|
||||
|
||||
struct csi_rx_fe_ctrl_lane_s {
|
||||
hrt_data termen;
|
||||
hrt_data settle;
|
||||
};
|
||||
|
||||
struct csi_rx_fe_ctrl_state_s {
|
||||
hrt_data enable;
|
||||
hrt_data nof_enable_lanes;
|
||||
hrt_data error_handling;
|
||||
hrt_data status;
|
||||
hrt_data status_dlane_hs;
|
||||
hrt_data status_dlane_lp;
|
||||
csi_rx_fe_ctrl_lane_t clane;
|
||||
csi_rx_fe_ctrl_lane_t dlane[N_CSI_RX_DLANE_ID];
|
||||
hrt_data enable;
|
||||
hrt_data nof_enable_lanes;
|
||||
hrt_data error_handling;
|
||||
hrt_data status;
|
||||
hrt_data status_dlane_hs;
|
||||
hrt_data status_dlane_lp;
|
||||
csi_rx_fe_ctrl_lane_t clane;
|
||||
csi_rx_fe_ctrl_lane_t dlane[N_CSI_RX_DLANE_ID];
|
||||
};
|
||||
|
||||
struct csi_rx_be_ctrl_state_s {
|
||||
hrt_data enable;
|
||||
hrt_data status;
|
||||
hrt_data comp_format_reg[N_CSI_RX_BE_MIPI_COMP_FMT_REG];
|
||||
hrt_data raw16;
|
||||
hrt_data raw18;
|
||||
hrt_data force_raw8;
|
||||
hrt_data irq_status;
|
||||
hrt_data custom_mode_enable;
|
||||
hrt_data custom_mode_data_state;
|
||||
hrt_data pec[N_CSI_RX_BE_MIPI_CUSTOM_PEC];
|
||||
hrt_data custom_mode_valid_eop_config;
|
||||
hrt_data global_lut_disregard_reg;
|
||||
hrt_data packet_status_stall;
|
||||
hrt_data short_packet_lut_entry[N_CSI_RX_BE_SHORT_PKT_LUT];
|
||||
hrt_data long_packet_lut_entry[N_CSI_RX_BE_LONG_PKT_LUT];
|
||||
hrt_data enable;
|
||||
hrt_data status;
|
||||
hrt_data comp_format_reg[N_CSI_RX_BE_MIPI_COMP_FMT_REG];
|
||||
hrt_data raw16;
|
||||
hrt_data raw18;
|
||||
hrt_data force_raw8;
|
||||
hrt_data irq_status;
|
||||
hrt_data custom_mode_enable;
|
||||
hrt_data custom_mode_data_state;
|
||||
hrt_data pec[N_CSI_RX_BE_MIPI_CUSTOM_PEC];
|
||||
hrt_data custom_mode_valid_eop_config;
|
||||
hrt_data global_lut_disregard_reg;
|
||||
hrt_data packet_status_stall;
|
||||
hrt_data short_packet_lut_entry[N_CSI_RX_BE_SHORT_PKT_LUT];
|
||||
hrt_data long_packet_lut_entry[N_CSI_RX_BE_LONG_PKT_LUT];
|
||||
};
|
||||
#endif /* __CSI_RX_LOCAL_H_INCLUDED__ */
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
#include "assert_support.h" /* assert */
|
||||
#include "print_support.h" /* print */
|
||||
|
||||
|
||||
/*****************************************************
|
||||
*
|
||||
* Native command interface (NCI).
|
||||
|
@ -38,7 +37,7 @@ static inline void csi_rx_fe_ctrl_get_state(
|
|||
const csi_rx_frontend_ID_t ID,
|
||||
csi_rx_fe_ctrl_state_t *state)
|
||||
{
|
||||
uint32_t i;
|
||||
u32 i;
|
||||
|
||||
state->enable =
|
||||
csi_rx_fe_ctrl_reg_load(ID, _HRT_CSI_RX_ENABLE_REG_IDX);
|
||||
|
@ -65,7 +64,7 @@ static inline void csi_rx_fe_ctrl_get_state(
|
|||
csi_rx_fe_ctrl_get_dlane_state(
|
||||
ID,
|
||||
i,
|
||||
&(state->dlane[i]));
|
||||
&state->dlane[i]);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -75,16 +74,15 @@ static inline void csi_rx_fe_ctrl_get_state(
|
|||
*/
|
||||
static inline void csi_rx_fe_ctrl_get_dlane_state(
|
||||
const csi_rx_frontend_ID_t ID,
|
||||
const uint32_t lane,
|
||||
const u32 lane,
|
||||
csi_rx_fe_ctrl_lane_t *dlane_state)
|
||||
{
|
||||
|
||||
dlane_state->termen =
|
||||
csi_rx_fe_ctrl_reg_load(ID, _HRT_CSI_RX_DLY_CNT_TERMEN_DLANE_REG_IDX(lane));
|
||||
dlane_state->settle =
|
||||
csi_rx_fe_ctrl_reg_load(ID, _HRT_CSI_RX_DLY_CNT_SETTLE_DLANE_REG_IDX(lane));
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief dump the csi rx fe state.
|
||||
* Refer to "csi_rx_public.h" for details.
|
||||
|
@ -93,24 +91,24 @@ static inline void csi_rx_fe_ctrl_dump_state(
|
|||
const csi_rx_frontend_ID_t ID,
|
||||
csi_rx_fe_ctrl_state_t *state)
|
||||
{
|
||||
uint32_t i;
|
||||
u32 i;
|
||||
|
||||
ia_css_print("CSI RX FE STATE Controller %d Enable state 0x%x \n", ID, state->enable);
|
||||
ia_css_print("CSI RX FE STATE Controller %d No Of enable lanes 0x%x \n", ID, state->nof_enable_lanes);
|
||||
ia_css_print("CSI RX FE STATE Controller %d Error handling 0x%x \n", ID, state->error_handling);
|
||||
ia_css_print("CSI RX FE STATE Controller %d Status 0x%x \n", ID, state->status);
|
||||
ia_css_print("CSI RX FE STATE Controller %d Status Dlane HS 0x%x \n", ID, state->status_dlane_hs);
|
||||
ia_css_print("CSI RX FE STATE Controller %d Status Dlane LP 0x%x \n", ID, state->status_dlane_lp);
|
||||
ia_css_print("CSI RX FE STATE Controller %d Status term enable LP 0x%x \n", ID, state->clane.termen);
|
||||
ia_css_print("CSI RX FE STATE Controller %d Status term settle LP 0x%x \n", ID, state->clane.settle);
|
||||
ia_css_print("CSI RX FE STATE Controller %d Enable state 0x%x\n", ID, state->enable);
|
||||
ia_css_print("CSI RX FE STATE Controller %d No Of enable lanes 0x%x\n", ID, state->nof_enable_lanes);
|
||||
ia_css_print("CSI RX FE STATE Controller %d Error handling 0x%x\n", ID, state->error_handling);
|
||||
ia_css_print("CSI RX FE STATE Controller %d Status 0x%x\n", ID, state->status);
|
||||
ia_css_print("CSI RX FE STATE Controller %d Status Dlane HS 0x%x\n", ID, state->status_dlane_hs);
|
||||
ia_css_print("CSI RX FE STATE Controller %d Status Dlane LP 0x%x\n", ID, state->status_dlane_lp);
|
||||
ia_css_print("CSI RX FE STATE Controller %d Status term enable LP 0x%x\n", ID, state->clane.termen);
|
||||
ia_css_print("CSI RX FE STATE Controller %d Status term settle LP 0x%x\n", ID, state->clane.settle);
|
||||
|
||||
/*
|
||||
* Get the values of the register-set per
|
||||
* dlane.
|
||||
*/
|
||||
for (i = 0; i < N_CSI_RX_FE_CTRL_DLANES[ID]; i++) {
|
||||
ia_css_print("CSI RX FE STATE Controller %d DLANE ID %d termen 0x%x \n", ID, i, state->dlane[i].termen);
|
||||
ia_css_print("CSI RX FE STATE Controller %d DLANE ID %d settle 0x%x \n", ID, i, state->dlane[i].settle);
|
||||
ia_css_print("CSI RX FE STATE Controller %d DLANE ID %d termen 0x%x\n", ID, i, state->dlane[i].termen);
|
||||
ia_css_print("CSI RX FE STATE Controller %d DLANE ID %d settle 0x%x\n", ID, i, state->dlane[i].settle);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -122,7 +120,7 @@ static inline void csi_rx_be_ctrl_get_state(
|
|||
const csi_rx_backend_ID_t ID,
|
||||
csi_rx_be_ctrl_state_t *state)
|
||||
{
|
||||
uint32_t i;
|
||||
u32 i;
|
||||
|
||||
state->enable =
|
||||
csi_rx_be_ctrl_reg_load(ID, _HRT_MIPI_BACKEND_ENABLE_REG_IDX);
|
||||
|
@ -130,10 +128,10 @@ static inline void csi_rx_be_ctrl_get_state(
|
|||
state->status =
|
||||
csi_rx_be_ctrl_reg_load(ID, _HRT_MIPI_BACKEND_STATUS_REG_IDX);
|
||||
|
||||
for(i = 0; i <N_CSI_RX_BE_MIPI_COMP_FMT_REG ; i++) {
|
||||
for (i = 0; i < N_CSI_RX_BE_MIPI_COMP_FMT_REG ; i++) {
|
||||
state->comp_format_reg[i] =
|
||||
csi_rx_be_ctrl_reg_load(ID,
|
||||
_HRT_MIPI_BACKEND_COMP_FORMAT_REG0_IDX+i);
|
||||
csi_rx_be_ctrl_reg_load(ID,
|
||||
_HRT_MIPI_BACKEND_COMP_FORMAT_REG0_IDX + i);
|
||||
}
|
||||
|
||||
state->raw16 =
|
||||
|
@ -152,8 +150,8 @@ static inline void csi_rx_be_ctrl_get_state(
|
|||
|
||||
state->custom_mode_data_state =
|
||||
csi_rx_be_ctrl_reg_load(ID, _HRT_MIPI_BACKEND_CUST_DATA_STATE_REG_IDX);
|
||||
for(i = 0; i <N_CSI_RX_BE_MIPI_CUSTOM_PEC ; i++) {
|
||||
state->pec[i] =
|
||||
for (i = 0; i < N_CSI_RX_BE_MIPI_CUSTOM_PEC ; i++) {
|
||||
state->pec[i] =
|
||||
csi_rx_be_ctrl_reg_load(ID, _HRT_MIPI_BACKEND_CUST_PIX_EXT_S0P0_REG_IDX + i);
|
||||
}
|
||||
state->custom_mode_valid_eop_config =
|
||||
|
@ -185,36 +183,37 @@ static inline void csi_rx_be_ctrl_dump_state(
|
|||
const csi_rx_backend_ID_t ID,
|
||||
csi_rx_be_ctrl_state_t *state)
|
||||
{
|
||||
uint32_t i;
|
||||
u32 i;
|
||||
|
||||
ia_css_print("CSI RX BE STATE Controller %d Enable 0x%x \n", ID, state->enable);
|
||||
ia_css_print("CSI RX BE STATE Controller %d Status 0x%x \n", ID, state->status);
|
||||
ia_css_print("CSI RX BE STATE Controller %d Enable 0x%x\n", ID, state->enable);
|
||||
ia_css_print("CSI RX BE STATE Controller %d Status 0x%x\n", ID, state->status);
|
||||
|
||||
for(i = 0; i <N_CSI_RX_BE_MIPI_COMP_FMT_REG ; i++) {
|
||||
ia_css_print("CSI RX BE STATE Controller %d comp format reg vc%d value 0x%x \n", ID, i, state->status);
|
||||
for (i = 0; i < N_CSI_RX_BE_MIPI_COMP_FMT_REG ; i++) {
|
||||
ia_css_print("CSI RX BE STATE Controller %d comp format reg vc%d value 0x%x\n", ID, i, state->status);
|
||||
}
|
||||
ia_css_print("CSI RX BE STATE Controller %d RAW16 0x%x \n", ID, state->raw16);
|
||||
ia_css_print("CSI RX BE STATE Controller %d RAW18 0x%x \n", ID, state->raw18);
|
||||
ia_css_print("CSI RX BE STATE Controller %d Force RAW8 0x%x \n", ID, state->force_raw8);
|
||||
ia_css_print("CSI RX BE STATE Controller %d IRQ state 0x%x \n", ID, state->irq_status);
|
||||
ia_css_print("CSI RX BE STATE Controller %d RAW16 0x%x\n", ID, state->raw16);
|
||||
ia_css_print("CSI RX BE STATE Controller %d RAW18 0x%x\n", ID, state->raw18);
|
||||
ia_css_print("CSI RX BE STATE Controller %d Force RAW8 0x%x\n", ID, state->force_raw8);
|
||||
ia_css_print("CSI RX BE STATE Controller %d IRQ state 0x%x\n", ID, state->irq_status);
|
||||
#if 0 /* ToDo:Getting device access error for this register */
|
||||
for(i = 0; i <N_CSI_RX_BE_MIPI_CUSTOM_PEC ; i++) {
|
||||
ia_css_print("CSI RX BE STATE Controller %d PEC ID %d custom pec 0x%x \n", ID, i, state->pec[i]);
|
||||
for (i = 0; i < N_CSI_RX_BE_MIPI_CUSTOM_PEC ; i++) {
|
||||
ia_css_print("CSI RX BE STATE Controller %d PEC ID %d custom pec 0x%x\n", ID, i, state->pec[i]);
|
||||
}
|
||||
#endif
|
||||
ia_css_print("CSI RX BE STATE Controller %d Global LUT disregard reg 0x%x \n", ID, state->global_lut_disregard_reg);
|
||||
ia_css_print("CSI RX BE STATE Controller %d packet stall reg 0x%x \n", ID, state->packet_status_stall);
|
||||
ia_css_print("CSI RX BE STATE Controller %d Global LUT disregard reg 0x%x\n", ID, state->global_lut_disregard_reg);
|
||||
ia_css_print("CSI RX BE STATE Controller %d packet stall reg 0x%x\n", ID, state->packet_status_stall);
|
||||
/*
|
||||
* Get the values of the register-set per
|
||||
* lut.
|
||||
*/
|
||||
for (i = 0; i < N_SHORT_PACKET_LUT_ENTRIES[ID]; i++) {
|
||||
ia_css_print("CSI RX BE STATE Controller ID %d Short packat entry %d shart packet lut id 0x%x \n", ID, i, state->short_packet_lut_entry[i]);
|
||||
ia_css_print("CSI RX BE STATE Controller ID %d Short packat entry %d shart packet lut id 0x%x\n", ID, i, state->short_packet_lut_entry[i]);
|
||||
}
|
||||
for (i = 0; i < N_LONG_PACKET_LUT_ENTRIES[ID]; i++) {
|
||||
ia_css_print("CSI RX BE STATE Controller ID %d Long packat entry %d Long packet lut id 0x%x \n", ID, i, state->long_packet_lut_entry[i]);
|
||||
ia_css_print("CSI RX BE STATE Controller ID %d Long packat entry %d Long packet lut id 0x%x\n", ID, i, state->long_packet_lut_entry[i]);
|
||||
}
|
||||
}
|
||||
|
||||
/* end of NCI */
|
||||
/*****************************************************
|
||||
*
|
||||
|
@ -231,10 +230,9 @@ static inline hrt_data csi_rx_fe_ctrl_reg_load(
|
|||
{
|
||||
assert(ID < N_CSI_RX_FRONTEND_ID);
|
||||
assert(CSI_RX_FE_CTRL_BASE[ID] != (hrt_address)-1);
|
||||
return ia_css_device_load_uint32(CSI_RX_FE_CTRL_BASE[ID] + reg*sizeof(hrt_data));
|
||||
return ia_css_device_load_uint32(CSI_RX_FE_CTRL_BASE[ID] + reg * sizeof(hrt_data));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Store a value to the register.
|
||||
* Refer to "ibuf_ctrl_public.h" for details.
|
||||
|
@ -247,8 +245,9 @@ static inline void csi_rx_fe_ctrl_reg_store(
|
|||
assert(ID < N_CSI_RX_FRONTEND_ID);
|
||||
assert(CSI_RX_FE_CTRL_BASE[ID] != (hrt_address)-1);
|
||||
|
||||
ia_css_device_store_uint32(CSI_RX_FE_CTRL_BASE[ID] + reg*sizeof(hrt_data), value);
|
||||
ia_css_device_store_uint32(CSI_RX_FE_CTRL_BASE[ID] + reg * sizeof(hrt_data), value);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Load the register value.
|
||||
* Refer to "csi_rx_public.h" for details.
|
||||
|
@ -259,10 +258,9 @@ static inline hrt_data csi_rx_be_ctrl_reg_load(
|
|||
{
|
||||
assert(ID < N_CSI_RX_BACKEND_ID);
|
||||
assert(CSI_RX_BE_CTRL_BASE[ID] != (hrt_address)-1);
|
||||
return ia_css_device_load_uint32(CSI_RX_BE_CTRL_BASE[ID] + reg*sizeof(hrt_data));
|
||||
return ia_css_device_load_uint32(CSI_RX_BE_CTRL_BASE[ID] + reg * sizeof(hrt_data));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Store a value to the register.
|
||||
* Refer to "ibuf_ctrl_public.h" for details.
|
||||
|
@ -275,8 +273,9 @@ static inline void csi_rx_be_ctrl_reg_store(
|
|||
assert(ID < N_CSI_RX_BACKEND_ID);
|
||||
assert(CSI_RX_BE_CTRL_BASE[ID] != (hrt_address)-1);
|
||||
|
||||
ia_css_device_store_uint32(CSI_RX_BE_CTRL_BASE[ID] + reg*sizeof(hrt_data), value);
|
||||
ia_css_device_store_uint32(CSI_RX_BE_CTRL_BASE[ID] + reg * sizeof(hrt_data), value);
|
||||
}
|
||||
|
||||
/* end of DLI */
|
||||
|
||||
#endif /* __CSI_RX_PRIVATE_H_INCLUDED__ */
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
#include <type_support.h>
|
||||
#include "system_global.h"
|
||||
|
||||
const uint32_t N_IBUF_CTRL_PROCS[N_IBUF_CTRL_ID] = {
|
||||
const u32 N_IBUF_CTRL_PROCS[N_IBUF_CTRL_ID] = {
|
||||
8, /* IBUF_CTRL0_ID supports at most 8 processes */
|
||||
4, /* IBUF_CTRL1_ID supports at most 4 processes */
|
||||
4 /* IBUF_CTRL2_ID supports at most 4 processes */
|
||||
|
|
|
@ -22,7 +22,6 @@
|
|||
#include "assert_support.h" /* assert */
|
||||
#include "print_support.h" /* print */
|
||||
|
||||
|
||||
/*****************************************************
|
||||
*
|
||||
* Native command interface (NCI).
|
||||
|
@ -36,7 +35,7 @@ STORAGE_CLASS_IBUF_CTRL_C void ibuf_ctrl_get_state(
|
|||
const ibuf_ctrl_ID_t ID,
|
||||
ibuf_ctrl_state_t *state)
|
||||
{
|
||||
uint32_t i;
|
||||
u32 i;
|
||||
|
||||
state->recalc_words =
|
||||
ibuf_ctrl_reg_load(ID, _IBUF_CNTRL_RECALC_WORDS_STATUS);
|
||||
|
@ -51,7 +50,7 @@ STORAGE_CLASS_IBUF_CTRL_C void ibuf_ctrl_get_state(
|
|||
ibuf_ctrl_get_proc_state(
|
||||
ID,
|
||||
i,
|
||||
&(state->proc_state[i]));
|
||||
&state->proc_state[i]);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -61,7 +60,7 @@ STORAGE_CLASS_IBUF_CTRL_C void ibuf_ctrl_get_state(
|
|||
*/
|
||||
STORAGE_CLASS_IBUF_CTRL_C void ibuf_ctrl_get_proc_state(
|
||||
const ibuf_ctrl_ID_t ID,
|
||||
const uint32_t proc_id,
|
||||
const u32 proc_id,
|
||||
ibuf_ctrl_proc_state_t *state)
|
||||
{
|
||||
hrt_address reg_bank_offset;
|
||||
|
@ -147,6 +146,7 @@ STORAGE_CLASS_IBUF_CTRL_C void ibuf_ctrl_get_proc_state(
|
|||
state->isp_sync_state =
|
||||
ibuf_ctrl_reg_load(ID, reg_bank_offset + _IBUF_CNTRL_ISP_SYNC_STATE);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Dump the ibuf-controller state.
|
||||
* Refer to "ibuf_ctrl_public.h" for details.
|
||||
|
@ -155,7 +155,8 @@ STORAGE_CLASS_IBUF_CTRL_C void ibuf_ctrl_dump_state(
|
|||
const ibuf_ctrl_ID_t ID,
|
||||
ibuf_ctrl_state_t *state)
|
||||
{
|
||||
uint32_t i;
|
||||
u32 i;
|
||||
|
||||
ia_css_print("IBUF controller ID %d recalculate words 0x%x\n", ID, state->recalc_words);
|
||||
ia_css_print("IBUF controller ID %d arbiters 0x%x\n", ID, state->arbiters);
|
||||
|
||||
|
@ -192,6 +193,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 */
|
||||
|
||||
/*****************************************************
|
||||
|
@ -209,10 +211,9 @@ STORAGE_CLASS_IBUF_CTRL_C hrt_data ibuf_ctrl_reg_load(
|
|||
{
|
||||
assert(ID < N_IBUF_CTRL_ID);
|
||||
assert(IBUF_CTRL_BASE[ID] != (hrt_address)-1);
|
||||
return ia_css_device_load_uint32(IBUF_CTRL_BASE[ID] + reg*sizeof(hrt_data));
|
||||
return ia_css_device_load_uint32(IBUF_CTRL_BASE[ID] + reg * sizeof(hrt_data));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Store a value to the register.
|
||||
* Refer to "ibuf_ctrl_public.h" for details.
|
||||
|
@ -225,9 +226,9 @@ STORAGE_CLASS_IBUF_CTRL_C void ibuf_ctrl_reg_store(
|
|||
assert(ID < N_IBUF_CTRL_ID);
|
||||
assert(IBUF_CTRL_BASE[ID] != (hrt_address)-1);
|
||||
|
||||
ia_css_device_store_uint32(IBUF_CTRL_BASE[ID] + reg*sizeof(hrt_data), value);
|
||||
ia_css_device_store_uint32(IBUF_CTRL_BASE[ID] + reg * sizeof(hrt_data), value);
|
||||
}
|
||||
|
||||
/* end of DLI */
|
||||
|
||||
|
||||
#endif /* __IBUF_CTRL_PRIVATE_H_INCLUDED__ */
|
||||
|
|
|
@ -21,7 +21,7 @@ STORAGE_CLASS_INPUT_SYSTEM_C input_system_err_t input_system_get_state(
|
|||
const input_system_ID_t ID,
|
||||
input_system_state_t *state)
|
||||
{
|
||||
uint32_t i;
|
||||
u32 i;
|
||||
|
||||
(void)(ID);
|
||||
|
||||
|
@ -29,40 +29,40 @@ STORAGE_CLASS_INPUT_SYSTEM_C input_system_err_t input_system_get_state(
|
|||
for (i = 0; i < N_CSI_RX_FRONTEND_ID; i++) {
|
||||
csi_rx_fe_ctrl_get_state(
|
||||
(csi_rx_frontend_ID_t)i,
|
||||
&(state->csi_rx_fe_ctrl_state[i]));
|
||||
&state->csi_rx_fe_ctrl_state[i]);
|
||||
}
|
||||
|
||||
/* get the states of all CIS RX backend devices */
|
||||
for (i = 0; i < N_CSI_RX_BACKEND_ID; i++) {
|
||||
csi_rx_be_ctrl_get_state(
|
||||
(csi_rx_backend_ID_t)i,
|
||||
&(state->csi_rx_be_ctrl_state[i]));
|
||||
&state->csi_rx_be_ctrl_state[i]);
|
||||
}
|
||||
|
||||
/* get the states of all pixelgen devices */
|
||||
for (i = 0; i < N_PIXELGEN_ID; i++) {
|
||||
pixelgen_ctrl_get_state(
|
||||
(pixelgen_ID_t)i,
|
||||
&(state->pixelgen_ctrl_state[i]));
|
||||
&state->pixelgen_ctrl_state[i]);
|
||||
}
|
||||
|
||||
/* get the states of all stream2mmio devices */
|
||||
for (i = 0; i < N_STREAM2MMIO_ID; i++) {
|
||||
stream2mmio_get_state(
|
||||
(stream2mmio_ID_t)i,
|
||||
&(state->stream2mmio_state[i]));
|
||||
&state->stream2mmio_state[i]);
|
||||
}
|
||||
|
||||
/* get the states of all ibuf-controller devices */
|
||||
for (i = 0; i < N_IBUF_CTRL_ID; i++) {
|
||||
ibuf_ctrl_get_state(
|
||||
(ibuf_ctrl_ID_t)i,
|
||||
&(state->ibuf_ctrl_state[i]));
|
||||
&state->ibuf_ctrl_state[i]);
|
||||
}
|
||||
|
||||
/* get the states of all isys irq controllers */
|
||||
for (i = 0; i < N_ISYS_IRQ_ID; i++) {
|
||||
isys_irqc_state_get((isys_irq_ID_t)i, &(state->isys_irqc_state[i]));
|
||||
isys_irqc_state_get((isys_irq_ID_t)i, &state->isys_irqc_state[i]);
|
||||
}
|
||||
|
||||
/* TODO: get the states of all ISYS2401 DMA devices */
|
||||
|
@ -71,11 +71,12 @@ STORAGE_CLASS_INPUT_SYSTEM_C input_system_err_t input_system_get_state(
|
|||
|
||||
return INPUT_SYSTEM_ERR_NO_ERROR;
|
||||
}
|
||||
|
||||
STORAGE_CLASS_INPUT_SYSTEM_C void input_system_dump_state(
|
||||
const input_system_ID_t ID,
|
||||
input_system_state_t *state)
|
||||
{
|
||||
uint32_t i;
|
||||
u32 i;
|
||||
|
||||
(void)(ID);
|
||||
|
||||
|
@ -83,40 +84,40 @@ STORAGE_CLASS_INPUT_SYSTEM_C void input_system_dump_state(
|
|||
for (i = 0; i < N_CSI_RX_FRONTEND_ID; i++) {
|
||||
csi_rx_fe_ctrl_dump_state(
|
||||
(csi_rx_frontend_ID_t)i,
|
||||
&(state->csi_rx_fe_ctrl_state[i]));
|
||||
&state->csi_rx_fe_ctrl_state[i]);
|
||||
}
|
||||
|
||||
/* dump the states of all CIS RX backend devices */
|
||||
for (i = 0; i < N_CSI_RX_BACKEND_ID; i++) {
|
||||
csi_rx_be_ctrl_dump_state(
|
||||
(csi_rx_backend_ID_t)i,
|
||||
&(state->csi_rx_be_ctrl_state[i]));
|
||||
&state->csi_rx_be_ctrl_state[i]);
|
||||
}
|
||||
|
||||
/* dump the states of all pixelgen devices */
|
||||
for (i = 0; i < N_PIXELGEN_ID; i++) {
|
||||
pixelgen_ctrl_dump_state(
|
||||
(pixelgen_ID_t)i,
|
||||
&(state->pixelgen_ctrl_state[i]));
|
||||
&state->pixelgen_ctrl_state[i]);
|
||||
}
|
||||
|
||||
/* dump the states of all st2mmio devices */
|
||||
for (i = 0; i < N_STREAM2MMIO_ID; i++) {
|
||||
stream2mmio_dump_state(
|
||||
(stream2mmio_ID_t)i,
|
||||
&(state->stream2mmio_state[i]));
|
||||
&state->stream2mmio_state[i]);
|
||||
}
|
||||
|
||||
/* dump the states of all ibuf-controller devices */
|
||||
for (i = 0; i < N_IBUF_CTRL_ID; i++) {
|
||||
ibuf_ctrl_dump_state(
|
||||
(ibuf_ctrl_ID_t)i,
|
||||
&(state->ibuf_ctrl_state[i]));
|
||||
&state->ibuf_ctrl_state[i]);
|
||||
}
|
||||
|
||||
/* dump the states of all isys irq controllers */
|
||||
for (i = 0; i < N_ISYS_IRQ_ID; i++) {
|
||||
isys_irqc_state_dump((isys_irq_ID_t)i, &(state->isys_irqc_state[i]));
|
||||
isys_irqc_state_dump((isys_irq_ID_t)i, &state->isys_irqc_state[i]);
|
||||
}
|
||||
|
||||
/* TODO: dump the states of all ISYS2401 DMA devices */
|
||||
|
|
|
@ -22,7 +22,6 @@
|
|||
#include "dma_v2_defs.h"
|
||||
#include "print_support.h"
|
||||
|
||||
|
||||
STORAGE_CLASS_ISYS2401_DMA_C void isys2401_dma_reg_store(
|
||||
const isys2401_dma_ID_t dma_id,
|
||||
const unsigned int reg,
|
||||
|
@ -31,7 +30,7 @@ STORAGE_CLASS_ISYS2401_DMA_C void isys2401_dma_reg_store(
|
|||
unsigned int reg_loc;
|
||||
|
||||
assert(dma_id < N_ISYS2401_DMA_ID);
|
||||
assert(ISYS2401_DMA_BASE[dma_id] != (hrt_address)-1);
|
||||
assert(ISYS2401_DMA_BASE[dma_id] != (hrt_address) - 1);
|
||||
|
||||
reg_loc = ISYS2401_DMA_BASE[dma_id] + (reg * sizeof(hrt_data));
|
||||
|
||||
|
@ -47,7 +46,7 @@ STORAGE_CLASS_ISYS2401_DMA_C hrt_data isys2401_dma_reg_load(
|
|||
hrt_data value;
|
||||
|
||||
assert(dma_id < N_ISYS2401_DMA_ID);
|
||||
assert(ISYS2401_DMA_BASE[dma_id] != (hrt_address)-1);
|
||||
assert(ISYS2401_DMA_BASE[dma_id] != (hrt_address) - 1);
|
||||
|
||||
reg_loc = ISYS2401_DMA_BASE[dma_id] + (reg * sizeof(hrt_data));
|
||||
|
||||
|
|
|
@ -52,9 +52,7 @@ STORAGE_CLASS_ISYS2401_IRQ_C void isys_irqc_state_dump(
|
|||
const isys_irqc_state_t *state)
|
||||
{
|
||||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE,
|
||||
"isys irq controller id %d"
|
||||
"\n\tstatus:0x%x\n\tedge:0x%x\n\tmask:0x%x"
|
||||
"\n\tenable:0x%x\n\tlevel_not_pulse:0x%x\n",
|
||||
"isys irq controller id %d\n\tstatus:0x%x\n\tedge:0x%x\n\tmask:0x%x\n\tenable:0x%x\n\tlevel_not_pulse:0x%x\n",
|
||||
isys_irqc_id,
|
||||
state->status, state->edge, state->mask, state->enable, state->level_no);
|
||||
}
|
||||
|
|
|
@ -31,6 +31,6 @@ struct stream2mmio_sid_state_s {
|
|||
};
|
||||
|
||||
struct stream2mmio_state_s {
|
||||
stream2mmio_sid_state_t sid_state[N_STREAM2MMIO_SID_ID];
|
||||
stream2mmio_sid_state_t sid_state[N_STREAM2MMIO_SID_ID];
|
||||
};
|
||||
#endif /* __ISYS_STREAM2MMIO_LOCAL_H_INCLUDED__ */
|
||||
|
|
|
@ -50,7 +50,7 @@ STORAGE_CLASS_STREAM2MMIO_C void stream2mmio_get_state(
|
|||
* stream2mmio-controller sids.
|
||||
*/
|
||||
for (i = STREAM2MMIO_SID0_ID; i < N_STREAM2MMIO_SID_PROCS[ID]; i++) {
|
||||
stream2mmio_get_sid_state(ID, i, &(state->sid_state[i]));
|
||||
stream2mmio_get_sid_state(ID, i, &state->sid_state[i]);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -63,7 +63,6 @@ STORAGE_CLASS_STREAM2MMIO_C void stream2mmio_get_sid_state(
|
|||
const stream2mmio_sid_ID_t sid_id,
|
||||
stream2mmio_sid_state_t *state)
|
||||
{
|
||||
|
||||
state->rcv_ack =
|
||||
stream2mmio_reg_load(ID, sid_id, STREAM2MMIO_ACKNOWLEDGE_REG_ID);
|
||||
|
||||
|
@ -84,7 +83,6 @@ STORAGE_CLASS_STREAM2MMIO_C void stream2mmio_get_sid_state(
|
|||
|
||||
state->block_when_no_cmd =
|
||||
stream2mmio_reg_load(ID, sid_id, STREAM2MMIO_BLOCK_WHEN_NO_CMD_REG_ID);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -101,8 +99,8 @@ STORAGE_CLASS_STREAM2MMIO_C void stream2mmio_print_sid_state(
|
|||
ia_css_print("\t \t Strides 0x%x\n", state->strides);
|
||||
ia_css_print("\t \t Num Items 0x%x\n", state->num_items);
|
||||
ia_css_print("\t \t block when no cmd 0x%x\n", state->block_when_no_cmd);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Dump the ibuf-controller state.
|
||||
* Refer to "stream2mmio_public.h" for details.
|
||||
|
@ -119,9 +117,10 @@ STORAGE_CLASS_STREAM2MMIO_C void stream2mmio_dump_state(
|
|||
*/
|
||||
for (i = STREAM2MMIO_SID0_ID; i < N_STREAM2MMIO_SID_PROCS[ID]; i++) {
|
||||
ia_css_print("StREAM2MMIO ID %d SID %d\n", ID, i);
|
||||
stream2mmio_print_sid_state(&(state->sid_state[i]));
|
||||
stream2mmio_print_sid_state(&state->sid_state[i]);
|
||||
}
|
||||
}
|
||||
|
||||
/* end of NCI */
|
||||
|
||||
/*****************************************************
|
||||
|
@ -138,7 +137,7 @@ STORAGE_CLASS_STREAM2MMIO_C hrt_data stream2mmio_reg_load(
|
|||
const stream2mmio_sid_ID_t sid_id,
|
||||
const uint32_t reg_idx)
|
||||
{
|
||||
uint32_t reg_bank_offset;
|
||||
u32 reg_bank_offset;
|
||||
|
||||
assert(ID < N_STREAM2MMIO_ID);
|
||||
|
||||
|
@ -147,7 +146,6 @@ STORAGE_CLASS_STREAM2MMIO_C hrt_data stream2mmio_reg_load(
|
|||
(reg_bank_offset + reg_idx) * sizeof(hrt_data));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Store a value to the register.
|
||||
* Refer to "stream2mmio_public.h" for details.
|
||||
|
@ -163,6 +161,7 @@ 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 */
|
||||
|
||||
#endif /* __ISYS_STREAM2MMIO_PRIVATE_H_INCLUDED__ */
|
||||
|
|
|
@ -20,7 +20,6 @@
|
|||
#include "device_access.h" /* ia_css_device_load_uint32 */
|
||||
#include "assert_support.h" /* assert */
|
||||
|
||||
|
||||
/*****************************************************
|
||||
*
|
||||
* Native command interface (NCI).
|
||||
|
@ -34,7 +33,6 @@ STORAGE_CLASS_PIXELGEN_C void pixelgen_ctrl_get_state(
|
|||
const pixelgen_ID_t ID,
|
||||
pixelgen_ctrl_state_t *state)
|
||||
{
|
||||
|
||||
state->com_enable =
|
||||
pixelgen_ctrl_reg_load(ID, _PXG_COM_ENABLE_REG_IDX);
|
||||
state->prbs_rstval0 =
|
||||
|
@ -90,6 +88,7 @@ STORAGE_CLASS_PIXELGEN_C void pixelgen_ctrl_get_state(
|
|||
state->tpg_b2 =
|
||||
pixelgen_ctrl_reg_load(ID, _PXG_TPG_B2_REG_IDX);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Dump the pixelgen state.
|
||||
* Refer to "pixelgen_public.h" for details.
|
||||
|
@ -98,34 +97,35 @@ STORAGE_CLASS_PIXELGEN_C void pixelgen_ctrl_dump_state(
|
|||
const pixelgen_ID_t ID,
|
||||
pixelgen_ctrl_state_t *state)
|
||||
{
|
||||
ia_css_print("Pixel Generator ID %d Enable 0x%x \n", ID, state->com_enable);
|
||||
ia_css_print("Pixel Generator ID %d PRBS reset vlue 0 0x%x \n", ID, state->prbs_rstval0);
|
||||
ia_css_print("Pixel Generator ID %d PRBS reset vlue 1 0x%x \n", ID, state->prbs_rstval1);
|
||||
ia_css_print("Pixel Generator ID %d SYNC SID 0x%x \n", ID, state->syng_sid);
|
||||
ia_css_print("Pixel Generator ID %d syng free run 0x%x \n", ID, state->syng_free_run);
|
||||
ia_css_print("Pixel Generator ID %d syng pause 0x%x \n", ID, state->syng_pause);
|
||||
ia_css_print("Pixel Generator ID %d syng no of frames 0x%x \n", ID, state->syng_nof_frames);
|
||||
ia_css_print("Pixel Generator ID %d syng no of pixels 0x%x \n", ID, state->syng_nof_pixels);
|
||||
ia_css_print("Pixel Generator ID %d syng no of line 0x%x \n", ID, state->syng_nof_line);
|
||||
ia_css_print("Pixel Generator ID %d syng hblank cyc 0x%x \n", ID, state->syng_hblank_cyc);
|
||||
ia_css_print("Pixel Generator ID %d syng vblank cyc 0x%x \n", ID, state->syng_vblank_cyc);
|
||||
ia_css_print("Pixel Generator ID %d syng stat hcnt 0x%x \n", ID, state->syng_stat_hcnt);
|
||||
ia_css_print("Pixel Generator ID %d syng stat vcnt 0x%x \n", ID, state->syng_stat_vcnt);
|
||||
ia_css_print("Pixel Generator ID %d syng stat fcnt 0x%x \n", ID, state->syng_stat_fcnt);
|
||||
ia_css_print("Pixel Generator ID %d syng stat done 0x%x \n", ID, state->syng_stat_done);
|
||||
ia_css_print("Pixel Generator ID %d tpg modee 0x%x \n", ID, state->tpg_mode);
|
||||
ia_css_print("Pixel Generator ID %d tpg hcnt mask 0x%x \n", ID, state->tpg_hcnt_mask);
|
||||
ia_css_print("Pixel Generator ID %d tpg hcnt mask 0x%x \n", ID, state->tpg_hcnt_mask);
|
||||
ia_css_print("Pixel Generator ID %d tpg xycnt mask 0x%x \n", ID, state->tpg_xycnt_mask);
|
||||
ia_css_print("Pixel Generator ID %d tpg hcnt delta 0x%x \n", ID, state->tpg_hcnt_delta);
|
||||
ia_css_print("Pixel Generator ID %d tpg vcnt delta 0x%x \n", ID, state->tpg_vcnt_delta);
|
||||
ia_css_print("Pixel Generator ID %d tpg r1 0x%x \n", ID, state->tpg_r1);
|
||||
ia_css_print("Pixel Generator ID %d tpg g1 0x%x \n", ID, state->tpg_g1);
|
||||
ia_css_print("Pixel Generator ID %d tpg b1 0x%x \n", ID, state->tpg_b1);
|
||||
ia_css_print("Pixel Generator ID %d tpg r2 0x%x \n", ID, state->tpg_r2);
|
||||
ia_css_print("Pixel Generator ID %d tpg g2 0x%x \n", ID, state->tpg_g2);
|
||||
ia_css_print("Pixel Generator ID %d tpg b2 0x%x \n", ID, state->tpg_b2);
|
||||
ia_css_print("Pixel Generator ID %d Enable 0x%x\n", ID, state->com_enable);
|
||||
ia_css_print("Pixel Generator ID %d PRBS reset vlue 0 0x%x\n", ID, state->prbs_rstval0);
|
||||
ia_css_print("Pixel Generator ID %d PRBS reset vlue 1 0x%x\n", ID, state->prbs_rstval1);
|
||||
ia_css_print("Pixel Generator ID %d SYNC SID 0x%x\n", ID, state->syng_sid);
|
||||
ia_css_print("Pixel Generator ID %d syng free run 0x%x\n", ID, state->syng_free_run);
|
||||
ia_css_print("Pixel Generator ID %d syng pause 0x%x\n", ID, state->syng_pause);
|
||||
ia_css_print("Pixel Generator ID %d syng no of frames 0x%x\n", ID, state->syng_nof_frames);
|
||||
ia_css_print("Pixel Generator ID %d syng no of pixels 0x%x\n", ID, state->syng_nof_pixels);
|
||||
ia_css_print("Pixel Generator ID %d syng no of line 0x%x\n", ID, state->syng_nof_line);
|
||||
ia_css_print("Pixel Generator ID %d syng hblank cyc 0x%x\n", ID, state->syng_hblank_cyc);
|
||||
ia_css_print("Pixel Generator ID %d syng vblank cyc 0x%x\n", ID, state->syng_vblank_cyc);
|
||||
ia_css_print("Pixel Generator ID %d syng stat hcnt 0x%x\n", ID, state->syng_stat_hcnt);
|
||||
ia_css_print("Pixel Generator ID %d syng stat vcnt 0x%x\n", ID, state->syng_stat_vcnt);
|
||||
ia_css_print("Pixel Generator ID %d syng stat fcnt 0x%x\n", ID, state->syng_stat_fcnt);
|
||||
ia_css_print("Pixel Generator ID %d syng stat done 0x%x\n", ID, state->syng_stat_done);
|
||||
ia_css_print("Pixel Generator ID %d tpg modee 0x%x\n", ID, state->tpg_mode);
|
||||
ia_css_print("Pixel Generator ID %d tpg hcnt mask 0x%x\n", ID, state->tpg_hcnt_mask);
|
||||
ia_css_print("Pixel Generator ID %d tpg hcnt mask 0x%x\n", ID, state->tpg_hcnt_mask);
|
||||
ia_css_print("Pixel Generator ID %d tpg xycnt mask 0x%x\n", ID, state->tpg_xycnt_mask);
|
||||
ia_css_print("Pixel Generator ID %d tpg hcnt delta 0x%x\n", ID, state->tpg_hcnt_delta);
|
||||
ia_css_print("Pixel Generator ID %d tpg vcnt delta 0x%x\n", ID, state->tpg_vcnt_delta);
|
||||
ia_css_print("Pixel Generator ID %d tpg r1 0x%x\n", ID, state->tpg_r1);
|
||||
ia_css_print("Pixel Generator ID %d tpg g1 0x%x\n", ID, state->tpg_g1);
|
||||
ia_css_print("Pixel Generator ID %d tpg b1 0x%x\n", ID, state->tpg_b1);
|
||||
ia_css_print("Pixel Generator ID %d tpg r2 0x%x\n", ID, state->tpg_r2);
|
||||
ia_css_print("Pixel Generator ID %d tpg g2 0x%x\n", ID, state->tpg_g2);
|
||||
ia_css_print("Pixel Generator ID %d tpg b2 0x%x\n", ID, state->tpg_b2);
|
||||
}
|
||||
|
||||
/* end of NCI */
|
||||
/*****************************************************
|
||||
*
|
||||
|
@ -141,11 +141,10 @@ STORAGE_CLASS_PIXELGEN_C hrt_data pixelgen_ctrl_reg_load(
|
|||
const hrt_address reg)
|
||||
{
|
||||
assert(ID < N_PIXELGEN_ID);
|
||||
assert(PIXELGEN_CTRL_BASE[ID] != (hrt_address)-1);
|
||||
return ia_css_device_load_uint32(PIXELGEN_CTRL_BASE[ID] + reg*sizeof(hrt_data));
|
||||
assert(PIXELGEN_CTRL_BASE[ID] != (hrt_address) - 1);
|
||||
return ia_css_device_load_uint32(PIXELGEN_CTRL_BASE[ID] + reg * sizeof(hrt_data));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Store a value to the register.
|
||||
* Refer to "pixelgen_ctrl_public.h" for details.
|
||||
|
@ -158,7 +157,8 @@ STORAGE_CLASS_PIXELGEN_C void pixelgen_ctrl_reg_store(
|
|||
assert(ID < N_PIXELGEN_ID);
|
||||
assert(PIXELGEN_CTRL_BASE[ID] != (hrt_address)-1);
|
||||
|
||||
ia_css_device_store_uint32(PIXELGEN_CTRL_BASE[ID] + reg*sizeof(hrt_data), value);
|
||||
ia_css_device_store_uint32(PIXELGEN_CTRL_BASE[ID] + reg * sizeof(hrt_data), value);
|
||||
}
|
||||
|
||||
/* end of DLI */
|
||||
#endif /* __PIXELGEN_PRIVATE_H_INCLUDED__ */
|
||||
|
|
|
@ -135,7 +135,6 @@ static const hrt_address GPIO_BASE[N_GPIO_ID] = {
|
|||
static const hrt_address TIMED_CTRL_BASE[N_TIMED_CTRL_ID] = {
|
||||
0x0000000000000100ULL};
|
||||
|
||||
|
||||
/* INPUT_FORMATTER */
|
||||
static const hrt_address INPUT_FORMATTER_BASE[N_INPUT_FORMATTER_ID] = {
|
||||
0x0000000000030000ULL,
|
||||
|
@ -180,18 +179,21 @@ static const hrt_address CSI_RX_FE_CTRL_BASE[N_CSI_RX_FRONTEND_ID] = {
|
|||
0x00000000000C2400ULL, /* csi fe controller B */
|
||||
0x00000000000C4400ULL /* csi fe controller C */
|
||||
};
|
||||
|
||||
/* CSI BE, part of the Input System 2401 */
|
||||
static const hrt_address CSI_RX_BE_CTRL_BASE[N_CSI_RX_BACKEND_ID] = {
|
||||
0x00000000000C0800ULL, /* csi be controller A */
|
||||
0x00000000000C2800ULL, /* csi be controller B */
|
||||
0x00000000000C4800ULL /* csi be controller C */
|
||||
};
|
||||
|
||||
/* PIXEL Generator, part of the Input System 2401 */
|
||||
static const hrt_address PIXELGEN_CTRL_BASE[N_PIXELGEN_ID] = {
|
||||
0x00000000000C1000ULL, /* pixel gen controller A */
|
||||
0x00000000000C3000ULL, /* pixel gen controller B */
|
||||
0x00000000000C5000ULL /* pixel gen controller C */
|
||||
};
|
||||
|
||||
/* Stream2MMIO, part of the Input System 2401 */
|
||||
static const hrt_address STREAM2MMIO_CTRL_BASE[N_STREAM2MMIO_ID] = {
|
||||
0x00000000000C0C00ULL, /* stream2mmio controller A */
|
||||
|
@ -295,7 +297,6 @@ static const hrt_address GPIO_BASE[N_GPIO_ID] = {
|
|||
static const hrt_address TIMED_CTRL_BASE[N_TIMED_CTRL_ID] = {
|
||||
0x00000100UL};
|
||||
|
||||
|
||||
/* INPUT_FORMATTER */
|
||||
static const hrt_address INPUT_FORMATTER_BASE[N_INPUT_FORMATTER_ID] = {
|
||||
0x00030000UL,
|
||||
|
@ -340,18 +341,21 @@ static const hrt_address CSI_RX_FE_CTRL_BASE[N_CSI_RX_FRONTEND_ID] = {
|
|||
0x000C2400UL, /* csi fe controller B */
|
||||
0x000C4400UL /* csi fe controller C */
|
||||
};
|
||||
|
||||
/* CSI BE, part of the Input System 2401 */
|
||||
static const hrt_address CSI_RX_FE_CTRL_BASE[N_CSI_RX_BACKEND_ID] = {
|
||||
0x000C0800UL, /* csi be controller A */
|
||||
0x000C2800UL, /* csi be controller B */
|
||||
0x000C4800UL /* csi be controller C */
|
||||
};
|
||||
|
||||
/* PIXEL Generator, part of the Input System 2401 */
|
||||
static const hrt_address PIXELGEN_CTRL_BASE[N_PIXELGEN_ID] = {
|
||||
0x000C1000UL, /* pixel gen controller A */
|
||||
0x000C3000UL, /* pixel gen controller B */
|
||||
0x000C5000UL /* pixel gen controller C */
|
||||
};
|
||||
|
||||
/* Stream2MMIO, part of the Input System 2401 */
|
||||
static const hrt_address STREAM2MMIO_CTRL_BASE[N_STREAM2MMIO_ID] = {
|
||||
0x000C0C00UL, /* stream2mmio controller A */
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue