email: m-karicheri2@xxxxxx >-----Original Message----- >From: Hans Verkuil [mailto:hverkuil@xxxxxxxxx] >Sent: Tuesday, June 09, 2009 5:03 PM >To: Karicheri, Muralidharan >Cc: linux-media@xxxxxxxxxxxxxxx; davinci-linux-open- >source@xxxxxxxxxxxxxxxxxxxx; Muralidharan Karicheri >Subject: Re: [PATCH RFC] adding support for setting bus parameters in sub >device > >On Tuesday 09 June 2009 22:55:53 m-karicheri2@xxxxxx wrote: >> From: Muralidharan Karicheri <a0868495@xxxxxxxxxxxxxxxxxxxxxxxxxx> >> >> re-sending with RFC in the header >> >> This patch adds support for setting bus parameters such as bus type >> (BT.656, BT.1120 etc), width (example 10 bit raw image data bus) >> and polarities (vsync, hsync, field etc) in sub device. This allows >> bridge driver to configure the sub device for a specific set of bus >> parameters through s_bus() function call. >> >> Reviewed By "Hans Verkuil". >> Signed-off-by: Muralidharan Karicheri <m-karicheri2@xxxxxx> >> --- >> Applies to v4l-dvb repository >> >> include/media/v4l2-subdev.h | 36 ++++++++++++++++++++++++++++++++++++ >> 1 files changed, 36 insertions(+), 0 deletions(-) >> >> diff --git a/include/media/v4l2-subdev.h b/include/media/v4l2-subdev.h >> index 1785608..c1cfb3b 100644 >> --- a/include/media/v4l2-subdev.h >> +++ b/include/media/v4l2-subdev.h >> @@ -37,6 +37,41 @@ struct v4l2_decode_vbi_line { >> u32 type; /* VBI service type (V4L2_SLICED_*). 0 if no >service found >> */ }; >> >> +/* >> + * Some sub-devices are connected to the bridge device through a bus >> that + * carries * the clock, vsync, hsync and data. Some interfaces such >> as BT.656 + * carries the sync embedded in the data where as others have >> separate line + * carrying the sync signals. The structure below is used >> by bridge driver to + * set the desired bus parameters in the sub device >> to work with it. + */ >> +enum v4l2_subdev_bus_type { >> + /* BT.656 interface. Embedded sync */ >> + V4L2_SUBDEV_BUS_BT_656, >> + /* BT.1120 interface. Embedded sync */ >> + V4L2_SUBDEV_BUS_BT_1120, >> + /* 8 bit muxed YCbCr bus, separate sync and field signals */ >> + V4L2_SUBDEV_BUS_YCBCR_8, >> + /* 16 bit YCbCr bus, separate sync and field signals */ >> + V4L2_SUBDEV_BUS_YCBCR_16, > >Hmm, what do you mean with "8 bit muxed YCbCr bus"? It's not clear to me >what the format of these YCBCR bus types is exactly. > [MK] For YCbCr16, there is separate bus to carry Y and CbCr data, where as on YCbCr8, both gets multiplexed over same 8 bit bus (Y, Cb, Y, Cr, Y, Cb.... The difference between V4L2_SUBDEV_BUS_BT_656 and V4L2_SUBDEV_BUS_YCBCR_8 is that sync is embedded with data in the former, where as there is dedicated sync lines for the latter. >> + /* Raw Bayer image data bus , 8 - 16 bit wide, sync signals */ >> + V4L2_SUBDEV_BUS_RAW_BAYER >> +}; >> + >> +struct v4l2_subdev_bus { >> + enum v4l2_subdev_bus_type type; >> + u8 width; >> + /* 0 - active low, 1 - active high */ >> + unsigned pol_vsync:1; >> + /* 0 - active low, 1 - active high */ >> + unsigned pol_hsync:1; >> + /* 0 - low to high , 1 - high to low */ >> + unsigned pol_field:1; >> + /* 0 - sample at falling edge , 1 - sample at rising edge */ >> + unsigned pol_pclock:1; >> + /* 0 - active low , 1 - active high */ >> + unsigned pol_data:1; >> +}; >> + >> /* Sub-devices are devices that are connected somehow to the main bridge >> device. These devices are usually audio/video >> muxers/encoders/decoders or sensors and webcam controllers. >> @@ -109,6 +144,7 @@ struct v4l2_subdev_core_ops { >> int (*querymenu)(struct v4l2_subdev *sd, struct v4l2_querymenu *qm); >> int (*s_std)(struct v4l2_subdev *sd, v4l2_std_id norm); >> long (*ioctl)(struct v4l2_subdev *sd, unsigned int cmd, void *arg); >> + int (*s_bus)(struct v4l2_subdev *sd, struct v4l2_subdev_bus *bus); > >Make this 'const struct v4l2_subdev_bus *bus'. > Ok. >> #ifdef CONFIG_VIDEO_ADV_DEBUG >> int (*g_register)(struct v4l2_subdev *sd, struct v4l2_dbg_register >> *reg); int (*s_register)(struct v4l2_subdev *sd, struct v4l2_dbg_register >> *reg); > >Regards, > > Hans > >-- >Hans Verkuil - video4linux developer - sponsored by TANDBERG Telecom -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html