.regs = mt9e013_PREVIEW_30fps ,
.bin_factor_x = 2,
.bin_factor_y = 2,
+ .skip_frames = 1,
},
{
.desc = "WIDE_PREVIEW_30fps" ,
.regs = mt9e013_WIDE_PREVIEW_30fps ,
.bin_factor_x = 1,
.bin_factor_y = 1,
+ .skip_frames = 1,
},
};
.regs = mt9e013_STILL_2M_15fps ,
.bin_factor_x = 1,
.bin_factor_y = 1,
+ .skip_frames = 1,
},
{
.desc = "STILL_6M_15fps" ,
.regs = mt9e013_STILL_6M_15fps ,
.bin_factor_x = 0,
.bin_factor_y = 0,
+ .skip_frames = 1,
},
{
.desc = "STILL_8M_15fps" ,
.regs = mt9e013_STILL_8M_15fps ,
.bin_factor_x = 0,
.bin_factor_y = 0,
+ .skip_frames = 1,
},
};
.regs = mt9e013_QCIF_strong_dvs_30fps ,
.bin_factor_x = 2,
.bin_factor_y = 2,
+ .skip_frames = 1,
},
{
.desc = "QVGA_strong_dvs_30fps" ,
.regs = mt9e013_QVGA_strong_dvs_30fps ,
.bin_factor_x = 2,
.bin_factor_y = 2,
+ .skip_frames = 1,
},
{
.desc = "VGA_strong_dvs_30fps" ,
.regs = mt9e013_VGA_strong_dvs_30fps ,
.bin_factor_x = 2,
.bin_factor_y = 2,
+ .skip_frames = 1,
},
{
.desc = "WVGA_strong_dvs_30fps" ,
.regs = mt9e013_WVGA_strong_dvs_30fps ,
.bin_factor_x = 1,
.bin_factor_y = 1,
+ .skip_frames = 1,
},
{
.desc = "720p_strong_dvs_30fps" ,
.regs = mt9e013_720p_strong_dvs_30fps ,
.bin_factor_x = 1,
.bin_factor_y = 1,
+ .skip_frames = 1,
},
{
.desc = "1080p_strong_dvs_30fps",
.regs = mt9e013_1080p_strong_dvs_30fps,
.bin_factor_x = 0,
.bin_factor_y = 0,
+ .skip_frames = 1,
},
};
return 0;
}
+static int mt9e013_g_skip_frames(struct v4l2_subdev *sd, u32 *frames)
+{
+ struct mt9e013_device *dev = to_mt9e013_sensor(sd);
+
+ if (frames == NULL)
+ return -EINVAL;
+
+ *frames = mt9e013_res[dev->fmt_idx].skip_frames;
+
+ return 0;
+}
static const struct v4l2_subdev_video_ops mt9e013_video_ops = {
.s_stream = mt9e013_s_stream,
.enum_framesizes = mt9e013_enum_framesizes,
.g_frame_interval = mt9e013_g_frame_interval,
};
+static struct v4l2_subdev_sensor_ops mt9e013_sensor_ops = {
+ .g_skip_frames = mt9e013_g_skip_frames,
+};
+
static const struct v4l2_subdev_core_ops mt9e013_core_ops = {
.g_chip_ident = mt9e013_g_chip_ident,
.queryctrl = mt9e013_queryctrl,
.core = &mt9e013_core_ops,
.video = &mt9e013_video_ops,
.pad = &mt9e013_pad_ops,
+ .sensor = &mt9e013_sensor_ops,
};
static const struct media_entity_operations mt9e013_entity_ops = {