Re: [PATCH v2 0/6] davinci vpbe: display driver for DM644X

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Manju,

On Wednesday, November 24, 2010 15:08:17 Manjunath Hadli 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.
> 
> At present, the patches conatin the basic support of DM644X V4L2 
> driver, and subsequent patch sets would add support for external 
> encoders,other DMXXX family SoC and fbdev support.

As you can see, I have only comments on the first patch. The others seem fine
to me.

I do think that the drivers would benefit from some all round tightening of
the code. Often functions have quite a lot of indentation levels, the use
of more temporary variables will help, and the driver has a lot of error
and debug messages, possibly more than is necessary.

Regards,

	Hans

> 
>                VPBE V4L2 driver design
> ======================================================================
> 
> File partitioning
> -----------------
> V4L2 display device driver
>         drivers/media/video/davinci/vpbe_display.c
>         drivers/media/video/davinci/vpbe_display.h
> 
> VPBE display controller
>         drivers/media/video/davinci/vpbe.c
>         drivers/media/video/davinci/vpbe.h
> 
> VPBE venc sub device driver
>         drivers/media/video/davinci/vpbe_venc.c
>         drivers/media/video/davinci/vpbe_venc.h
>         drivers/media/video/davinci/vpbe_venc_regs.h
> 
> VPBE osd driver
>         drivers/media/video/davinci/vpbe_osd.c
>         drivers/media/video/davinci/vpbe_osd.h
>         drivers/media/video/davinci/vpbe_osd_regs.h
> 
> Functional partitioning
> -----------------------
> 
> Consists of following (in the same order as the list under file
> partitioning):-
> 
> 1. V4L2 display driver
>    Implements video2 and video3 device nodes and
>    provides v4l2 device interface to manage VID0 and VID1 layers.
> 
> 2. Display controller
>    Loads up venc, osd and external encoders such as ths8200. It provides
>    a set of API calls to V4L2 drivers to set the output/standards
>    in the venc or external sub devices. It also provides
>    a device object to access the services from osd sub device
>    using sub device ops. The connection of external encoders to venc LCD
>    controller port is done at init time based on default output and standard
>    selection or at run time when application change the output through
>    V4L2 IOCTLs.
> 
>    When connetected to an external encoder, vpbe controller is also responsible
>    for setting up the interface between venc and external encoders based on
>    board specific settings (specified in board-xxx-evm.c). This allowes
>    interfacing external encoders such as ths8200. The setup_if_config()
>    is implemented for this as well as configure_venc() (part of the next patch)
>    API to set timings in venc for a specific display resolution.As of this
>    patch series, the interconnection and enabling ans setting of the external
>    encoders is not present, and would be a part of the next patch series.
> 
> 3. Venc sub device
>    Responsible for setting outputs provides through internal dacs and also
>    setting timings at LCD controller port when external encoders are connected
>    at the port or LCD panel timings required. When external encoder/LCD panel
>    is connected, the timings for a specific standard/preset is retrieved from
>    the board specific table and the values are used to set the timings in
>    venc using non-standard timing mode.
> 
>    Support LCD Panel displays using the venc. For example to support a Logic
>    PD display, it requires setting up the LCD controller port with a set of
>    timings for the resolution supported and setting the dot clock. So we could
>    add the available outputs as a board specific entry ( i.e add the "LogicPD"
>    output name to board-xxx-evm.c). A table of timings for various LCDs
>    supported cab be maintained in the board specific setup file to support
>    various LCD displays.
> 
> 4. osd sub device
>    Osd sub device implements all osd layer management and hardware specific
>    features. In the legacy drivers (LSPxxx), the hardware specific features
>    are configured through proprietary IOCTLs at the fb device interface. Since
>    sub devices are going to support device nodes, application will be able
>    to configure the hardware feayture directly by opening the osd sub device
>    node and by calling the related IOCTL. So these proprietary IOCTLs are
>    to be removed from the FB Device driver when doing up port of these drivers to
>    mainline kernel. The V4L2 and FB device nodes supports only IOCTLS as per
>    the associated spec. The rest of the IOCTLs are to be moved to osd and
>    venc sub devices.
> 
> Current status:-
> 
> A build tested version of vpbe controller is available.
> 
> Following are TBDs.
> 
> vpbe display controller
>    - review and modify the handling of external encoders.
>    - add support for selecting external encoder as default at probe time.
> 
> vpbe venc sub device
>    - add timings for supporting ths8200
>    - add support for LogicPD LCD.
> 
> v4l2 driver
>    - A version is already developed which is to be cleaned up and unit tested
> 
> FB drivers
>    - Add support for fbdev drivers.- Ready and part of subsequent patches.
> 
> Manjunath Hadli (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     |   81 +-
>  arch/arm/mach-davinci/dm644x.c               |  238 +++-
>  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           |  853 ++++++++++
>  drivers/media/video/davinci/vpbe_display.c   | 2282 ++++++++++++++++++++++++++
>  drivers/media/video/davinci/vpbe_osd.c       | 1208 ++++++++++++++
>  drivers/media/video/davinci/vpbe_osd_regs.h  |  389 +++++
>  drivers/media/video/davinci/vpbe_venc.c      |  575 +++++++
>  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           |   93 ++
>  include/media/davinci/vpbe_venc.h            |   41 +
>  16 files changed, 6686 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
> 
> 

-- 
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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux