Murali Karicheri Software Design Engineer Texas Instruments Inc. Germantown, MD 20874 phone: 301-407-9583 email: m-karicheri2@xxxxxx >-----Original Message----- >From: Hadli, Manjunath >Sent: Thursday, December 02, 2010 7:40 AM >To: LMML >Cc: dlos; Mauro Carvalho Chehab; Hans Verkuil; Hadli, Manjunath; Karicheri, >Muralidharan >Subject: [PATCH v3 6/6] davinci vpbe: Build infrastructure for VPBE driver > >This patch adds the build infra-structure for Davinci >VPBE dislay driver > >Signed-off-by: Manjunath Hadli <manjunath.hadli@xxxxxx> >Signed-off-by: Muralidharan Karicheri <m-karicheri2@xxxxxx> >--- > drivers/media/video/davinci/Kconfig | 22 +++++ > drivers/media/video/davinci/Makefile | 2 + > .../media/video/davinci/davinci_vpbe_readme.txt | 100 >++++++++++++++++++++ > 3 files changed, 124 insertions(+), 0 deletions(-) > create mode 100644 drivers/media/video/davinci/davinci_vpbe_readme.txt > >diff --git a/drivers/media/video/davinci/Kconfig >b/drivers/media/video/davinci/Kconfig >index 6b19540..dab32d5 100644 >--- a/drivers/media/video/davinci/Kconfig >+++ b/drivers/media/video/davinci/Kconfig >@@ -91,3 +91,25 @@ config VIDEO_ISIF > > To compile this driver as a module, choose M here: the > module will be called vpfe. >+ >+config VIDEO_DM644X_VPBE >+ tristate "DM644X VPBE HW module" >+ select VIDEO_VPSS_SYSTEM >+ select VIDEOBUF_DMA_CONTIG >+ help >+ Enables VPBE modules used for display on a DM644x >+ SoC. >+ >+ To compile this driver as a module, choose M here: the >+ module will be called vpbe. >+ >+ >+config VIDEO_VPBE_DISPLAY >+ tristate "VPBE V4L2 Display driver" >+ select VIDEO_DM644X_VPBE >+ default y >+ help >+ Enables VPBE V4L2 Display driver on a DMXXX device >+ >+ To compile this driver as a module, choose M here: the >+ module will be called vpbe_display. >diff --git a/drivers/media/video/davinci/Makefile >b/drivers/media/video/davinci/Makefile >index a379557..ae7dafb 100644 >--- a/drivers/media/video/davinci/Makefile >+++ b/drivers/media/video/davinci/Makefile >@@ -16,3 +16,5 @@ obj-$(CONFIG_VIDEO_VPFE_CAPTURE) += vpfe_capture.o > obj-$(CONFIG_VIDEO_DM6446_CCDC) += dm644x_ccdc.o > obj-$(CONFIG_VIDEO_DM355_CCDC) += dm355_ccdc.o > obj-$(CONFIG_VIDEO_ISIF) += isif.o >+obj-$(CONFIG_VIDEO_DM644X_VPBE) += vpbe.o vpbe_osd.o vpbe_venc.o >+obj-$(CONFIG_VIDEO_VPBE_DISPLAY) += vpbe_display.o >diff --git a/drivers/media/video/davinci/davinci_vpbe_readme.txt >b/drivers/media/video/davinci/davinci_vpbe_readme.txt >new file mode 100644 >index 0000000..e7aabba >--- /dev/null >+++ b/drivers/media/video/davinci/davinci_vpbe_readme.txt >@@ -0,0 +1,100 @@ >+ I think this doesn't belong to davinci folder. Consider moving this to Documentation folder where v4l2 documentations are available. >+ 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. >\ No newline at end of file >-- >1.6.2.4 -- 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