Hi Russel,

On Sun, Mar 19, 2017 at 10:49:08AM +0000, Russell King wrote:
> Add support for enumerating frame sizes and frame intervals from the
> first subdev via the V4L2 interfaces.
> 
> Signed-off-by: Russell King <rmk+ker...@armlinux.org.uk>
> ---
>  drivers/staging/media/imx/imx-media-capture.c | 62 
> +++++++++++++++++++++++++++
>  1 file changed, 62 insertions(+)
> 
...
> +static int capture_enum_frameintervals(struct file *file, void *fh,
> +                                    struct v4l2_frmivalenum *fival)
> +{
> +     struct capture_priv *priv = video_drvdata(file);
> +     const struct imx_media_pixfmt *cc;
> +     struct v4l2_subdev_frame_interval_enum fie = {
> +             .index = fival->index,
> +             .pad = priv->src_sd_pad,
> +             .width = fival->width,
> +             .height = fival->height,
> +             .which = V4L2_SUBDEV_FORMAT_ACTIVE,
> +     };
> +     int ret;
> +
> +     cc = imx_media_find_format(fival->pixel_format, CS_SEL_ANY, true);
> +     if (!cc)
> +             return -EINVAL;
> +
> +     fie.code = cc->codes[0];
> +
> +     ret = v4l2_subdev_call(priv->src_sd, pad, enum_frame_interval, NULL, 
> &fie);
> +     if (ret)
> +             return ret;
> +
> +     fival->type = V4L2_FRMIVAL_TYPE_DISCRETE;
> +     fival->discrete = fie.interval;

For some parallel sensors (mine is a E2V ev76c560) "any" frame interval is 
possible,
and hence type should be V4L2_FRMIVAL_TYPE_CONTINUOUS.

see also https://www.spinics.net/lists/linux-media/msg98622.html,
https://patchwork.kernel.org/patch/9171201/ and
https://patchwork.kernel.org/patch/9171199/

Philippe

-- 
Philippe De Muyter +32 2 6101532 Macq SA rue de l'Aeronef 2 B-1140 Bruxelles

Reply via email to