This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DaVinci Linux Drivers

Other Parts Discussed in Thread: THS8200

Hello, everybody,

I am confused with terms in DM36x drivers and their source names (maybe because I have PSP 3.1 and documentation available only for PSP 2.10 and names are not always mnemonic). Please, help me to figure out everything connected with this.

I scrutinized LSP 2.10 docs and inferred the existence of following drivers in DaVinci:

Front End:
- CCDC/ISIF Driver (to capture data from sensor)
- VPFE Capture Driver (to capture data from other inputs)
- IPIPE/IMP Driver (to control Previewer)
- Resizer Driver (to control Resizer)

Back End:
- Frame Buffer Driver for OSD (generate OSD windows)
- Frame Buffer Driver for Video Windows (generate VID windows)
- V4L2 Driver (generate VID windows)
- LCD Daughtercard Encoder Driver (display on LCD)
- VPBE Encoder Driver (display SDTV)

Internal Display Driver Blocks:
- Encoder Manager Driver
- Display Manager Driver
- Video Processor (VPBE/VPIF) Driver

 In /dvsdk/psp/linux-2.6.32.17-psp03.01.01.39/drivers/media/video/davinci I have following drivers' sources:

davinci_display.c
davinci_enc_mngr.c
davinci_osd.c
davinci_platform.c
dm365_ccdc.c
dm365_ccdc_regs.c
dm365_a3_hw.c
dm365_aew.c
dm365_af.c
logicPD_encoder.c
vpbe_encoder.c
vpfe_capture.c
vpif.c, vpif_capture.c, vpif_display.c
vpss.c

 As you see they are not match entirely. I tried to match them and I got next.

LEFT: davinci_platform.c, vpif.c, vpif_capture.c, vpif_display.c, vpss.c

Please, tell me

- which *.c-s are in the right place? 

- what *.c-s must be in empty spaces? 

- is the whole list of necessary drivers completely correct?

- what to do with left *.c-s?

Thanks in advance!

 

CCDC/ISIF Driver dm365_ccdc.c
dm365_ccdc_regs.c
VPFE Capture Driver vpfe_capture.c
IPIPE/IMP Driver dm365_a3_hw.c
dm365_aew.c
dm365_af.c
Resizer Driver ???
Frame Buffer Driver for OSD davinci_osd.c
Frame Buffer Driver for VID ???
V4L2 DIsplay Driver davinci_display.c [because it includes v4l2 headers]
LCD Daughtercard Encoder Driver logicPD_encoder.c
VPBE Encoder Driver vpbe_encoder.c
Encoder Manager Driver davinci_enc_mngr.c
Display Manager Driver ???
Video Processor (VPBE/VPIF)  ???

  • Hi,

    Can you please rephrase what exactly do you want ?

    To tell about VPIF(vpif*.c) its related other platform not for dm365 its for dm6467/omp-l138/da850 EVM's

    All the other other stuff is related to capture and display driver including vpss.c to either dm365,dm355,dm6446 EVM's

    Hope this should clear your doubt.

    Thx,

    --Prabhakar Lad

  • Hello, Prabhakar Lad,

    Thank you, I can arrange it in several questions.

    1. Is there four separate drivers for Front End?  Or CCDC is a part of VPFE? And if there are two separate drivers for Previewer and Resizer - why there are no source for resizer driver?

    2. Are there two separate FBDev drivers for OSD and VID windows or this is one whole FBDev? I don't have an idea where is the source of it as I tried to debug fbdev_loopback ioctl error and didn't find it.

    3. Is it possible to get a block diagram of Display Driver Architecture of DM36x DaVinci? If I got right there is no VPBE block in it as all vpif drivers don't belong to DM36x.

    4. Does matches in the table right? 

  • Hi,

    1. Is there four separate drivers for Front End?  Or CCDC is a part of VPFE? And if there are two separate drivers for Previewer and Resizer - why there are no source for resizer driver?

    Since DM355/DM365/DM6446 have a common capture architecture, it has a common VPFE so you have common vpfe_capture.c for these. The CCDC files contains the register settings, so since DM355, DM365, DM6446 have slight change in registers these files are different for obvious. If I am not wrong you are referring to 2.6.32 kernel ? You can find the resizer driver source in drivers/char since this is a character driver.

    2. Are there two separate FBDev drivers for OSD and VID windows or this is one whole FBDev? I don't have an idea where is the source of it as I tried to debug fbdev_loopback ioctl error and didn't find it.

    Not exactly sure on 2.6.32 but this what in 2.6.37, Both v4l2 and fbdev frameworks are co-existing, and control the same controller. Now, since fbdev is a very primitive framework which does not understand outputs and multiple planes, but V4L2 does, this is a design decision to bifurcate the responsibilities in such way. It is a long discussion how and why, but for now, suffice to say that for default configs where you do not wish to change either resolution or outputs, you would not have to touch v4L2.

    3. Is it possible to get a block diagram of Display Driver Architecture of DM36x DaVinci? If I got right there is no VPBE block in it as all vpif drivers don't belong to DM36x.

    You can find it in video processing backend doc for DM365. Yes VPIF doesnt belong to DM365.

    4. Does matches in the table right?

    almost IPIPE related code can be found in drivers/char. The AEW, AF is related to VPFE for statistics data.

    Thx,

    --Prabhakar Lad

  • Thanks a lot, Prabhakar Lad!

    Current target kernel is 2.6.32 (shipped with the board initially), but sources to rebuild the kernel for davinci is 2.6.37.

    Concerning V4L2 & FBDev - ok, could be interesting discussion; but still how do sources for FBDev display driver named? Do we have only display_osd.c? I read that FBDev still supports video windows for backward compatibility. Also in fbdev_loopback example it is used. 

  • Hi,

    Concerning V4L2 & FBDev - ok, could be interesting discussion; but still how do sources for FBDev display driver named? Do we have only display_osd.c? I read that FBDev still supports video windows for backward compatibility. Also in fbdev_loopback example it is used.

    display_osd.c is for fbdev but it cannot work alone, it works along with davinci_display.c

    Thx,

    --Prabhakar Lad

  • HI,

    I am working on same kernel 2.6.32 for dm355 i have add ths8200 driver using menuconfig with proper i2c address so now the driver is loaded but still i am not getting any output on VGA

    So i think i need to add support in display channel manager or vpbe_encoder.c but i can't understand which way i should go to take output from ths8200

    Please help me as soon as possible

    Best Regards

    Tejas dave