Hans,
Thanks for looking into this...
>>
>> 1) I want to use v4l2_i2c_new_probed_subdev_addr() to load and probe the
>> the v4l2 sub-device from my vpfe capture driver. Currently the api's
>> available doesn't allow setting platform data in the client before the
>> sub-device's probe is called. I see that there is discussion about adding
>> i2c_board_info as an argument to the api. I would need this to allow
>> loading of sub-device from vpfe capture. I have seen patches sent by
>> Eduardo Valentin & Guennadi Liakhovetski addressing the issue. Do you
>> have any suggestions for use in my vpfe capture driver?
>
>As you have probably seen by now I've made changes to the v4l2 core that
>make it easy to use an i2c_board_info struct when creating a subdev. So as
>far as I can tell that solves this issue completely.
>
>The code is in my v4l-dvb-subdev tree.
>
[MK] Yes. I have been following this and will resolve this.
>> 2) I need a common structure (preferably in i2c-subdev.h for defining and
>> using bus (interface) parameters in the bridge (vpfe capture) and sub
>> device (tvp514x or mt9t031) drivers. This will allow bridge driver to
>> read these values from platform data and set the same in the vpfe capture
>> driver and sub device drivers. Since bus parameters such as interface
>> type (BT.656, BT.1120, Raw Bayer image data etc), polarity of various
>> signals etc are used across bridge and sub-devices, it make sense to add
>> it to i2c-subdev.h. Here is what I have come up with. If this support is
>> not already planned, I would like to sent a patch for the same.
>
>It makes sense to define a struct in v4l2-subdev.h and a core ops to set it
>(s_bus).
>
>However, I would pack it differently:
>
>struct v4l2_subdev_bus {
> enum v4l2_subdev_bus_type type;
> u8 width;
> unsigned pol_vsync:1;
> unsigned pol_hsync:1;
> unsigned pol_field:1;
> unsigned pol_pclock:1;
>};
>
[MK] Looks good to me. So is it up to the bridge and sub device to determine
how they interpret the values of pol_xxx fields? Since same sub-device might
work across multiple sub device, it is worth documenting them as given in my
RFC. I would like to add one more field for data polarity :-
unsigned pol_data:1;
Will you take care of this yourself or expecting me to send a patch for the
same?
Regards,
Murali
>It's more concise this way.
>
>Regards,
>
> Hans
>
>> +/*
>> + * 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 seperate line carrying the sync signals. This structure 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 syncs */
>> + V4L2_SUBDEV_BUS_BT_656,
>> + /* BT.1120 interface. Embedded syncs */
>> + V4L2_SUBDEV_BUS_BT_1120,
>> + /* 8 bit YCbCr muxed bus, separate sync and field id signals */
>> + V4L2_SUBDEV_BUS_YCBCR_8,
>> + /* 16 bit YCbCr bus, separate sync and field id signals */
>> + V4L2_SUBDEV_BUS_YCBCR_16,
>> + /* Raw Bayer data bus, 8 - 16 bit wide, sync signals */
>> + V4L2_SUBDEV_BUS_RAW_BAYER
>> +};
>> +
>> +/* Raw bayer data bus width */
>> +enum v4l2_subdev_raw_bayer_data_width {
>> + V4L2_SUBDEV_RAW_BAYER_DATA_8BIT,
>> + V4L2_SUBDEV_RAW_BAYER_DATA_9BIT,
>> + V4L2_SUBDEV_RAW_BAYER_DATA_10BIT,
>> + V4L2_SUBDEV_RAW_BAYER_DATA_11BIT,
>> + V4L2_SUBDEV_RAW_BAYER_DATA_12BIT,
>> + V4L2_SUBDEV_RAW_BAYER_DATA_13BIT,
>> + V4L2_SUBDEV_RAW_BAYER_DATA_14BIT,
>> + V4L2_SUBDEV_RAW_BAYER_DATA_15BIT,
>> + V4L2_SUBDEV_RAW_BAYER_DATA_16BIT
>> +};
>> +
>> +struct v4l2_subdev_bus_params {
>> + /* bus type */
>> + enum v4l2_subdev_bus_type type;
>> + /* data size for raw bayer data bus */
>> + enum v4l2_subdev_raw_bayer_data_width width;
>> + /* polarity of vsync. 0 - active low, 1 - active high */
>> + u8 vsync_pol;
>> + /* polarity of hsync. 0 - active low, 1 - active low */
>> + u8 hsync_pol;
>> + /* polarity of field id, 0 - low to high, 1 - high to low */
>> + u8 fid_pol;
>> + /* polarity of data. 0 - active low, 1 - active high */
>> + u8 data_pol;
>> + /* pclk polarity. 0 - sample at falling edge, 1 - sample at rising
>edge
>> */ + u8 pclk_pol;
>> +};
>> +
>> Murali Karicheri
>> email: [email protected]
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-media" in
>> the body of a message to [email protected]
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
>
>
>--
>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 [email protected]
>More majordomo info at http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html