> Hans,
>
> Is it possible to extend the sub device ops to include SoC ip sub
> device specific ops? I remember I had posted this question some time
> back and you had proposed to add something like this. Just want to
> check if that is still valid. This would make this driver
> implementation little more cleaner.
>
> struct vpbe_osd_ops;
>
> struct v4l2_subdev_ops {
> const struct v4l2_subdev_core_ops *core;
> const struct v4l2_subdev_tuner_ops *tuner;
> const struct v4l2_subdev_audio_ops *audio;
> const struct v4l2_subdev_video_ops *video;
> const struct v4l2_subdev_vbi_ops *vbi;
> const struct v4l2_subdev_ir_ops *ir;
> const struct v4l2_subdev_sensor_ops *sensor;
> /* SoC IP specific ops */
> const struct vpbe_osd_ops *vpbe_osd;
> };
>
> The struct vpbe_osd_ops will be defined in the osd sub device header
> file. This will allow the host/bridge driver to call osd specific
> operations like standard sub dev ops.
>
> Any comments?
Almost right. You need to put the vpbe_osd into an anonymous union:
/* SoC IP specific ops */
union {
const struct vpbe_osd_ops *vpbe_osd;
};
This way other private ops can be added without increasing the size of the
struct.
This should work like a charm. I had this idea from the very beginning,
but nobody needed it until now.
Regards,
Hans
>
> On Wed, Nov 10, 2010 at 8:05 AM, Muralidharan Karicheri
> <[email protected]> wrote:
>> Manjunath,
>>
>> Thank you for putting up this patch together. I didn't see the 1/6 of
>> this series in the mailing list. Also it appears as if the patch came
>> from me. Please add my sign-off as second, you being the first.
>>
>> Murali
>> On Mon, Nov 8, 2010 at 9:54 AM, Manjunath Hadli <[email protected]>
>> wrote:
>>> This driver is written for Texas Instruments's DM644X VPBE IP.
>>> This SoC supports 2 video planes and 2 OSD planes as part of its
>>> OSD (On Screen Display) block. The OSD lanes predminantly support
>>> RGB space and the Video planes support YUV data. Out of these 4,
>>> the 2 video planes are supported as part of the V4L2 driver. These
>>> would be enumerated as video2 and video3 dev nodes.
>>> The blending and video timing generator unit (VENC- for Video Encoder)
>>> is the unit which combines/blends the output of these 4 planes
>>> into a single stream and this output is given to Video input devices
>>> like TV and other digital LCDs. The software for VENC is designed as
>>> a subdevice with support for SD(NTSC and PAL) modes and 2 outputs.
>>> This SoC forms the iniial implementation of its later additions
>>> like DM355 and DM365.
>>>
>>> Muralidharan Karicheri (6):
>>> davinci vpbe: V4L2 display driver for DM644X SoC
>>> davinci vpbe: VPBE display driver
>>> davinci vpbe: OSD(On Screen Display ) block
>>> davinci vpbe: VENC( Video Encoder) implementation
>>> davinci vpbe: platform specific additions
>>> davinci vpbe: Build infrastructure for VPBE driver
>>>
>>> arch/arm/mach-davinci/board-dm644x-evm.c | 85 +-
>>> arch/arm/mach-davinci/dm644x.c | 181 ++-
>>> arch/arm/mach-davinci/include/mach/dm644x.h | 4 +
>>> drivers/media/video/davinci/Kconfig | 22 +
>>> drivers/media/video/davinci/Makefile | 2 +
>>> drivers/media/video/davinci/vpbe.c | 861 ++++++++++
>>> drivers/media/video/davinci/vpbe_display.c | 2283
>>> ++++++++++++++++++++++++++
>>> drivers/media/video/davinci/vpbe_osd.c | 1208 ++++++++++++++
>>> drivers/media/video/davinci/vpbe_osd_regs.h | 389 +++++
>>> drivers/media/video/davinci/vpbe_venc.c | 617 +++++++
>>> drivers/media/video/davinci/vpbe_venc_regs.h | 189 +++
>>> include/media/davinci/vpbe.h | 187 +++
>>> include/media/davinci/vpbe_display.h | 144 ++
>>> include/media/davinci/vpbe_osd.h | 397 +++++
>>> include/media/davinci/vpbe_types.h | 170 ++
>>> include/media/davinci/vpbe_venc.h | 70 +
>>> 16 files changed, 6790 insertions(+), 19 deletions(-)
>>> create mode 100644 drivers/media/video/davinci/vpbe.c
>>> create mode 100644 drivers/media/video/davinci/vpbe_display.c
>>> create mode 100644 drivers/media/video/davinci/vpbe_osd.c
>>> create mode 100644 drivers/media/video/davinci/vpbe_osd_regs.h
>>> create mode 100644 drivers/media/video/davinci/vpbe_venc.c
>>> create mode 100644 drivers/media/video/davinci/vpbe_venc_regs.h
>>> create mode 100644 include/media/davinci/vpbe.h
>>> create mode 100644 include/media/davinci/vpbe_display.h
>>> create mode 100644 include/media/davinci/vpbe_osd.h
>>> create mode 100644 include/media/davinci/vpbe_types.h
>>> create mode 100644 include/media/davinci/vpbe_venc.h
>>>
>>> --
>>> 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
>>>
>>
>>
>>
>> --
>> Murali Karicheri
>> [email protected]
>>
>
>
>
> --
> Murali Karicheri
> [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 Cisco
--
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