[media] smiapp: provide g_skip_top_lines method in sensor ops
Some sensors (like the one in Nokia N900) provide metadata in the first couple of lines. Make that information information available to the pipeline. Use u16 instead, this is a 16-bit value. Signed-off-by: Ivaylo Dimitrov <ivo.g.dimitrov.75@gmail.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
This commit is contained in:
parent
806f8ffa8a
commit
92021e074a
@ -188,6 +188,8 @@ static int smiapp_read_frame_fmt(struct smiapp_sensor *sensor)
|
|||||||
embedded_end = 0;
|
embedded_end = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sensor->image_start = image_start;
|
||||||
|
|
||||||
dev_dbg(&client->dev, "embedded data from lines %d to %d\n",
|
dev_dbg(&client->dev, "embedded data from lines %d to %d\n",
|
||||||
embedded_start, embedded_end);
|
embedded_start, embedded_end);
|
||||||
dev_dbg(&client->dev, "image data starts at line %d\n", image_start);
|
dev_dbg(&client->dev, "image data starts at line %d\n", image_start);
|
||||||
@ -2280,6 +2282,15 @@ static int smiapp_get_skip_frames(struct v4l2_subdev *subdev, u32 *frames)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int smiapp_get_skip_top_lines(struct v4l2_subdev *subdev, u32 *lines)
|
||||||
|
{
|
||||||
|
struct smiapp_sensor *sensor = to_smiapp_sensor(subdev);
|
||||||
|
|
||||||
|
*lines = sensor->image_start;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/* -----------------------------------------------------------------------------
|
/* -----------------------------------------------------------------------------
|
||||||
* sysfs attributes
|
* sysfs attributes
|
||||||
*/
|
*/
|
||||||
@ -2890,6 +2901,7 @@ static const struct v4l2_subdev_pad_ops smiapp_pad_ops = {
|
|||||||
|
|
||||||
static const struct v4l2_subdev_sensor_ops smiapp_sensor_ops = {
|
static const struct v4l2_subdev_sensor_ops smiapp_sensor_ops = {
|
||||||
.g_skip_frames = smiapp_get_skip_frames,
|
.g_skip_frames = smiapp_get_skip_frames,
|
||||||
|
.g_skip_top_lines = smiapp_get_skip_top_lines,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct v4l2_subdev_ops smiapp_ops = {
|
static const struct v4l2_subdev_ops smiapp_ops = {
|
||||||
|
@ -217,6 +217,7 @@ struct smiapp_sensor {
|
|||||||
|
|
||||||
u8 hvflip_inv_mask; /* H/VFLIP inversion due to sensor orientation */
|
u8 hvflip_inv_mask; /* H/VFLIP inversion due to sensor orientation */
|
||||||
u8 frame_skip;
|
u8 frame_skip;
|
||||||
|
u16 image_start; /* Offset to first line after metadata lines */
|
||||||
|
|
||||||
int power_count;
|
int power_count;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user