Hi Hans,
Please refer to the comments below.

On 02/16/2013 10:28 AM, Hans Verkuil wrote:
> From: Hans Verkuil <hans.verk...@cisco.com>
> 
> This just adds dv_timings support without modifying existing dv_preset
> support.
> 
> Signed-off-by: Hans Verkuil <hans.verk...@cisco.com>
> Cc: Tomasz Stanislawski <t.stanisl...@samsung.com>
> Cc: Kyungmin Park <kyungmin.p...@samsung.com>
> ---
>  drivers/media/platform/s5p-tv/hdmi_drv.c |   92 
> +++++++++++++++++++++++++-----
>  1 file changed, 79 insertions(+), 13 deletions(-)
> 

[snip]

> +static int hdmi_enum_dv_timings(struct v4l2_subdev *sd,
> +     struct v4l2_enum_dv_timings *timings)
> +{
> +     if (timings->index >= ARRAY_SIZE(hdmi_timings))
> +             return -EINVAL;
> +     timings->timings = hdmi_timings[timings->index].dv_timings;
> +     if (!hdmi_timings[timings->index].reduced_fps)
> +             timings->timings.bt.flags &= ~V4L2_DV_FL_CAN_REDUCE_FPS;
> +     return 0;
> +}
> +
> +static int hdmi_dv_timings_cap(struct v4l2_subdev *sd,
> +     struct v4l2_dv_timings_cap *cap)
> +{
> +     cap->type = V4L2_DV_BT_656_1120;

The minimal width among all the supported timings is 720 not 640.

> +     cap->bt.min_width = 640;
> +     cap->bt.max_width = 1920;
> +     cap->bt.min_height = 480;
> +     cap->bt.max_height = 1080;

The range of pixelclock is a property of hdmiphy.
Not all ranges might be supported on all platforms.
Therefore it may be a good idea to obtains those values
from hdmiphy by chaining hdmi_dv_timings_cap to hdmiphy.

> +     cap->bt.min_pixelclock = 27000000;
> +     cap->bt.max_pixelclock = 148500000;
> +     cap->bt.standards = V4L2_DV_BT_STD_CEA861;
> +     cap->bt.capabilities = V4L2_DV_BT_CAP_INTERLACED |
> +                            V4L2_DV_BT_CAP_PROGRESSIVE;
> +     return 0;
> +}
> +
>  static const struct v4l2_subdev_core_ops hdmi_sd_core_ops = {
>       .s_power = hdmi_s_power,
>  };
> @@ -687,6 +749,10 @@ static const struct v4l2_subdev_video_ops 
> hdmi_sd_video_ops = {
>       .s_dv_preset = hdmi_s_dv_preset,
>       .g_dv_preset = hdmi_g_dv_preset,
>       .enum_dv_presets = hdmi_enum_dv_presets,
> +     .s_dv_timings = hdmi_s_dv_timings,
> +     .g_dv_timings = hdmi_g_dv_timings,
> +     .enum_dv_timings = hdmi_enum_dv_timings,
> +     .dv_timings_cap = hdmi_dv_timings_cap,
>       .g_mbus_fmt = hdmi_g_mbus_fmt,
>       .s_stream = hdmi_s_stream,
>  };
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to