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