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.hadli@xxxxxx> 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 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 > > -- > 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 > -- Murali Karicheri mkaricheri@xxxxxxxxx -- 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