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

2010-11-28 Thread Nori, Sekhar
Hi Murali,

On Sat, Nov 27, 2010 at 20:14:46, Muralidharan Karicheri wrote:
 Manjunath,

 Could you re-send the patch 1/6? I can't find it either at my inbox or
 mailing list.

I received the 1/6 in my inbox and also see it on patchwork and gmane.

https://patchwork.kernel.org/patch/353081/

http://permalink.gmane.org/gmane.linux.drivers.video-input-infrastructure/25692

Can you please check your spam folder just in case...

Thanks,
Sekhar

--
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


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

2010-11-27 Thread Muralidharan Karicheri
Manjunath,

Could you re-send the patch 1/6? I can't find it either at my inbox or
mailing list.

On Wed, Nov 24, 2010 at 9:08 AM, Manjunath Hadli manjunath.ha...@ti.com 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.

               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 

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

2010-11-26 Thread Hans Verkuil
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 

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

2010-11-24 Thread Manjunath Hadli
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.

   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